一個基於 ChromaDB 和 RAG (Retrieval-Augmented Generation) 技術的智能聊天機器人,支援 LINE 平台。
- 智能問答:使用 RAG 技術提供準確回答
- 多模型支援:支援 Ollama 和 Gemini 等 LLM 模型
- 網路搜尋:整合 SerpAPI 進行即時網路搜尋
- 對話歷史:自動保存對話歷史,提升上下文理解
- 多語言支援:特別優化中文語意理解
- Python 3.8+
- pip
-
克隆存儲庫:
git clone https://github.com/jamesja64/chroma-rag-bot.git cd chroma-rag-bot
-
創建並激活虛擬環境:
python -m venv venv source venv/bin/activate # Linux/Mac # 或 .\venv\Scripts\activate # Windows
-
安裝依賴:
pip install -r requirements.txt
-
配置環境變數:
- 複製
.env.example
為.env
- 填入必要的 API 金鑰和配置
- 複製
複製 .env.example
為 .env
並填寫以下配置:
# Line Bot 設定
LINE_CHANNEL_ACCESS_TOKEN=your_line_channel_access_token
LINE_CHANNEL_SECRET=your_line_channel_secret
# LLM 設定 (選擇一種配置)
# Ollama 設定
OLLAMA_API_URL=http://your-ollama-server:port/api/generate
OLLAMA_MODEL=llama3.3:latest
# 或 Gemini 設定
GEMINI_API_KEY=your_gemini_api_key
# 搜尋 API
SERPAPI_API_KEY=your_serpapi_key
# 應用程式設定
CHROMA_DB_PATH=./data/chroma_db
LOG_LEVEL=INFO
# 開發模式
python -m src.app
# 生產模式 (使用 Gunicorn)
pip install gunicorn
gunicorn "src.app:app" -b 0.0.0.0:5000
- 在 LINE Developers Console 創建一個 Provider 和 Messaging API Channel
- 獲取 Channel Access Token 和 Channel Secret
- 在
.env
中填入相應的憑證 - 設置 Webhook URL 為
https://your-domain.com/callback
chroma_rag_bot/
├── src/ # 原始碼
│ ├── __init__.py
│ ├── app.py # 主應用程式
│ ├── config.py # 配置設定
│ ├── db/ # 資料庫相關
│ │ ├── __init__.py
│ │ └── chroma_client.py
│ ├── llm/ # LLM 相關
│ │ ├── __init__.py
│ │ ├── ollama_client.py
│ │ └── gemini_client.py
│ └── utils/ # 工具函數
│ ├── __init__.py
│ └── web_search.py
├── tests/ # 測試
├── docs/ # 文件
├── data/ # 數據文件
├── .env.example # 環境變數範例
├── .gitignore
├── requirements.txt
└── README.md
MIT License
歡迎提交 Issue 和 Pull Request。
如有任何問題,請開啟 Issue 或聯繫維護者。