使用说明
项目简介
文档分析智能体(Document Analysis Agent)是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为大型语言模型(LLM)客户端提供文档分析和处理能力。它利用 Anthropic 的 Claude 3 Opus 模型,能够从各种文档中提取关键信息、生成摘要、进行实体搜索等。该服务器实现了 MCP 协议,可以与任何兼容 MCP 协议的客户端进行通信,实现标准化和可扩展的文档上下文服务。
主要功能点
- 文档分析: 提取文档中的关键信息,如实体、日期、金额等。
- 文档摘要: 生成不同详细程度的文档摘要,快速概括文档内容。
- 实体搜索: 查找包含特定实体的文档,方便信息检索。
- 批量处理: 高效处理多个文档,提高分析效率。
- AI驱动: 使用 Claude 3 Opus 模型,保证分析的智能性和准确性。
- MCP集成: 基于 MCP 协议构建,易于集成到各种 LLM 应用中。
安装步骤
-
克隆仓库:
git clone https://github.com/mendo-/doc-analysis-agent.git cd doc-analysis-agent -
创建虚拟环境并安装依赖:
uv venv source .venv/bin/activate # Unix/macOS uv pip install -e . -
配置环境变量:
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与计算