使用说明

项目简介

文档分析智能体(Document Analysis Agent)是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为大型语言模型(LLM)客户端提供文档分析和处理能力。它利用 Anthropic 的 Claude 3 Opus 模型,能够从各种文档中提取关键信息、生成摘要、进行实体搜索等。该服务器实现了 MCP 协议,可以与任何兼容 MCP 协议的客户端进行通信,实现标准化和可扩展的文档上下文服务。

主要功能点

  • 文档分析: 提取文档中的关键信息,如实体、日期、金额等。
  • 文档摘要: 生成不同详细程度的文档摘要,快速概括文档内容。
  • 实体搜索: 查找包含特定实体的文档,方便信息检索。
  • 批量处理: 高效处理多个文档,提高分析效率。
  • AI驱动: 使用 Claude 3 Opus 模型,保证分析的智能性和准确性。
  • MCP集成: 基于 MCP 协议构建,易于集成到各种 LLM 应用中。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/mendo-/doc-analysis-agent.git
    cd doc-analysis-agent
  2. 创建虚拟环境并安装依赖:

    uv venv
    source .venv/bin/activate   # Unix/macOS
    uv pip install -e .
  3. 配置环境变量:

    cp .env.example .env

    编辑 '.env' 文件,填入你的 Anthropic API 密钥:

    ANTHROPIC_API_KEY=your-api-key-here

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置以下 JSON 格式信息才能连接到 'doc-analysis-agent' 服务器。以下是示例配置,server name 可以自定义,command 和 args 必须按照注释修改:

{
  "servers": [
    {
      "server name": "doc-analysis-agent",  // 自定义服务器名称,例如 "文档分析服务器"
      "command": "python",                 // 运行服务器的命令,这里使用 python
      "args": [                           // 启动服务器的参数列表
        "-m",                             // -m 参数用于运行模块
        "docanalysis.mcp.server"         // 指定要运行的模块为 docanalysis.mcp.server,即服务器入口
      ]
    }
  ]
}

配置说明:

  • '"server name"': MCP 客户端中显示的服务名称,可以自定义。
  • '"command"': 运行服务器程序的可执行命令,这里是 'python',假设你的 Python 环境已配置好。
  • '"args"': 传递给 'command' 的参数列表。
    • '"-m"': Python 的 '-m' 参数用于将模块作为脚本运行。
    • '"docanalysis.mcp.server"': 指定要运行的 Python 模块是 'docanalysis.mcp.server',这指向了仓库中 'src/docanalysis/mcp/server.py' 文件,其中包含了 'FastMCPDocumentAnalysisServer' 类和 'run()' 函数,是服务器的启动入口。

注意:

  • 确保你的环境中安装了 Python 3.11 或更高版本,并且 'uv' 已正确安装。
  • 确保 '.env' 文件中配置了有效的 Anthropic API 密钥,否则服务器将无法连接 Claude 3 Opus 模型。
  • MCP 客户端需要能够执行 'python -m docanalysis.mcp.server' 命令来启动服务器。

基本使用方法

启动服务器后,MCP 客户端可以通过 JSON-RPC 协议与之通信。以下是一个使用 Python 代码与服务器交互的简单示例 (此示例不是 MCP 客户端配置,而是展示如何通过 Python 代码调用服务器功能):

import asyncio
from docanalysis.mcp.server import FastMCPDocumentAnalysisServer

async def main():
    # 初始化服务器 (通常在 MCP 客户端中,服务器会自动启动)
    server = FastMCPDocumentAnalysisServer()
    await server.initialize()

    # 示例文档内容
    sample_doc_content = "This is a sample document for analysis."

    # 调用 analyze_document 工具分析文档
    analysis_result = await server.analyze_document({
        "content": sample_doc_content,
        "metadata": {
            "type": "generic",
            "title": "Sample Document"
        }
    })

    print("文档分析结果:")
    print(analysis_result)

    # 可以继续调用其他工具,例如 summarize_document, find_entity 等

if __name__ == "__main__":
    asyncio.run(main())

实际使用场景:

在实际应用中,你通常会使用一个 MCP 客户端(例如基于 LLM 的应用或工具)来连接到 'doc-analysis-agent' 服务器。客户端会通过 JSON-RPC 协议发送请求,调用服务器提供的各种工具(如 'analyze_document', 'summarize_document' 等),并接收服务器返回的分析结果,从而为 LLM 应用提供文档处理和上下文信息。 请参考 'examples/' 目录下的示例代码,了解更多关于如何使用服务器功能的细节。

信息

分类

AI与计算