检索增强生成系统

基于模型上下文协议设计模式的检索增强生成系统,利用本地知识库提供上下文感知的答案。

  • by GaneshSaiKumar
  • 本地部署
  • 更新于
在 GitHub 查看 GaneshSaiKumar/rag-mcp

使用说明

RAG MCP项目

该项目是基于“模型上下文协议”设计模式的检索增强生成(RAG)系统的简单实现。它使用本地知识库为用户查询提供上下文感知答案。


🚀 特性

  • 文档加载:从本地加载和处理PDF文件 data 目录。
  • 文本组块:将文档拆分为可管理的块以进行嵌入。
  • 矢量嵌入:使用拥抱脸 all-MiniLM-L6-v2 模型在本地创建嵌入。
  • 矢量存储器:利用 ChromaDB 用于高效的本地矢量存储和检索。
  • RAG链条:使用实现完整的RAG管道 LangChain 根据文档内容回答问题。

🛠️ 设置和安装

  1. 克隆存储库(或设置文件夹): 确保所有项目文件都在本地目录中。

  2. 创建数据文件夹:

    mkdir data
    

    将您的PDF文档放入此 data 文件夹。

  3. 安装依赖项: 请确保您已安装Python 3.8+。然后,使用pip安装所需的软件包:

    pip install langchain langchain-community langchain-huggingface chromadb pypdf langchain-openai
    

▶️ 如何跑步

  1. 设置你的法学硕士:

    • 对于OpenAI:将API键设置为环境变量。在您的终端中,运行:
      export OPENAI_API_KEY="sk-..."
      
      (在Windows命令提示符上,使用 set OPENAI_API_KEY="sk-...")
    • 对于Ollama(当地):确保Ollama服务正在运行,并且您已经拉取了一个模型(例如。, ollama pull llama3).
  2. 更新脚本:

    • 在 app.py,更改 "data/my_document.pdf" 到您的PDF文件的名称。
    • 确保脚本中的LLM初始化器与您的设置匹配(例如。, ChatOpenAI 或 ChatOllama).
  3. 执行脚本: 从终端运行主应用程序:

    python app.py
    

    脚本将处理文档并打印硬编码问题的答案。


📝 待办事项/未来改进

  • []使用Streamlit或FastAPI创建web界面。
  • []允许用户动态输入问题。
  • []添加对更多文档类型的支持(例如。, .txt, .docx).
  • []尝试不同的嵌入模型和LLM。