(cogview-3-flash 幫他畫了 6 根手指ww)
🔗 Bot 邀請連結:
這是一個 Discord 機器人專案,包含多種功能,例如音樂播放、AI 聊天、小遊戲、以及與 Hypixel SkyBlock 相關的功能。
可以使用以下 Deepwiki.md 連結來瀏覽此專案介紹,或者詳閱接下來的說明 來使用此專案。
- 不建議自己 clone 此專案下來用,因為他大概率是啟動不了的,或許拿來學習比較好w
畢竟他功能挺雜,有 aiohttp, chromadb, openai, MongoDB 之類的
- 音樂播放: 支援播放 YouTube 影片音樂。
- AI 聊天: 透過 AI 進行對話。
- 小遊戲: 例如無限圈圈叉叉遊戲。
- SkyBlock 相關: 提供 SkyBlock 遊戲資訊和追蹤功能。
- 翻譯: 支援 AI 多語言翻譯。
- 提醒: 時間到的時候通知你設定的提醒事項。
- 通知: YouTube 通知功能。
- 多語言支持: 目前支援使用
zh-TW,zh-CN,en-US。
/help快速取得該 Bot 的概略功能。
以下是一些常用的指令範例,讓您快速上手:
/play [歌曲名稱/URL]:播放 YouTube 上的音樂。/chat [您的訊息]:與 AI 進行對話。(20250806 將整體架構修改,正是支援異步)
/remind [時間] [提醒事項]:讓 Bot 提醒你要做什麼事情。(20250809 轉為使用 MongoDB 存儲)
/翻譯 [語言] [文字]:用 AI 將文字翻譯成指定語言。/minecraft_server_status:獲得某個 Minecraft 伺服器的狀態。/news:獲取最新新聞。/nasa:獲取 NASA 每日圖片。/gif [關鍵字]:搜尋並發送 GIF。/歌詞搜尋 [歌曲名稱]:搜尋歌曲歌詞。
- [2025/07/08] 完成 i18n,prefix + slash command i18n
- 可在 core/locales 查看與 Gemini 2.5 pro 的
對話紀錄與提示詞
- 可在 core/locales 查看與 Gemini 2.5 pro 的
- [2025/08/06] 將此專案接入本地 MongoDB,並將
chat相關命令重寫,以支援異步 function 調用如果之後有機會能將整個 Project 改為使用 MongoDB的話,應該就可以直接用
git clone的方式拿下來用 - [2026/05/19]
- 因應 translator 重構,順便修復了大量的類型錯誤 (儘管還是有錯誤存在,但可以更好的讓 bot 正常運行)。
- 刪除大量無用代碼,並將其放入
archive分支當中。
- 儘管該專案配置了 Docker 相關設定,仍然不建議自行部署。
- 因為專案當初使用了大量的 JSON 作為儲存,並且檔案不存在時不會有相關的錯誤處理。
- 並且專案設計之初,並未使用任何較為嚴格的的 type checking,所以可能有一些淺在問題。
Quick Start & env & Json
❗建議使用 Python 3.13+ 以上的環境❗
請先設定 .env 檔案:
- 請參考以下「配置設定 - 環境變數」部分,建立並填寫您的
.env檔案。
!務必在 .env 內填上DISCORD_TOKEN!
選項一 使用 Docker (使用 docker 才會包括 fastapi 與 MongoDB 的部分):
# 將專案克隆至本地目錄
git clone https://github.com/NotKeKe/Discord-Bot-YinXi.git
# 進入專案目錄
cd Discord-Bot-YinXi
# 使用 docker compose 執行
docker-compose up -d選項二 使用 uv:
- 與專案環境同步:
uv sync
- 啟動機器人:
uv run newbot2.py
為了讓專案正常運行,您需要建立一個 .env 檔案,並在其中設定必要的環境變數。
.env 檔案的範例如下:
# 其他可能需要的環境變數,例如:
DISCORD_TOKEN = YOUR-DISCORD-BOT-TOKEN
# APPLICATION_ID = ...
HYPIXEL_API_KEY = ... # 因為一些原因 他現在暫時用不了
tmp_hypixel_api_key = YOUR-HYPIXEL-API-KEY
# 以下為 llm api,可以根據需要選擇使用
zhipuAI_KEY = ...
huggingFace_KEY = ...
openrouter_KEY = ...
gemini_KEY = ...
mistral_KEY = ...
cerebras_KEY = ...
news_api_KEY = ... # `/新聞` 的 apiKEY
nasa_api_KEY = ... # `/nasa每日圖片` 的 apiKEY
unsplash_api_access_KEY = ... # `/看圖` 的 apiKEY
embed_default_link = ... # 會顯示在 embed 的 author url
KeJC_ID = ... # 基本上這是為了一些只有 owner 才會用的指令所設計的,例如 `/reload`
# YouTube_PoToken = ...
# YouTube_visitorData = ...
yinxi_base_url = https://yinxi.keketw.dpdns.org
GIPHY_KEY = ... # `/gif` 的 apiKEY
GENIUS_ACCESS_TOKEN = ... # `/歌詞搜尋` 的 apiKEY
請根據您的實際需求填寫這些變數。
以下是一些在 .gitignore 中被忽略的 JSON 檔案,它們可能包含專案運行所需的配置或數據。這些檔案通常需要您手動建立或由專案運行時自動生成。如果專案無法正常啟動,請檢查這些檔案是否存在並包含正確的內容。
setting.json: 這個檔案可能包含專案的通用設定或配置。cmds/skyblock_commands_foldor/test.json: 這個檔案可能用於 SkyBlock 相關功能的測試數據或配置。cmds/data.json/目錄下的檔案:簽到.jsonadmins.jsonchat_channel_modelSelect.jsonchat_history_forchannel.jsonchat_history.jsonchat_human_summary.jsonchat_human.jsonchat_personality.jsonchat_style_train.jsoncounting.jsoncountry.jsonevents_record.jsongiveaway.jsonguild_join.jsonkeep.jsonlevels.jsonmusic_personal_list.jsonmusic.jsonon_presence_update.jsonskyblock_auction_item_tracker.jsonskyblock_bazaar_item_tracker.jsonskyblock_events_channels.jsonweather_messages.jsonworld_channels.jsonyoutube_update_channels.json
我們歡迎任何形式的貢獻!如果您想為音汐機器人做出貢獻,請遵循以下步驟:
- 給我 Star 來支持我!
- 我遇到了一個錯誤,我要怎麼回報?
- 使用
/錯誤回報指令,來進行錯誤回報。 - 參考 聯絡與支援
- 就算您只是發現一個很小的錯誤,也歡迎告知我!
- 使用
如果您有任何問題、建議或需要支援,可以透過以下方式聯絡我們:
- 至 GitHub 的 Issues 註明您的問題或建議。
- 在 Discord 伺服器中對 音汐 使用
/錯誤回報來回報任何問題。
- 查看音汐的狀態: https://yinxi.wales.com.tw
- 了解音汐的出生與特色: https://www.wales.com.tw/posts/yinxi-discord-bot
