RAG聊天机器人与MCP工具
一种检索增强生成(RAG)聊天机器人,使用MCP(模型上下文协议)工具与ChromaDB矢量存储和Groq的Deepseek模型进行交互。
特性
- 矢量存储:ChromaDB用于文档存储和相似性搜索
- LLM:通过Groq API的深度搜索模型
- MCP工具:基于FastMCP的文档管理和搜索工具
- CLI接口:简单的命令行聊天界面
- 文档管理:添加文档、文件并搜索知识库
设置
- 再进行:
pip install -r requirements.txt- 设置环境:
cp .env.example .env
# Edit .env and add your Groq API key- 获取Groq API密钥:
- 注册地址: 希腊 - 创建API密钥 - 将其添加到您的 .env 文件
用法
启动聊天界面
python cli_chat.py可用命令
/help-显示帮助消息/add-将文档添加到知识库/addfile-将文件添加到知识库/search-搜索知识库/info-显示收藏信息/clear-清除对话历史记录/quit或/exit-退出聊天
自然聊天
你也可以自然地提问。AI将自动:
- 在知识库中搜索相关信息
- 利用这种背景提供明智的回应
- 根据需要调用MCP工具
MCP工具
该系统包括以下MCP工具:
- 搜索文档:搜索相关文件
- add_document:添加新文档内容
- add_file:将文件内容添加到矢量存储中
- get_collection_info:获取收集统计信息
- 删除文档:从存储中删除文档
测试
运行测试脚本以验证一切正常:
python test_rag.py建筑
vector_store.py:ChromaDB集成和文档管理mcp_server.py:带RAG工具的MCP服务器groq_client.py:深度搜索模型的Groq API客户端mcp_client.py:MCP客户端和代理逻辑cli_chat.py:命令行聊天界面test_rag.py:基本功能测试
graph TD
%% User Entry
USER[User] --> CLI[cli_chat.py]
%% Main Flow
CLI --> CLIENT[mcp_client.py]
CLIENT --> GROQ[groq_client.py]
CLIENT --> SERVER[mcp_server.py]
%% Core Components
SERVER --> VECTOR[vector_store.py]
GROQ --> API[Groq API]
VECTOR --> CHROMA[(ChromaDB)]
VECTOR --> EMBED[SentenceTransformer]
%% Main Functions
SERVER --> SEARCH[search_documents]
SERVER --> ADD[add_document]
SERVER --> ADDFILE[add_file]
%% Vector Operations
ADD --> CHUNK[Text Chunking]
CHUNK --> STORE[Store Embeddings]
SEARCH --> RETRIEVE[Retrieve Context]
%% Data Flow
STORE --> CHROMA
RETRIEVE --> CHROMA
RETRIEVE --> GROQ
GROQ --> CLI
%% Styling
classDef user fill:#e1f5fe
classDef app fill:#fff3e0
classDef external fill:#e8f5e8
classDef data fill:#f3e5f5
class USER user
class CLI,CLIENT,SERVER,VECTOR app
class API,CHROMA,EMBED external
class CHUNK,STORE,RETRIEVE data该系统自动管理RAG管道,在需要时搜索相关上下文,并根据您的知识库提供明智的回应。
