Skip to content

Repository files navigation

智能法律GraphRAG系统

本项目是一个基于知识图谱和大型语言模型的智能法律问答系统。它将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依赖

环境设置与运行指南

1. 先决条件

  • Docker 和 Docker Compose
  • Python 3.9+
  • OpenAI API 密钥

2. 本地设置

a. 启动Neo4j数据库

在项目根目录下运行Docker Compose来启动Neo4j服务。

docker-compose up -d

Neo4j 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

3. 数据处理 (执行Phase 1)

将您的CSV案件数据文件放入 ./input 目录下。然后,运行数据入库脚本:

python ingest.py

这个脚本会:

  1. 清空Neo4j数据库。
  2. 设置数据库约束和索引。
  3. 读取./input中的所有CSV文件。
  4. 调用LLM抽取知识图谱,并将图谱和文本块存入Neo4j。
  5. 在文本块上创建向量索引。

4. 启动问答应用 (执行Phase 2)

数据处理完成后,运行Streamlit应用:

streamlit run main.py

浏览器将自动打开 http://localhost:8501 并显示应用界面。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages