Article-RAG是一个基于文档篇章结构的RAG系统。关于系统的技术说明请查看文档。
|-- conf 配置文件
|-- data 本地数据文件
|-- docker
| |-- elastic_search es docker启动
| |-- milvus milvus docker启动
| |-- vllm vllm docker启动
|-- docs 文档
|-- script
| |-- chat_client
| |-- mini_dm mini对话管理模块
| |-- streamlit_bot streamlit bot
| |-- insert_to_kb.py 插入数据到知识库
| |-- pdf2md.py pdf转md
|-- server 主服务
|-- src
| |-- connector 数据库连接
| |-- local 本地数据处理
| |-- models 模型请求客户端
| |-- pipeline 系统pipeline
| |-- query_analyze query分析
| |-- reranker 重排
| |-- retrieval 召回
| |-- utils 工具
- 本地部署: 基于docker部署检索服务,包括Elasticsearch,Milvus,同时提供了vllm模型服务
- 一键转换数据: 支持pdf数据一键转换成md数据
- 知识一键入库: 使用自动化脚本一键将数据导入知识库
- 对话: 支持多轮对话,提供简单的对话UI
Python 3.11 或更高版本 uv 包管理器 (推荐)
-
克隆项目到本地:
git clone <repository-url> cd article-rag
-
安装依赖库:
uv sync
- 填写必要配置信息,复制
.env.template文件为.env,并填写对应的参数。
- 启动Elasticsearch:
docker-compose -f docker/elastic_search/docker-compose.yml up -d - 启动Milvus:
docker-compose -f docker/milvus/docker-compose.yml up -d - 启动vllm(可选):
docker-compose -f docker/vllm/docker-compose.yml up -d
- 将数据放入
data目录下,并使用script/pdf2md.py将pdf数据转换成md数据。 - 若用到mineru,请安装
magic_pdf
- 使用
script/insert_to_kb.py将数据导入知识库。
- 启动服务:
cd server && uv run main_server.py
- 启动对话测试:
cd script/streamlit_bot && streamlit run bot.py --server.port 8501 - 访问: http://localhost:8501即可开始对话