多代理RAG法律文档处理系统

基于MCP协议的多代理RAG系统,专为法律技术应用设计,提供法律文档处理、截止日期提取和战略分析功能。

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

使用说明

多代理RAG MCP服务器

一个基于模型上下文协议(MCP)的综合多代理检索增强生成(RAG)系统,具有用于法律文件处理、截止日期提取和战略分析的专用AI微代理。

🎯 概述

该项目使用MCP服务器作为协调专业AI代理的基础,实现了一个相互连接的代理生态系统。该系统专为法律技术应用而设计,特别是文档智能和截止日期管理。

✨ 特性

  • 多代理架构三名专业人员协同工作
  • 向量存储:使用pgvector进行语义搜索的Supabase
  • MCP集成:与Claude Desktop无缝集成
  • 法律文件处理:专门用于西班牙法律通知
  • 策略分析公司:商业智能和背景分析
  • 零投入策略:75%自动化,25%战略监督

🤖 代理

1.截止日期代理人

准确提取和管理西班牙法律文件的截止日期。

能力:

  • 西班牙语法律文本处理
  • 截止日期提取和分类
  • 自动跟踪截止日期
  • 法律通知解析

2.文件分类代理

自动对法律文件进行分类和归类。

能力:

  • 多级文档分类
  • 元数据抽取
  • 自动标记
  • 文档类型识别

3.SmartContext分析代理

提供战略商业智能和情境分析。

能力:

  • 策略分析公司
  • 业务上下文提取
  • 跨文档见解
  • 趋势分析

🏗️ 建筑

rag-mcp-server/
├── src/
│   ├── server.py              # Main MCP server
│   ├── agents/
│   │   ├── deadline_agent.py
│   │   ├── document_agent.py
│   │   └── smartcontext_agent.py
│   └── data_sources/
├── database/
│   └── schema.sql             # Database schema
├── docs/                      # Documentation
├── config/                    # Configuration files
├── data/                      # Data storage
└── tests/                     # Test files

🚀 快速开始

先决条件

  • Python 3.10+
  • Supabase账户
  • Claude Desktop(用于MCP集成)
  • 带pgvector扩展的PostgreSQL

安装

  1. 克隆仓库
git clone https://github.com/yourusername/rag-mcp-server.git
cd rag-mcp-server
  1. 创建虚拟环境
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项
pip install -r requirements.txt
  1. 配置环境
cp .env.example .env
# Edit .env with your credentials
  1. 初始化数据库
# Run the database schema (see docs for details)
psql -h your-supabase-host -U postgres -d your-database -f database/schema.sql
  1. 配置Claude桌面 编辑您的Claude Desktop配置文件(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
  "mcpServers": {
    "rag-server": {
      "command": "python",
      "args": ["/Users/yourusername/rag-mcp-server/src/server.py"],
      "env": {
        "SUPABASE_URL": "your_supabase_url",
        "SUPABASE_KEY": "your_supabase_key"
      }
    }
  }
}
  1. 重新启动克劳德桌面

🛠️ 用法

该系统有两种使用方式:

1.MCP服务器(克劳德桌面集成)

配置后,可以通过Claude Desktop使用以下工具访问代理:

截止日期代理工具

  • extract_deadlines -从法律文件中提取截止日期
  • list_deadlines -列出所有跟踪的截止日期
  • search_deadlines -按条件搜索截止日期

文档代理工具

  • classify_document -对文档类型进行分类
  • index_document -将文档添加到矢量存储
  • search_documents -语义文档搜索

SmartContext代理工具

  • analyze_context -战略背景分析
  • extract_insights -商业智能提取
  • trend_analysis -跨文档趋势分析

2.REST API服务器(前端集成)

该系统还为前端应用程序提供了FastAPI REST API:

# Run REST API server (for frontend)
python src/api_server.py

API服务器运行于 http://localhost:8000 交互式文档位于 http://localhost:8000/docs.

主要特点:

  • 客户管理 -创建和管理客户记录
  • 文档上传 -上传文档并自动处理
  • 数据检索 -查询每个客户的文档、截止日期和分析
  • CORS已启用 -已准备好进行前端集成

API终点:

客户管理:

  • POST /api/clients -创建新客户端
  • GET /api/clients -列出所有客户
  • GET /api/clients/{client_id} -获取客户详细信息
  • PUT /api/clients/{client_id} -更新客户端
  • DELETE /api/clients/{client_id} -删除客户端(软删除)

文档操作:

  • POST /api/clients/{client_id}/documents -上传和处理文件
  • GET /api/clients/{client_id}/documents -列出客户文件
  • GET /api/clients/{client_id}/documents/stats -文档统计

截止日期管理:

  • GET /api/clients/{client_id}/deadlines -获取客户的截止日期
  • GET /api/clients/{client_id}/deadlines/stats -截止日期统计

战略分析:

  • GET /api/clients/{client_id}/analysis -获取战略分析

运行两台服务器:

# Run MCP server for Claude Desktop (existing functionality)
python src/server.py

# Run REST API server for frontend (new functionality)
python src/api_server.py

两台服务器可以独立运行,并使用相同的数据库。

📊 数据库模式

系统使用以下主表:

  • clients -客户信息和管理
  • documents -文档元数据和分类
  • deadline_extractions -最后期限提取操作
  • deadlines -提取截止日期跟踪
  • analyses -战略洞察力和分析

客户端隔离: 所有文件、截止日期和分析都通过以下方式与特定客户相关联 client_id,实现适当的数据隔离和多租户支持。

看 database/schema.sql 有关完整的架构详细信息。

📚 文档

综合文档可在 docs/ 文件夹:

  • 快速入门指南 -从头开始30分钟设置
  • 架构指南 -完整的系统设计和模式
  • 故障排除指南 -常见问题和解决方案
  • api参考 -工具定义和使用

🔒 安全

该系统实现了三层安全:

  1. 认证 -用户身份验证
  2. 授权 -访问控制和权限
  3. 加密 -敏感数据的零知识加密

永远不要承诺你的 .env 文件 -它包含敏感凭据。

🧪 测试

运行测试套件:

pytest tests/

测试单个试剂:

python test_deadline_extraction.py

🤝 贡献

这是一个个人项目,但欢迎提出建议和反馈!请打开一个问题来讨论拟议的更改。

📝 许可证

[在此处添加您的许可证]

🙏 致谢

内置:

📞 联系

[添加您的联系方式]


状态:生产就绪
版本: 1.0
最后更新2024年11月