目录

LawRAG — 基于沐曦算力的法律知识图谱 AI Skill

任务二:基于沐曦算力的 AI Skill 与 MCP 应用开发 方向:知识问答助手(基于 RAG 的领域知识问答)

License: MIT


项目简介

LawRAG 是一套面向中文法律领域的 AI Skill / MCP 解决方案,基于 Neo4j 法律知识图谱 + GraphRAG + Text2Cypher 构建,支持将自然语言法律问题自动转换为 Cypher 查询,从图数据库中检索法律法规、司法解释、典型案例等信息,再由大模型生成结构化、可溯源的中文法律问答报告。

本项目包含三个核心部分:

目录 说明
[law_extract] 法律知识提取代码,供用户查看/复现数据如何从原始法律文档(TXT/PDF/DOCX/DOC)抽取为 Neo4j 可导入的图谱。
[LawRAG_linux] Linux 服务器端一键部署包(Neo4j + FastAPI + Claude Code Skill 远程查询客户端)。
[LawRAG_win] Windows 本地一键部署包(Neo4j + FastAPI + Claude Code Skill 本地服务管理)。

虽然 LawRAG 当前聚焦中文法律领域,但其底层链路——文档抽取 → 图谱构建 → Neo4j 持久化 → GraphRAG 检索问答 → Skill 一键调用——是领域无关的。你可以将医疗、建筑、企业规章、学术论文等任意垂直领域的文档按相同流程导入 Neo4j,复用同一套 LawRAG_linux / LawRAG_win 部署包与查询接口,快速搭建面向个人或团队的“一键查询知识库”。


Skill 功能说明

核心能力

  1. 自然语言法律问答

    • 用户以中文口语提问,例如”试用期被辞退有赔偿吗”。
    • 系统自动将问题转换为 Cypher 图查询,检索相关法律、条款、司法解释、法律责任等。
    • 基于检索结果生成包含”相关法条 + 法律责任分析 + 综合意见 + 操作建议 + 追问引导”的结构化 Markdown 报告。
  2. 知识图谱检索增强(GraphRAG)

    • 图数据库涵盖 6 大法律领域:宪法、法律、行政法规、司法解释、地方法规、监察法规。
    • 总计约 145,792 节点 / 89,618 关系,涵盖 13 种节点类型和 36 种关系类型。
    • 支持实体关系追溯,答案中的每条法条均可定位到原始法律文本。
  3. Claude Code Skill 集成

    • law-kg-server(Linux 远程服务器模式)
    • law-kg-local(Windows 本地服务模式)
    • 安装 Skill 后,Claude Code 自动捕获中文法律问题并调用本地/远程知识图谱服务。
  4. 完整 API 接口封装

    • GET /health — 健康检查
    • POST /query — 自然语言法律查询,返回 answercyphercontext 等字段

适用场景

  • 法律概念查询、权利义务分析
  • 劳动合同、婚姻家庭、知识产权、公司法、建筑法、消费者权益保护等常见问题
  • 法条原文检索、司法解释关联、法律责任判定
  • 法律学习辅助、企业合规自查、公共法律服务

使用的模型与算力环境

沐曦算力环境配置(实测)

本项目已通过 Gitee.AI 平台调用沐曦 GPU 资源包完成真实验证,模型通过 OpenAI 兼容接口接入。

配置项 实际值
算力平台 Gitee.AI 沐曦资源包
模型服务商 DeepSeek
模型服务端点 https://ai.gitee.com/v1
模型名称 DeepSeek-V4-Flash
部署方式 LawRAG_linux 一键部署包
推理框架 OpenAI 兼容 API(由沐曦 GPU 加速)

LawRAG_linux/app/.env 配置示例:

LLM_PROVIDER=deepseek
DEEPSEEK_API_KEY=sk-你的GiteeAIKey
DEEPSEEK_BASE_URL=https://ai.gitee.com/v1
DEEPSEEK_MODEL=DeepSeek-V4-Flash

大模型服务接入

FastAPI 查询服务通过 OpenAI 兼容接口统一封装,除沐曦 / Gitee.AI 外,还可灵活接入:

服务商 默认模型 配置变量前缀
DeepSeek deepseek-chat DEEPSEEK_*
Moonshot Kimi moonshot-v1-8k KIMI_*
OpenAI gpt-4 OPENAI_*
阿里云 DashScope qwen-turbo DASHSCOPE_*
本地 vLLM 自定义 VLLM_*
本地 Ollama llama3.1 OLLAMA_*

技术栈

  • 图数据库:Neo4j Community 5.26.28
  • GraphRAG 框架:neo4j-graphrag
  • LLM 接入:OpenAI SDK(兼容多家国产/国际模型)
  • Web 服务:FastAPI + Uvicorn
  • 数据验证:Pydantic v2
  • 文档加载:pypdf、python-docx、chardet(知识提取模块)

项目组织结构

LawRAG/
├── README.md                     # 本文件:项目总览与比赛提交说明
├── law_extract/                  # 法律知识提取源码(数据如何生成)
│   ├── README.md                 # 提取模块使用说明
│   ├── extract_law.py            # 知识提取主入口
│   ├── export_to_deploy.py       # 规范化导出为部署数据
│   ├── import_to_neo4j.py        # 自动导入 Neo4j
│   ├── rag_law.py                # CLI 查询工具
│   ├── main.py                   # FastAPI Web 服务(端口 8001)
│   ├── src/                      # 提取核心库
│   └── ...
├── LawRAG_linux/                 # Linux 服务器部署包
│   ├── README.md                 # Linux 部署与使用说明
│   ├── app/                      # FastAPI 查询服务(端口 8000)
│   ├── data/                     # 法律知识图谱数据(CSV + Cypher)
│   ├── scripts/                  # install.sh / uninstall.sh 等
│   ├── skill/                    # Claude Code Skill(远程服务器模式)
│   ├── benchmarks/               # 真实调用测试与性能基准
│   └── ...
└── LawRAG_win/                   # Windows 本地部署包
    ├── README.md                 # Windows 部署与使用说明
    ├── app/                      # FastAPI 查询服务(端口 8000)
    ├── data/                     # 法律知识图谱数据(CSV + Cypher)
    ├── scripts/                  # install.bat / install.ps1 等
    ├── skill-files/              # Claude Code Skill(本地服务模式)
    └── ...

快速开始

方式一:使用预构建的部署包(推荐)

Linux 服务器

cd LawRAG_linux/scripts
export NEO4J_PASSWORD=your_neo4j_password      # 至少 8 位
export LLM_PROVIDER=deepseek                   # 或 kimi / dashscope / vllm / ollama
export DEEPSEEK_API_KEY=your_deepseek_key      # 对应服务商的 API Key
./install.sh

安装完成后访问:

curl http://<服务器IP>:8000/health

Windows 本地

  1. LawRAG_win/ 解压到纯英文、无空格路径,例如 D:\LawRAG_win
  2. 双击运行 scripts\install.bat,或打开 PowerShell 运行 .\scripts\install.ps1
  3. 按提示输入 Neo4j 密码与 LLM 配置(也可提前设置环境变量避免交互)。
  4. 安装完成后访问 http://localhost:8000/health

详细步骤、环境变量、服务管理、故障排查请分别参见 LawRAG_linux/README.mdLawRAG_win/README.md

方式二:从源码构建(复现 / 二次开发)

cd law_extract
conda create -n lawrag python=3.10 -y
conda activate lawrag
pip install -r requirements.txt

# 1. 配置环境变量
cp .env.example .env
# 编辑 .env,填入 Neo4j 连接信息与 LLM API Key

# 2. 从法律文档抽取知识图谱
python extract_law.py -m data/ -w 4

# 3. 导入 Neo4j
python import_to_neo4j.py

# 4. 启动查询服务
uvicorn main:app --host 0.0.0.0 --port 8001

运行与部署方法

环境要求

组件 Linux Windows
Java 17+ 21+(Neo4j 2025.x)
Python 3.10+ 3.10+
Neo4j Community 2026.05.0(默认) Community 2025.12.1(默认)
网络 需能访问所选 LLM 服务 需能访问所选 LLM 服务

关键环境变量

变量 说明 示例
NEO4J_PASSWORD Neo4j 初始密码(必填) neo4j123
NEO4J_URI Neo4j Bolt 地址 bolt://localhost:7687
LLM_PROVIDER 模型服务商 deepseek / kimi / dashscope / vllm / ollama
LLM_TEMPERATURE LLM 温度参数 0
{PROVIDER}_API_KEY 对应服务商 API Key sk-...
{PROVIDER}_BASE_URL 模型服务地址 https://api.deepseek.com/v1
{PROVIDER}_MODEL 模型名称 deepseek-chat

服务管理

Linux(systemd)

systemctl status law-kg-api
sudo systemctl start law-kg-api
sudo systemctl stop law-kg-api
sudo systemctl restart law-kg-api

Windows

scripts\start-all.bat      # 启动 Neo4j + API
scripts\stop-all.bat       # 停止服务

防火墙 / 安全组

端口 用途 建议授权对象
8000 FastAPI 查询服务 按需开放
7474 Neo4j Browser(可选) 限定 IP
7687 Neo4j Bolt(可选) 限定 IP

示例输入输出

健康检查

curl http://localhost:8000/health

返回:

{"status": "ok", "database": "bolt://localhost:7687"}

自然语言查询

curl -X POST http://localhost:8000/query \
  -H 'Content-Type: application/json' \
  -d '{"query_text": "查询劳动合同法中关于劳动者权利的规定"}'

返回:

{
  "answer": "根据《劳动合同法》相关规定,劳动者享有取得劳动报酬、休息休假、获得劳动安全卫生保护、接受职业技能培训、享受社会保险和福利、提请劳动争议处理等权利。具体见第...",
  "cypher": "MATCH (l:Law)-[:HAS_ARTICLE]->(a:Article) WHERE l.name CONTAINS '劳动合同' AND a.content CONTAINS '劳动者' OPTIONAL MATCH (a)-[:GRANTS_RIGHT]->(s:LegalSubject) RETURN l.name AS law, a.name AS article_num, a.content AS content LIMIT 10",
  "context": ["..."]
}

Claude Code Skill 交互示例

安装 Skill 后,在 Claude Code 中直接输入:

试用期被辞退有赔偿吗?

Claude 将自动调用知识图谱服务,输出结构化回答:

> 本次查询涉及 **劳动法** 领域,共检索到 **5** 条相关法条。

| 序号 | 法律名称 | 条款 | 法条内容 |
|:----:|---------|------|---------|
| 1 | 《劳动合同法》 | 第21条 | 在试用期中,除劳动者有本法第三十九条和第四十条第一项、第二项规定的情形外,用人单位不得解除劳动合同... |
| 2 | 《劳动合同法》 | 第39条 | 劳动者有下列情形之一的,用人单位可以解除劳动合同:... |
| ... | ... | ... | ... |

**综合法律意见**:...

**操作建议**:...

> **免责声明**:本回答基于知识图谱检索和法律法规分析,仅供参考,不构成正式法律意见。

真实调用验证

本项目已完成在沐曦 GPU 算力环境(模力方舟 Gitee.AI 沐曦资源包)下的大模型真实调用验证,使用 DeepSeek-V4-Flash 模型(OpenAI 兼容端点 https://ai.gitee.com/v1)。

验证记录

验证项 结果
Gitee.AI 沐曦端点连通性 通过
/health 健康检查 200 OK
/query 自然语言查询 正常返回 answer / cypher / context
Text2Cypher 生成 正常
GraphRAG 答案生成 正常
Claude Code Skill 触发 正常

性能数据(实测,Gitee.AI 沐曦环境)

使用 LawRAG_linux/benchmarks/run_benchmark.sh 对 10 个不同法律问题进行端到端测试:

指标 数值
测试样本数 10
成功率 100%(10/10)
平均总响应时间 16.18 s
最小总响应时间 6.34 s
最大总响应时间 23.49 s
健康检查耗时 ~0.002 s

注:总响应时间为完整端到端耗时,包含 Text2Cypher 生成、Neo4j 图谱检索、LLM 答案生成三个阶段,实际数值与模型负载、网络状况相关。

测试问题示例

试用期被辞退有赔偿吗
离婚财产怎么分割
劳动合同违约怎么办
买到假货怎么维权
劳动者加班工资怎么算
公司法中股东权利有哪些
建设工程款拖欠怎么办
消费者权益保护法中退货规定
知识产权侵权怎么赔偿
工伤认定需要哪些条件

测试产物

完整调用日志与性能数据位于:

LawRAG_linux/benchmarks/results/
├── health_check.json
├── summary.csv
└── query_logs/
    ├── query_000.json
    ├── query_001.json
    └── ...

运行方式:

cd LawRAG_linux/benchmarks
bash run_benchmark.sh

开源与部署

  • 开源平台:GitLink
  • 许可证MIT License
  • 代码规范:Python 项目遵循 PEP 8;PowerShell/Bash 脚本附带注释与错误处理。

提交清单

  • 完整的 Skill/MCP 实现代码
  • 模型接口调用代码
  • 相关配置文件(.env.templateconfig.json 等)
  • README 文档(项目总览 + Linux 部署 + Windows 部署)
  • 法律知识提取源码(可复现数据构建过程)
  • 演示材料(见下方)

演示材料

  • Demo 演示视频:点击观看
  • 应用效果展示:见本 README「示例输入输出」章节
  • 真实调用验证:见本 README「真实调用验证」章节

开发记录

  • 功能开发记录:见本仓库 Commit 历史
  • 关键 Issue 与迭代:见 GitLink 仓库 Issues 页面
  • 主要功能开发节点:
    1. 法律知识图谱本体与 Schema 设计
    2. 基于 LLM 的法律文档知识抽取
    3. Neo4j 数据导入与索引优化
    4. Text2Cypher + GraphRAG 查询服务开发
    5. Claude Code Skill 封装(本地 + 远程双模式)
    6. Linux / Windows 一键部署脚本编写
    7. 沐曦算力环境真实调用验证
    8. 真实调用性能基准测试与 README 文档完善

免责声明

本项目基于公开法律法规文本与开源技术构建,仅供学习、研究和技术验证使用,不构成正式法律意见。具体法律问题请咨询执业律师。


联系我们

如有问题或建议,欢迎在 GitLink 仓库提交 Issue 或 PR。

关于

该项目基于agent skill,通过提取国内公开各法律条文信息,搭建了完善的法律知识图谱,提供了完整的自动部署脚本供用户在本地或服务器端一键部署自己的法律知识图谱数据库。通过skill设计的范式,可以在用户提出“什么情况算正当防卫”、“实习期间被开除有没有赔偿”、“非自愿加班但没有加班费合规吗”提供完整的相关法律条文信息,给用户提供具体法律参考。

78.6 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号