项目简介

DocSynthAI是一个模块化、可扩展的智能文档理解平台。它利用Model Context Protocol (MCP) 机制,结合Gemini Vision AI模型,为LLM应用提供标准化的文档处理服务,实现文档的智能识别和归类。

主要功能点

  • AI驱动的文档分类: 整合Gemini Vision模型,能够智能识别文档内容并进行分类,例如将图片识别为发票、合同或身份证件等。
  • 规则管理: 提供灵活的工具,允许用户创建、更新、查询和删除自定义的分类规则,以满足特定的业务逻辑和需求。
  • 多种分类模式: 支持基于预设规则的精确分类,也支持通过通用大语言模型进行更广泛和开放式的文档分类。
  • 上下文服务: 通过MCP协议,以标准化、可扩展的方式向大型语言模型(LLM)客户端提供文档处理工具,使LLM能够调用外部功能进行文档理解。
  • 传输协议支持: 当前支持STDIO(标准输入/输出)传输协议进行本地或开发环境集成,未来计划扩展支持HTTP和SSE传输协议,以实现更广泛的网络集成。

安装步骤

在开始使用前,请确保您的系统已安装Python 3.11或更高版本。

  1. 克隆仓库: 打开终端或命令提示符,执行以下命令将DocSynthAI仓库克隆到本地:

    git clone https://github.com/raahulrawat/docsynthai.git
    cd docsynthai
  2. 安装Python依赖: 建议使用Python虚拟环境来管理项目依赖。首先创建并激活虚拟环境,然后安装所需的Python包:

    python -m venv .venv
    # 激活虚拟环境 (macOS/Linux):
    source .venv/bin/activate
    # 激活虚拟环境 (Windows):
    # .venv\Scripts\activate
    
    # 安装依赖 (fastmcp, google-generativeai, Pillow 是主要依赖)
    pip install fastmcp google-generativeai Pillow

    注意:仓库代码中未提供'requirements.txt'文件,请手动安装上述列出的核心依赖。

服务器配置

DocSynthAI服务器旨在与任何支持MCP协议的主机或客户端(例如某些AI开发环境或IDE工具)集成。以下是一个标准的JSON配置示例,用于告诉MCP主机如何启动DocSynthAI服务器并与之建立连接:

{
  "mcpServers": {
    "docsynth": {
      "command": "python",
      "args": [
        "server.py"
      ],
      "transport": {
        "type": "stdio"
      },
      "env": {}
    }
  }
}

配置说明

  • 'mcpServers': 这是一个根对象,用于定义一个或多个MCP服务器。
  • 'docsynth': 这是您为DocSynthAI服务器实例指定的一个唯一名称。
  • 'command': 指示MCP主机使用哪个程序来启动服务器。这里设置为 'python' 解释器。
  • 'args': 一个字符串数组,包含了传递给 'command' 的参数。这里指定了服务器脚本文件 'server.py'。
  • 'transport': 定义MCP客户端与服务器通信所使用的协议类型。这里设置为 'stdio',表示通过标准输入/输出流进行通信。
  • 'env': 一个空对象,您可以选择在此处添加任何服务器运行时需要的环境变量(例如Google API密钥等,但通常这些会在工具调用时传递)。

您可以将此JSON配置保存为 '.mcp/docsynth-mcp.json' 文件,或将其直接整合到您的MCP主机程序的配置中。这样,MCP客户端就能自动发现、启动并连接到DocSynthAI服务器。

基本使用方法

  1. 启动DocSynthAI MCP服务器: 在项目的根目录下,执行以下命令来启动MCP服务器:

    python server.py

    服务器将在STDIO(标准输入/输出)模式下运行,等待MCP客户端的连接。

  2. 运行客户端演示: 在另一个终端窗口中,您可以运行项目提供的客户端演示脚本,以了解如何与服务器交互:

    python mcp_stdio_client.py

    该演示客户端将执行以下操作:

    • (如果服务器未运行)自动作为子进程启动 'server.py'。
    • 执行MCP初始化握手过程。
    • 提示您输入Google API密钥(用于启用Gemini Vision)。
    • 允许您选择本地图像文件进行分类,并打印分类结果。
  3. 核心MCP工具: DocSynthAI服务器暴露了一系列可供LLM客户端调用的MCP工具,以执行文档处理任务:

    • 'setup_classifier': 用于初始化文档分类器,配置Google API密钥和使用的Gemini模型。
    • 'create_rule': 允许您创建或更新自定义的文档分类规则。
    • 'get_all_rules': 查询并获取所有当前已配置的分类规则。
    • 'delete_rule': 删除指定的文档分类规则。
    • 'classify_document': 核心分类工具,接收Base64编码的文档图像和媒体类型,返回分类结果。

信息

分类

AI与计算