法律文档检索工具

一个针对土耳其法律合同和邮件的语义搜索工具,支持PDF、DOCX和EML文件解析与检索,可通过Claude Desktop和Claude Code直接使用。

  • by avocatt
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 avocatt/legal-rag-toolkit

使用说明

RAG法律工具包

对土耳其法律合同和电子邮件进行语义搜索,由直接插入Claude Desktop和Claude Code的MCP服务器提供支持。

Claude没有构建单独的web UI 是 界面——该工具包提供检索后端作为MCP工具和Claude Code技能。

它做什么

  • 摄取 PDF、DOCX和 .eml 文件——解析、块化、嵌入并存储在本地向量数据库中
  • 搜索 具有混合密集+稀疏检索的合同和电子邮件(土耳其语和英语查询)
  • 检索 按文件名显示完整文档以进行深度读取
  • 技能 克劳德代码: /search-contract, /analyze-clause, /draft-response, /ingest-docs, /ingest-emails

建筑

Claude Desktop / Claude Code
        |
        | MCP (stdio)
        |
[Legal RAG MCP Server] ── Python, FastMCP
  |
  |── search_contracts     hybrid vector search over contracts
  |── search_emails        hybrid vector search over emails
  |── get_document         retrieve all chunks for a file
  |── ingest_docs          parse + embed PDF/DOCX documents
  |── ingest_email         parse + embed .eml files
  |── list_sources         show indexed files and stats
  |
  |── LanceDB              embedded vector DB (file-based, zero-server)
  |── BAAI/bge-m3          multilingual embeddings (1024d, 8K context)
  |── PyMuPDF + pdfplumber PDF parsing
  |── python-docx          DOCX parsing
  |── imap_tools           email parsing

设置

# Clone
git clone https://github.com/avocatt/legal-rag-toolkit.git
cd legal-rag-toolkit

# Create venv and install
python3.11 -m venv .venv
source .venv/bin/activate
pip install -e .

# Store HuggingFace token in macOS Keychain (for BGE-M3 model download)
security add-generic-password -a $USER -s HF_TOKEN -w "hf_your_token_here"

克劳德桌面版

添加 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "legal-rag-toolkit": {
      "command": "/path/to/legal-rag-toolkit/.venv/bin/python",
      "args": ["/path/to/legal-rag-toolkit/src/server/mcp_server.py"]
    }
  }
}

重新启动克劳德桌面。工具将出现在锤子图标下方。

克劳德代码

# Add as MCP server
claude mcp add legal-rag-toolkit -- /path/to/legal-rag-toolkit/.venv/bin/python /path/to/legal-rag-toolkit/src/server/mcp_server.py

用法

一旦连接,自然地问克劳德:

  • “在~/Documents/contracts中为合同建立索引”
  • “搜索租赁协议中的终止条款”
  • “在租赁协议中搜索排放级别”
  • “显示所有索引文档”
  • “调出kira_sozlesmesi-048.pdf的全文”

堆栈

组件 选择 为什么
MCP服务器 Python+FastMCP 单语言,成熟的SDK
嵌入 BAAI/bge-m3 8K上下文,混合检索,MIT,土耳其语通过XLM RoBERTa
Vector DB LanceDB 嵌入式、基于文件、混合搜索、零基础设施
PDF解析 PyMuPDF+Pdfplant 快速、轻便、良好的表格提取
DOCX解析 python-DOCX 带样式检测的结构解析
电子邮件解析 imap_tools 土耳其语字符集支持(ISO-8859-9)

路线图

  • []索引前KVKK(土耳其GDPR)PII屏蔽
  • []使用标题样式和字体大小进行结构感知分块
  • []交叉编码器重新排序 BAAI/bge-reranker-v2-m3
  • []OCR和复杂PDF布局的文档集成
  • []通过兼容OpenAI的API支持本地LLM

许可证

麻省理工学院