https://github.com/billvsme/law_ai
💼法律AI助手,法律RAG,通过全部200+本法律手册📖、网页搜索内容💻结合LLM回答你的问题,并且给出相应的法规和网站,基于⚡️ langchain,Gradio,openai,chroma,duckduckgo-search
https://github.com/billvsme/law_ai
ai chroma gradio langchain openai python
Last synced: 4 months ago
JSON representation
💼法律AI助手,法律RAG,通过全部200+本法律手册📖、网页搜索内容💻结合LLM回答你的问题,并且给出相应的法规和网站,基于⚡️ langchain,Gradio,openai,chroma,duckduckgo-search
- Host: GitHub
- URL: https://github.com/billvsme/law_ai
- Owner: billvsme
- Created: 2023-10-19T14:55:57.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-01-22T06:29:48.000Z (over 1 year ago)
- Last Synced: 2024-09-01T20:04:07.452Z (8 months ago)
- Topics: ai, chroma, gradio, langchain, openai, python
- Language: Python
- Homepage: https://law.vmaig.com/
- Size: 2.01 MB
- Stars: 82
- Watchers: 3
- Forks: 13
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

[](https://www.gradio.app/)
[](https://twitter.com/billvsme)法律AI助手
=========法律AI助手,法律RAG,通过倒入全部200+本法律手册、网页搜索内容结合LLM回答你的问题,并且给出对应的法规和网站,基于langchain,openai,chroma,duckduckgo-search, Gradio
## Demo
[https://law.vmaig.com/](https://law.vmaig.com/)**用户名**: username
**密码**: password## 原理
基于langchain链式调用,先按条切分法律条文,导入向量数据Chroma。
问答相关问题时,先通过相似度搜索向量数据,获取相关法律条文,然后通过DuckDuckGo互联网搜索相关网页,然后合并法律条文和网页内容,对问题进行回答。**初始化init**
```mermaid
flowchart LR
A[法律文件加载LawLoader] --> B[MarkdownHeaderTextSplitter]
subgraph 文件切分LawSplitter
B[MarkdownHeaderTextSplitter] --> C[RecursiveCharacterTextSplitter]
end
C --> E[Embedding]
E --> F[向量数据库Chroma]
```**提问流程**
```mermaid
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