Token导航 LogoToken导航TokenDH.com
Rag Toolkit logo
搜索检索stdio官方级别未说明来源级核验

Rag Toolkit

MCP Server

基于Ollama和LangChain的RAG测试工具,支持本地LLM运行、文档检索增强生成和MCP工具集成,适用于开发AI代理和文档管理应用。

工具数

2

提示词数

0

GitHub Stars

1

资源数

0
RAG本地LLMPython文档检索AI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

godstale

提供方

godstale

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install uv

详细介绍

RAG工具包

RAG ToolKit是基于Ollama/LangChain的RAG测试工具。您可以使用Ollama注册的嵌入模型在RAG DB中注册和搜索多个文档。当输入用户的问题时,可以将在RAG DB中搜索到的结果作为MCP工具注册的agent进行处理后进行回答。

RAG ToolKit的所有操作都使用Ollama在本地环境中运行,因此嵌入和LLM使用无需额外费用。此外,通过结合MCP的ReAct agent生成答案,您可以根据RAG搜索结果生成更适合您的问题的答案。但是,为了正确执行此过程,不仅要修改MCP设置,还要修改ReAct agent的提示等,以满足您的需要,并进行充分的测试。

该项目可以成为希望用Python开发基于GUI的RAG/AI-Agent应用程序的开发人员的有用基础代码。

关键功能(Key Features)

  • 运行本地LLM:通过Ollama在本地免费驱动LLM模型,降低隐私和成本
  • RAG(生成搜索增强):在本地矢量数据库中注册PDF、文本文件等,以提供基于文档的上下文识别答案
  • MCP工具集成:通过MCP服务器协议集成和调用外部工具和服务
  • 管理对话记录:自动保存对话内容并浏览上一次对话
  • 实时流媒体:实时流式输出LLM答案和工具调用结果
  • 直观的GUI:提供基于PySide6的桌面界面(包括MCP服务器和RAG文档管理功能)

安装方法(Installation)

系统要求

  • Python 3.12或更高版本
  • 奥拉玛 安装(用于运行本地LLM)
  • 紫外线 (包管理器,推荐)

分阶段安装

  1. 复制存储库
   git clone https://github.com/your-repo/RAG-Tester.git
   cd RAG-Tester
  1. uv安装(如果没有)
   # pip 사용
   pip install uv

   # 또는 curl (Unix-like)
   curl -LsSf https://astral.sh/uv/install.sh | sh

   # 또는 PowerShell (Windows)
   powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
  1. 依赖性安装
   uv sync
  1. Ollama安装和型号下载

Ollama官方网站安装后,使用以下命令下载LLM模型和嵌入模型:

- LLM型号 (例如qwen 3:14b):用于聊天和生成答案 - 嵌入模型 (bge-m3):用于RAG文档矢量化

   ollama pull qwen3:14b
   ollama pull bge-m3

如何运行(How to Run)

uv run main.py

运行上述命令将打开GUI窗口,您可以开始聊天。

使用RAG功能

  1. 通过UI中的设置菜单或按钮打开“文档管理”(Document Management)。
  2. 注册PDF或文本文件。
  3. 聊天时,您可以根据文档的内容提问。

MCP服务器设置(可选)

  1. settings/mcp_config.json 在文件中添加MCP服务器信息,或使用GUI中的MCP服务器设置菜单。
  1. Exa MCP服务器示例 (Web搜索和代码上下文搜索):

这个示例 exa-mcp-server添加使用搜索Web搜索和编码相关上下文的功能。 要使用 Exa AI必须从中获得API密钥。

   {
     "mcpServers": {
       "exa": {
         "command": "npx",
         "args": [
           "-y",
           "exa-mcp-server",
           "tools=get_code_context_exa,web_search_exa"
         ],
         "env": {
           "EXA_API_KEY": "your_exa_api_key_here"
         },
         "transport": "stdio"
       }
     }
   }

Exa MCP主要工具:

- web_search_exa:执行实时Web搜索并获取相关内容。 - get_code_context_exa:专门搜索与编程相关的上下文,包括最新的库、SDK和API文档。

应用程序配置和功能详细信息(App Structure&Details)

应用程序 Chat选项卡第一课 RAG 탭 由两个主要界面组成。

1.Chat选项卡(对话界面)

Chat Interface

用户与AI对话并使用工具的主空间。

主要功能:

  • AI聊天:与设置的Ollama模型进行对话。
  • RAG连接:如果您在RAG选项卡上注册了文档,请在提问时自动搜索相关文档并将其反映在您的答案中。
  • 使用MCP工具:LLM根据需要自动调用活动MCP服务器上的工具(例如Web搜索、代码执行等)。
  • 对话记录:您可以开始新的聊天或载入和删除历史记录。
  • AI设置:可以实时调整LLM模型、Temperature、System Prompt等。

代码流(发送消息时):

  1. 输入:如果用户输入消息并按下发送按钮 ChatWindowEVENT_TYPE: "chat" 激发事件。
  2. RAG搜索(Backend):

- Worker 线程接收事件。 - 如果启用了RAG功能,并且有已注册的文档, RAGManager通过搜索与问题相关的文档区块(Chunk)(ragSearch). - 如果找到“上下文”(Context),请将其包括在提示中。

  1. LLM推论(Agent):

- OllamaAgentManager配置并运行LangChain图形。 - 如果LLM认为需要使用工具 MCPClient通过运行外部工具并接收结果。

  1. 流响应:

- 生成的答案令牌和工具运行结果 out_queue通过实时传递到UI(chat_message 事件)。 - ChatWindow在屏幕上立即显示。

2.RAG选项卡(文档管理和搜索测试)

RAG Interface

用于管理RAG系统的文档和测试搜索性能的空间。

主要功能:

  • 注册文档:PDF,注册文本文件并为矢量数据库(FAISS)编制索引。
  • 文档/区块管理:可以查看和删除已注册文档列表和已拆分文本块。
  • 测试RAG搜索:无需实际聊天,您可以通过搜索关键字来测试文档的搜索是否正确。可以查看搜索到的区块内容以及相似度得分(Similarity Score)。
  • RAG设置:可以精细调整RAG参数,如区块大小(Chunk Size)、重复区间(Overlap)、搜索方式(Similarity/MMR)、搜索数量(k)。

代码流(注册文档时):

  1. 选择文件:用户单击“添加文档”按钮选择文件。
  2. 文档处理(Backend):

- Worker 螺纹 rag_add_pdf 接收等事件。 - RAGManager加载文档,并将文本拆分为设置的大小。 - OllamaEmbeddings 使用(bge-m3模型等)将文本转换为矢量。 - 矢量数据 FAISS 存储为索引文件,元数据为 SQLite 存储在数据库中。

  1. 反映结果:处理完成后,UI中的文档列表将更新。

代码流(测试搜索时):

  1. 搜索请求:在RAG选项卡的搜索窗口中输入查询。
  2. 矢量搜索:

- RAGManager通过矢量化输入的查询,在FAISS索引中搜索类似的区块。 - 根据设置的搜索方式(相似度、MMR等)选择最佳结果。

  1. 显示结果:详细显示已搜索区块的内容、来源文档、相似度分数等,以验证搜索质量。

系统体系结构和技术堆栈

该应用程序使用以下技术实现高响应性UI和强大的后端逻辑:

  • 前端(GUI): PySide6 (Qt for Python)。包括主窗口和各种设置对话框。
  • 后端逻辑:采用了多线程体系结构,以防止UI冻结。

- Worker 主题(ui/worker.py)负责LLM通信、RAG处理、MCP服务器通信等所有长期运行任务。 - UI和工作器之间的通信通过线程安全(Thread-safe)队列进行。

  • LLM和Tool集成: LangChain 使用框架管理代理结构化、链调用和工具交互。

- langchain-ollama:Ollama集成 - langchain-mcp-adapters:MCP协议支持

  • RAG系统:

- 向量存储: FAISS支持快速的文档矢量相似度搜索。 - 嵌入: OllamaEmbeddings通过在本地创建矢量嵌入。 - 元数据: SQLite 数据库(settings/rag_database.db)管理文档和区块的元数据。

配置主要文件(Code Structure)

  • main.py:应用程序的入口点。
  • ui/

- chat_window.py:定义主应用程序窗口和UI布局 - worker.py:处理与LLM、RAG和MCP服务器的异步通信的后台工作人员 - widgets/:各种设置和管理对话框集合

  • agent/

- llm_ollama.py:LangChain代理管理和Ollama模型交互处理 - rag_manager.py:实现RAG核心逻辑,包括文档处理、Chunking、索引、搜索等 - rag_database.py:用于管理RAG元数据的SQLite数据库处理程序 - chat_history.py:保存和加载对话历史记录

  • mcp_server/

- mcp_manager.py:MCP工具服务器的设置和生命周期管理

  • settings/:应用程序设置文件和数据库存储库

- app_settings.py:管理应用程序设置 - mcp_config.json:MCP服务器设置文件

许可证(License)

MIT许可证

目录标签

目录标签

RAG本地LLMPython文档检索AI代理本地部署MCP工具

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP