多模态RAG文档处理服务器

一个基于MCP协议的服务器,提供全面的检索增强生成(RAG)能力,支持多模态文档处理与查询。

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

使用说明

RAG 任意内容MCP服务器

一个MCP(模型上下文协议)服务器,它提供了全面的RAG(检索增强生成)功能,用于处理和查询文档目录,使用 raganything 提供全面多模态支持的库。

特点/功能

  • 端到端文档处理完成文档解析并提取多模态内容
  • **多模态RAG(Retrieval-Augmented Generation,检索增强生成)**支持图像、表格、方程式和文本处理
  • 批处理处理包含多种文件类型的整个目录
  • 高级查询纯文本查询和多模态增强查询两者皆可
  • 多种查询模式混合模式、本地模式、全局模式、简单模式、混合使用模式和绕过模式
  • 视觉处理使用GPT-4V进行高级图像分析
  • 持久存储为每个目录维护RAG实例以实现高效查询

可用工具

process_directory

对目录中的所有文件进行处理,以实现支持多模态的全面RAG(检索增强生成)索引。

必需参数:

  • directory_path包含待处理文件的目录路径
  • api_key用于大型语言模型(LLM)和嵌入函数的OpenAI API密钥

可选参数:

  • working_dir自定义用于RAG存储的工作目录
  • base_urlOpenAI API 基础 URL(用于自定义端点)
  • file_extensions要处理的文件扩展名列表(默认:['.pdf', '.docx', '.pptx', '.txt', '.md'])
  • recursive处理子目录(默认:True)
  • enable_image_processing启用图像分析(默认:True)
  • enable_table_processing启用表格提取(默认:True)
  • enable_equation_processing启用方程处理(默认:True)
  • max_workers并发处理工作线程(默认:4)

process_single_document

对单个文档进行全面的多模态分析处理。

必填参数:

  • file_path要处理的文档的路径
  • api_keyOpenAI API密钥

可选参数:

  • working_dir自定义RAG存储的工作目录
  • base_urlOpenAI API 基础URL
  • output_dir解析内容的输出目录
  • parse_method文档解析方法(默认:“auto”)
  • enable_image_processing启用图像分析(默认:True)
  • enable_table_processing启用表格提取(默认:True)
  • enable_equation_processing启用方程处理(默认:True)

query_directory

使用LightRAG对处理过的文档进行纯文本查询。

参数:

  • directory_path处理后目录的路径
  • query关于这些文件的问题
  • mode查询模式 - “混合”、“本地”、“全局”、“简单”、“混合(特定组合)”或“绕过”(默认:混合)

query_with_multimodal_content

通过添加额外的多模态内容(表格、方程式等)增强查询功能。

参数:

  • directory_path处理后的目录路径
  • query应该问的问题
  • multimodal_content多模态内容词典列表
  • mode查询模式(默认:“混合”)

示例多模态内容:

[
  {
    "type": "table",
    "table_data": "Method,Accuracy\\nRAGAnything,95.2%\\nBaseline,87.3%",
    "table_caption": "Performance comparison"
  },
  {
    "type": "equation",
    "latex": "P(d|q) = \\frac{P(q|d) \\cdot P(d)}{P(q)}",
    "equation_caption": "Document relevance probability"
  }
]

list_processed_directories

列出所有已处理且可供查询的目录。

get_rag_info

获取目录的RAG(检索增强生成)配置和状态的详细信息。

使用示例

1. 基本目录处理

process_directory(
  directory_path="/path/to/documents",
  api_key="your-openai-api-key"
)

2. 高级目录处理

process_directory(
  directory_path="/path/to/research_papers",
  api_key="your-openai-api-key",
  file_extensions=[".pdf", ".docx"],
  enable_image_processing=true,
  enable_table_processing=true,
  max_workers=6
)

3. 纯文本查询

query_directory(
  directory_path="/path/to/documents",
  query="What are the main findings in these research papers?",
  mode="hybrid"
)

4. 带表格数据的多模态查询

query_with_multimodal_content(
  directory_path="/path/to/documents",
  query="Compare these results with the document findings",
  multimodal_content=[{
    "type": "table",
    "table_data": "Method,Accuracy,Speed\\nRAGAnything,95.2%,120ms\\nBaseline,87.3%,180ms",
    "table_caption": "Performance comparison"
  }],
  mode="hybrid"
)

5. 单文档处理

process_single_document(
  file_path="/path/to/important_paper.pdf",
  api_key="your-openai-api-key",
  enable_image_processing=true
)

设置要求

1. 环境变量

export OPENAI_API_KEY="your-openai-api-key-here"

2. 安装依赖项

uv sync

3. 运行MCP服务器

python main.py

查询模式详解

  • 混合的;杂交的结合局部搜索和全局搜索(推荐用于大多数使用场景)
  • 当地的注重本地上下文和实体关系
  • 全球提供更全面的、基于文档的见解和摘要
  • 天真的;幼稚的基于简单关键词的搜索,不进行图推理
  • **mix(混合)**结合多种方法以取得全面成果
  • 旁路;绕过直接访问,无需RAG处理

多模态内容类型

该服务器支持以下处理和查询操作:

  • 图片自动字幕生成与视觉分析
  • 桌子结构提取与内容分析
  • 方程LaTeX解析与数学推理
  • 图表视觉数据解读
  • 混合内容多种内容类型的综合分析

API 配置

服务器默认使用OpenAI的API:

  • LLM用于文本处理的GPT-4o-mini
  • 愿景GPT-4o用于图像分析
  • **嵌入(或嵌入表示)**文本嵌入-3大型(3072维)

您可以自定义 base_url 要使用的参数:

  • Azure OpenAI
  • 与OpenAI兼容的API
  • 自定义模型端点

文件支持

支持的文件格式包括:

  • PDF文档
  • Microsoft Word(.docx)
  • PowerPoint 演示文稿(.pptx)
  • 文本文件(.txt)
  • Markdown 文件(.md)
  • 并且通过 raganything 库获取更多内容

性能说明

  • 并发处理使用 max_workers 控制并行文档处理
  • 内存使用情况包含大量图像的大型文档可能需要大量内存
  • API费用视觉处理(GPT-4o)比文本处理成本更高
  • 存储处理后的数据存储在本地,以便高效地重新查询