Replace repository content with deploy_local package
本说明介绍如何在 Windows 本地计算机上一键部署 Neo4j 法律知识图谱服务。部署完成后,直接通过 localhost 访问查询接口。
localhost
如果自动安装脚本执行失败,可参考 MANUAL-INSTALL.md 进行手动安装。
MANUAL-INSTALL.md
├── app/ # FastAPI 查询服务 │ ├── main.py # FastAPI 服务主文件(GraphRAG + Text2Cypher) │ ├── requirements.txt # Python 依赖 │ ├── .env.template # 环境变量模板 │ ├── .env # 实际环境变量(安装后生成) │ ├── start.ps1 # 仅启动 API(安装后生成) │ ├── start.bat # 仅启动 API(安装后生成) │ └── venv/ # Python 虚拟环境(安装后生成) ├── data/ # 法律知识图谱数据 │ ├── 法律/ # 法律领域 CSV 数据 │ ├── 宪法/ # 宪法领域 CSV 数据 │ ├── 行政法规/ # 行政法规 CSV 数据 │ ├── 司法解释/ # 司法解释 CSV 数据 │ ├── 地方法规/ # 地方法规 CSV 数据 │ ├── 监察法规/ # 监察法规 CSV 数据 │ └── import_*.cypher # Cypher 导入脚本 └── scripts/ # 自动化部署脚本 ├── install.ps1 # Windows 本地一键部署脚本(PowerShell) ├── install.bat # CMD 包装器,可直接双击运行 ├── import_with_progress.py # Cypher 导入进度条助手(被 install.ps1 调用) ├── start-all.ps1 # 启动 Neo4j + API(安装后生成) └── start-all.bat # 启动 Neo4j + API(安装后生成)
cd scripts
直接双击 scripts\install.bat,无需打开终端。
scripts\install.bat
scripts\install.bat -LlmProvider deepseek -DeepSeekApiKey "sk-..."
需要交互式/高级安装请直接使用 .\setup.ps1 或 .\scripts\install.ps1。
.\setup.ps1
.\scripts\install.ps1
.\install.ps1
如果提示执行策略限制,可先运行: Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
如果提示执行策略限制,可先运行:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
如果直接运行 PowerShell 脚本(.\setup.ps1 或 .\scripts\install.ps1),脚本会先检查 Java、Python、数据目录等环境条件,并在解析/安装 Neo4j 之后弹出需要用户输入的配置信息。输入内容会在终端中显示,方便核对:
配置完成后会显示摘要,按回车继续部署。部署结束后会在项目根目录生成 deployment-info.txt,记录 Neo4j 密码等部署信息。
deployment-info.txt
脚本共 10 个步骤,数据导入阶段会显示语句级进度条,例如:
[8/10] Importing data into Neo4j Running import scripts with progress bar ... Importing 1250 statement(s)... [########----------------------------] 25% (313/1250)
部署完成后会输出访问地址,并在项目根目录生成 deployment-info.txt:
Deployment complete Neo4j is running at: bolt://localhost:7687 Neo4j Browser: http://localhost:7474 FastAPI Health: http://localhost:8000/health FastAPI Query: http://localhost:8000/query Deployment info: D:\...\deployment-info.txt
deployment-info.txt 中记录了 Neo4j 密码、URI、LLM 配置等部署信息,请妥善保管。
scripts\start-all.bat
等待几秒后分别测试以下接口。
CMD 或 PowerShell 中执行:
curl http://localhost:8000/health
若系统未安装 curl,可在 PowerShell 中使用:
Invoke-WebRequest -Uri http://localhost:8000/health -UseBasicParsing
正常应返回 JSON,例如:
{"status":"ok"}
curl -X POST http://localhost:8000/query -H "Content-Type: application/json" -d "{\"query_text\":\"查询劳动合同法中关于劳动者权利的规定\"}"
PowerShell 等价命令:
$body = @{ query_text = "查询劳动合同法中关于劳动者权利的规定" } | ConvertTo-Json Invoke-WebRequest -Uri http://localhost:8000/query -Method POST -ContentType "application/json" -Body $body -UseBasicParsing
返回格式:
{ "answer": "AI 生成的自然语言回答...", "cypher": "MATCH (l:Law)-[:HAS_ARTICLE]->(a:Article) ...", "context": ["图数据库原始记录..."] }
%LOCALAPPDATA%\law-kg\neo4j\bin\cypher-shell.bat -u neo4j -p your-password -f query.cypher
其中 query.cypher 为包含 Cypher 查询语句的文件,例如:
query.cypher
MATCH (n) RETURN count(n) AS node_count;
注意:Neo4j 2025.x 的 cypher-shell 不再支持把 Cypher 语句作为位置参数直接传入,请使用 -f 指定查询文件。
cypher-shell
-f
如果自动下载被网络限制(如出现 CloudFront 403 错误),请手动下载 Neo4j:
下载对应版本的 Windows zip 包:
https://dist.neo4j.org/neo4j-community-2025.12.1-windows.zip
将下载的 zip 放到项目根目录或 %LOCALAPPDATA%\law-kg\ 目录下。
%LOCALAPPDATA%\law-kg\
重新运行 install.bat,脚本会自动检测并使用本地 zip 包。
install.bat
或者,如果你已经解压好了 Neo4j,可以直接指定路径:
.\install.ps1 -Neo4jHome "C:\path\to\neo4j-community-2025.12.1"
如需避免交互式输入,可在运行脚本前设置环境变量:
set NEO4J_PASSWORD=your-password set LLM_PROVIDER=deepseek set DEEPSEEK_API_KEY=your-api-key install.bat
或在 PowerShell 中:
$env:NEO4J_PASSWORD = "your-password" $env:LLM_PROVIDER = "deepseek" $env:DEEPSEEK_API_KEY = "your-api-key" .\install.ps1
NEO4J_PASSWORD
NEO4J_VERSION
2025.12.1
NEO4J_HOME
NEO4J_URI
bolt://localhost:7687
LLM_PROVIDER
deepseek
LLM_TEMPERATURE
0
DEEPSEEK_API_KEY
DEEPSEEK_BASE_URL
DEEPSEEK_MODEL
https://api.deepseek.com/v1
deepseek-chat
OPENAI_API_KEY
OPENAI_BASE_URL
OPENAI_MODEL
https://api.openai.com/v1
gpt-4
KIMI_API_KEY
KIMI_BASE_URL
KIMI_MODEL
https://api.moonshot.cn/v1
moonshot-v1-8k
DASHSCOPE_API_KEY
DASHSCOPE_BASE_URL
DASHSCOPE_MODEL
https://dashscope.aliyuncs.com/compatible-mode/v1
qwen-turbo
VLLM_API_KEY
VLLM_BASE_URL
VLLM_MODEL
not-needed
http://localhost:8000/v1
llama3-8b-instruct
OLLAMA_API_KEY
OLLAMA_BASE_URL
OLLAMA_MODEL
http://localhost:11434/v1
llama3.1
app\start.bat
java.exe
<neo4j-home>\bin\neo4j.bat stop
curl -X POST http://localhost:8000/query ^ -H "Content-Type: application/json" ^ -d "{\"query_text\": \"查询劳动合同法中关于劳动者权利的规定\"}"
如果你已经在本地安装了 Neo4j,可通过 -Neo4jHome 参数指定路径,跳过下载:
-Neo4jHome
.\install.ps1 -Neo4jHome "C:\neo4j"
或设置环境变量:
$env:NEO4J_HOME = "C:\neo4j" .\install.ps1
如果该 Neo4j 已经初始化过密码,请确保输入的 NEO4J_PASSWORD 与现有密码一致,否则数据导入会失败。
脚本默认会检测已有的 Neo4j 安装并询问是否清除后重新安装。如需静默强制重新安装,使用:
.\install.ps1 -ForceReinstall
这会停止相关 Neo4j 进程并删除旧目录,然后下载安装全新的 Neo4j。
# 跳过 Neo4j 下载(假设已手动安装) .\install.ps1 -SkipNeo4jDownload # 跳过数据导入(数据已导入过) .\install.ps1 -SkipDataImport # 强制重新安装 Neo4j .\install.ps1 -ForceReinstall
%LOCALAPPDATA%\law-kg\neo4j
<neo4j-home>\logs\neo4j.log
<neo4j-home>\import\
app\.env
app\venv
本地版没有注册系统服务。可直接运行一键卸载脚本:
scripts\uninstall.bat
静默卸载(不弹确认):
scripts\uninstall.bat -Force
该脚本会停止 Neo4j + FastAPI 服务,并删除以下安装产物:
config.json
local_service
如需保留自动安装的 Java / Python,可加上 -KeepJava / -KeepPython 参数。
-KeepJava
-KeepPython
本知识图谱包含以下领域的法律数据:
总计约 145,792 节点 / 89,618 关系,涵盖 13 种节点类型和 36 种关系类型。
该项目基于agent skill,通过提取国内公开各法律条文信息,搭建了完善的法律知识图谱,提供了完整的自动部署脚本供用户在本地或服务器端一键部署自己的法律知识图谱数据库。通过skill设计的范式,可以在用户提出“什么情况算正当防卫”、“实习期间被开除有没有赔偿”、“非自愿加班但没有加班费合规吗”提供完整的相关法律条文信息,给用户提供具体法律参考。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
法律知识图谱 - Windows 本地部署指南
本说明介绍如何在 Windows 本地计算机上一键部署 Neo4j 法律知识图谱服务。部署完成后,直接通过
localhost访问查询接口。如果自动安装脚本执行失败,可参考
MANUAL-INSTALL.md进行手动安装。目录结构
环境要求
快速开始
1. 进入脚本目录
2. 运行部署脚本
方式 A:CMD 一键安装(推荐,双击可用)
直接双击
scripts\install.bat,无需打开终端。方式 B:PowerShell
3. 交互式安装时按提示输入配置
如果直接运行 PowerShell 脚本(
.\setup.ps1或.\scripts\install.ps1),脚本会先检查 Java、Python、数据目录等环境条件,并在解析/安装 Neo4j 之后弹出需要用户输入的配置信息。输入内容会在终端中显示,方便核对:配置完成后会显示摘要,按回车继续部署。部署结束后会在项目根目录生成
deployment-info.txt,记录 Neo4j 密码等部署信息。4. 完成部署
脚本共 10 个步骤,数据导入阶段会显示语句级进度条,例如:
部署完成后会输出访问地址,并在项目根目录生成
deployment-info.txt:deployment-info.txt中记录了 Neo4j 密码、URI、LLM 配置等部署信息,请妥善保管。安装后测试
1. 启动服务
等待几秒后分别测试以下接口。
2. 健康检查
CMD 或 PowerShell 中执行:
若系统未安装 curl,可在 PowerShell 中使用:
正常应返回 JSON,例如:
3. 自然语言查询测试
PowerShell 等价命令:
返回格式:
4. 直接查询 Neo4j(可选)
其中
query.cypher为包含 Cypher 查询语句的文件,例如:手动下载 Neo4j(网络受限时)
如果自动下载被网络限制(如出现 CloudFront 403 错误),请手动下载 Neo4j:
下载对应版本的 Windows zip 包:
将下载的 zip 放到项目根目录或
%LOCALAPPDATA%\law-kg\目录下。重新运行
install.bat,脚本会自动检测并使用本地 zip 包。或者,如果你已经解压好了 Neo4j,可以直接指定路径:
通过环境变量自动配置
如需避免交互式输入,可在运行脚本前设置环境变量:
或在 PowerShell 中:
可用环境变量
NEO4J_PASSWORDNEO4J_VERSION2025.12.1NEO4J_HOMENEO4J_URIbolt://localhost:7687LLM_PROVIDERdeepseekLLM_TEMPERATURE0DEEPSEEK_API_KEY/DEEPSEEK_BASE_URL/DEEPSEEK_MODELhttps://api.deepseek.com/v1/deepseek-chatOPENAI_API_KEY/OPENAI_BASE_URL/OPENAI_MODELhttps://api.openai.com/v1/gpt-4KIMI_API_KEY/KIMI_BASE_URL/KIMI_MODELhttps://api.moonshot.cn/v1/moonshot-v1-8kDASHSCOPE_API_KEY/DASHSCOPE_BASE_URL/DASHSCOPE_MODELhttps://dashscope.aliyuncs.com/compatible-mode/v1/qwen-turboVLLM_API_KEY/VLLM_BASE_URL/VLLM_MODELnot-needed/http://localhost:8000/v1/llama3-8b-instructOLLAMA_API_KEY/OLLAMA_BASE_URL/OLLAMA_MODELnot-needed/http://localhost:11434/v1/llama3.1日常使用
同时启动 Neo4j + API
仅启动 API(Neo4j 已运行)
停止服务
java.exe进程,或运行<neo4j-home>\bin\neo4j.bat stopapp\start.bat运行的命令行窗口API 调用示例
健康检查
自然语言查询
返回格式:
已有 Neo4j 安装
如果你已经在本地安装了 Neo4j,可通过
-Neo4jHome参数指定路径,跳过下载:或设置环境变量:
重新安装 / 清理旧 Neo4j
脚本默认会检测已有的 Neo4j 安装并询问是否清除后重新安装。如需静默强制重新安装,使用:
这会停止相关 Neo4j 进程并删除旧目录,然后下载安装全新的 Neo4j。
仅执行部分步骤
故障排查
%LOCALAPPDATA%\law-kg\neo4j,然后使用-Neo4jHome参数java.exe后重试<neo4j-home>\logs\neo4j.log<neo4j-home>\import\;查看导入进度条停止位置及错误输出app\.env中的密码和 URI 是否正确;确认app\venv已创建卸载
本地版没有注册系统服务。可直接运行一键卸载脚本:
静默卸载(不弹确认):
该脚本会停止 Neo4j + FastAPI 服务,并删除以下安装产物:
%LOCALAPPDATA%\law-kg\neo4j(自动下载的 Neo4j)app\venv(Python 虚拟环境)app\.env、deployment-info.txtconfig.json中的local_service字段如需保留自动安装的 Java / Python,可加上
-KeepJava/-KeepPython参数。本知识图谱包含以下领域的法律数据:
总计约 145,792 节点 / 89,618 关系,涵盖 13 种节点类型和 36 种关系类型。