Clive 是一個多功能 Discord 機器人,基於 Node.js 和 discord.js 開發。它利用 Google Gemini API 來提供模仿人類的互動體驗,包括文字與圖片的理解與回應,並具備進階的互動系統。
- 智慧聊天:透過 Google Gemini API 進行流暢、自然的文字對話。
- 圖片分析:能夠理解並回應使用者傳送的圖片內容。
- 語音功能:支援語音頻道的互動 (由
voiceService.js提供支援)。 - 好感度系統:獨特的
favorabilitySystem.js,機器人會根據互動情況對使用者產生不同的好感度,影響其回應方式。 - 記憶系統:透過
memorySystem.js記錄對話上下文,提供更連貫的聊天體驗。 - 主動訊息:
proactiveSystem.js讓機器人能夠在特定條件下主動發起對話或做出反應。 - 管理指令:內建管理員專用指令,方便維護與設定。
- Node.js: v18.x 或更高版本
- npm (通常隨 Node.js 一起安裝)
- Discord Bot Token: 1個
- Google Gemini API Key: 1個
您可以透過 git clone 或直接下載 ZIP 檔案來取得專案。
git clone https://github.com/HimService/Clive.git
cd Clive在專案的根目錄下,執行以下指令來安裝所有必要的套件:
npm install在專案根目錄中,將.env.example命名為 .env 的檔案。這個檔案將用來存放您的機密金鑰。請參考以下格式填入您的資訊:
完成設定後,在專案根目錄執行以下指令來啟動機器人:
node src/bot.js如果一切順利,您應該會在控制台看到機器人成功登入的訊息,並且機器人會在您的 Discord 伺服器上線。
- 文字聊天:在任何機器人有權限讀取的頻道中,直接提及 (mention) 機器人或與其對話,它就會回應。
- 圖片聊天:傳送一張圖片,並可選擇性地附上文字,機器人會根據圖片內容進行回應。
以下是預設的管理指令 (可能需要開發者權限):
!reset: 重置機器人的對話記憶,開始一個全新的對話。!setchannel [頻道ID]: 設定機器人只在特定頻道回應。!unsetchannel: 取消特定頻道的設定,讓機器人可以在所有授權頻道中回應。
Clive/
├── src/
│ ├── bot.js # 機器人主程式進入點
│ ├── config.js # 專案設定檔
│ ├── commands/ # 指令存放目錄
│ │ └── adminCommands.js
│ ├── handlers/ # 事件處理器 (如訊息、反應)
│ │ ├── messageCreateHandler.js
│ │ ├── messageReactionAddHandler.js
│ │ └── readyHandler.js
│ ├── services/ # 外部服務 (API 串接)
│ │ ├── geminiService.js
│ │ └── voiceService.js
│ └── systems/ # 核心互動系統
│ ├── favorabilitySystem.js
│ ├── memorySystem.js
│ └── proactiveSystem.js
├── .env # 環境變數 (需自行建立)
├── package.json # 專案依賴與腳本
└── README.md # 就是你正在看的這個檔案
如果您有任何功能建議或發現 Bug,歡迎提出 Issue 或發送 Pull Request。
請閱讀 LICENSE 文件。