Skip to content

jamesja64/chroma-rag-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chroma RAG Bot

一個基於 ChromaDB 和 RAG (Retrieval-Augmented Generation) 技術的智能聊天機器人,支援 LINE 平台。

功能特點

  • 智能問答:使用 RAG 技術提供準確回答
  • 多模型支援:支援 Ollama 和 Gemini 等 LLM 模型
  • 網路搜尋:整合 SerpAPI 進行即時網路搜尋
  • 對話歷史:自動保存對話歷史,提升上下文理解
  • 多語言支援:特別優化中文語意理解

快速開始

環境要求

  • Python 3.8+
  • pip

安裝步驟

  1. 克隆存儲庫:

    git clone https://github.com/jamesja64/chroma-rag-bot.git
    cd chroma-rag-bot
  2. 創建並激活虛擬環境:

    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    #
    .\venv\Scripts\activate  # Windows
  3. 安裝依賴:

    pip install -r requirements.txt
  4. 配置環境變數:

    • 複製 .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

  1. LINE Developers Console 創建一個 Provider 和 Messaging API Channel
  2. 獲取 Channel Access Token 和 Channel Secret
  3. .env 中填入相應的憑證
  4. 設置 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 或聯繫維護者。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages