检索增强生成聊天机器人

一个使用MCP工具与ChromaDB向量存储和Groq的Deepseek模型交互的检索增强生成(RAG)聊天机器人。

  • by powder-o
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 powder-o/mcp-ragbot

使用说明

RAG聊天机器人与MCP工具

一种检索增强生成(RAG)聊天机器人,使用MCP(模型上下文协议)工具与ChromaDB矢量存储和Groq的Deepseek模型进行交互。

特性

  • 矢量存储:ChromaDB用于文档存储和相似性搜索
  • LLM:通过Groq API的深度搜索模型
  • MCP工具:基于FastMCP的文档管理和搜索工具
  • CLI接口:简单的命令行聊天界面
  • 文档管理:添加文档、文件并搜索知识库

设置

  1. 再进行:

    pip install -r requirements.txt
    
  2. 设置环境:

    cp .env.example .env
    # Edit .env and add your Groq API key
    
  3. 获取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管道,在需要时搜索相关上下文,并根据您的知识库提供明智的回应。