本项目是一个基于知识图谱和大型语言模型的智能法律问答系统。它将CSV格式的法律案件数据处理后存入Neo4j数据库,并利用其原生的图和向量检索能力,提供一个通过自然语言进行查询的Streamlit Web界面。
/
|-- input/
| |-- legal_data.csv # 示例输入数据
|-- .env # 环境变量 (需手动创建)
|-- docker-compose.yaml # Docker配置启动Neo4j
|-- ingest.py # Phase 1: 数据处理与入库脚本
|-- llmprompt.txt # LLM知识抽取提示
|-- main.py # Phase 2: Streamlit应用主程序
|-- PRODUCT_REQUIREMENTS.md # 产品需求文档
|-- TASK_PLAN.md # 任务计划文档
|-- requirements.txt # Python依赖
- Docker 和 Docker Compose
- Python 3.9+
- OpenAI API 密钥
a. 启动Neo4j数据库
在项目根目录下运行Docker Compose来启动Neo4j服务。
docker-compose up -dNeo4j Browser 将在 http://localhost:7474 可用。
b. 创建并配置环境变量
从.env.example(如果存在)或手动创建一个名为 .env 的文件,并填入您的配置信息:
# OpenAI API - 请替换为您的真实密钥
OPENAI_API_KEY="sk-..."
OPENAI_MODEL_NAME="gpt-4o"
# Neo4j - 凭证需与docker-compose.yaml中的设置匹配
NEO4J_URI="bolt://localhost:7687"
NEO4J_USERNAME="neo4j"
NEO4J_PASSWORD="your_password"
# Embedding Model
EMBEDDING_MODEL_NAME="paraphrase-multilingual-MiniLM-L12-v2"c. 安装Python依赖
pip install -r requirements.txt将您的CSV案件数据文件放入 ./input 目录下。然后,运行数据入库脚本:
python ingest.py这个脚本会:
- 清空Neo4j数据库。
- 设置数据库约束和索引。
- 读取
./input中的所有CSV文件。 - 调用LLM抽取知识图谱,并将图谱和文本块存入Neo4j。
- 在文本块上创建向量索引。
数据处理完成后,运行Streamlit应用:
streamlit run main.py浏览器将自动打开 http://localhost:8501 并显示应用界面。