Home
Softono

Law Ai

Open source Python
222
Stars
34
Forks
3
Issues
1
Watchers
2 years
Last Commit

 About Law Ai

💼法律AI助手,法律RAG,通过全部200+本法律手册📖、网页搜索内容💻结合LLM回答你的问题,并且给出相应的法规和网站,基于⚡️ langchain,Gradio,openai,chroma,duckduckgo-search

Platforms

Web Self-hosted

Languages

Python

Need Help Installing Law Ai?

We provide expert installation service for this software. Our team will install, configure, and secure Law Ai on your server. plans start at just $30.

Python version web ui Twitter follow

法律AI助手

法律AI助手,法律RAG,通过倒入全部200+本法律手册、网页搜索内容结合LLM回答你的问题,并且给出对应的法规和网站,基于langchain,openai,chroma,duckduckgo-search, Gradio

Demo

https://law.vmaig.com/

用户名: username
密码: password

原理

基于langchain链式调用,先按条切分法律条文,导入向量数据Chroma。 问答相关问题时,先通过相似度搜索向量数据,获取相关法律条文,然后通过DuckDuckGo互联网搜索相关网页,然后合并法律条文和网页内容,对问题进行回答。

初始化init

flowchart LR
    A[法律文件加载LawLoader] --> B[MarkdownHeaderTextSplitter]
    subgraph 文件切分LawSplitter
    B[MarkdownHeaderTextSplitter] --> C[RecursiveCharacterTextSplitter]
    end
    C --> E[Embedding]
    E --> F[向量数据库Chroma]

提问流程

flowchart LR
    A[提问] --> B[问题校验];
    B -- 否 --> C1[请提问法律相关问题]
    B -- 是 --> C2[法律Chain];
    subgraph Law Chain 
    C2 --> D[LLM]
    subgraph MultiQuery Retriever
    D --> E1[相似问题 01]
    D --> E2[相似问题 02]
    D --> E3[相似问题 03]
    E1 --> F[向量数据库Chroma]
    E2 --> F
    E3 --> F
    F --> H[法律docs]
    end
    C2 --> G[DuckDuckGo互联网搜索]
    subgraph Web Retriever
    G --> I[网页docs]
    end
    H --> K[合并combine]
    I --> K
    J[提问Prompt] --> K
    K --> L[LLM]
    L --> M[callback流输出]
    end

初始化运行环境

# 创建.env 文件
cp .env.example .env

# 修改.env 中的内容
vim .env

# 安装venv环境
python -m venv ~/.venv/law
. ~/.venv/law
pip install -r requirements.txt

初始化向量数据库

# 加载和切分法律手册,初始化向量数据库
python manager.py --init

运行web ui

python manager.py --web

默认用户名/密码: username / password

运行对话

python manager.py --shell

配置修改

如果你想修改回答中的法律条数和网页条数,可以修改config.py

  • 法律条数: LAW_VS_SEARCH_K
  • 网页条数: WEB_VS_SEARCH_K
  • web ui地址: WEB_HOST
  • web ui端口: WEB_PORT
  • web ui登录用户: WEB_USERNAME
  • web ui登录密码: WEB_PASSWORD