RAGSingleChat 是一个基于检索增强生成(Retrieval Augmented Generation, RAG)技术的聊天系统。该系统结合了文档检索和大语言模型,能够根据用户提供的问题,从本地文档中检索相关信息并生成回答。系统包含前端界面和后端逻辑,支持流式响应,提升用户交互体验。
RAGSingleChat/
├── app.py # 命令行运行的主程序
├── chatbot/
│ ├── __init__.py
│ ├── rag_chatbot.py # RAG 聊天机器人核心逻辑
├── config.json # 配置文件,包含模型和嵌入的配置信息
├── data/ # 存放用于检索的文档数据
│ ├── 信贷业务手册.md
│ └── ...
├── frontend/
│ ├── app.py # 前端 Flask 应用程序
│ └── templates/
│ └── chat.html # 聊天界面 HTML 文件
├── utils/
│ ├── data_loader.py # 文档加载工具
│ ├── embedding.py # 嵌入生成工具
│ └── text_splitter.py # 文本分割工具
└── vectorstore/ # 存储向量数据库
├── index.faiss
└── index.pkl
确保你的系统已经安装了 Python 3.10+ 版本。建议使用虚拟环境来管理项目依赖,以避免与其他项目的依赖冲突。
- 克隆项目 如果你还没有将项目克隆到本地,可以使用以下命令:
git clone <项目仓库地址>
cd RAGSingleChat- 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows- 安装依赖
pip install -r requirements.txt- 配置模型和嵌入
在
config.json文件中配置你的模型和嵌入信息。确保model_name和embedding_model字段正确设置。
{
"llm": {
"default": "your_default_llm",
"models": {
"your_default_llm": {
"apikey": "your_api_key",
"model": "your_model_name",
"url": "your_api_url",
"model_kwargs": {
"temperature": 0.7,
"max_length": 512
}
}
}
},
"embedding": {
"default": "your_default_embedding",
"models": {
"your_default_embedding": {
"model": "your_embedding_model_name"
}
}
}
}- 加载文档
将需要检索的知识库源文档放入
data/目录下。 第一次运行,系统会自动加载文档并生成向量数据库。后续直接使用即可,不再重复加载。 一定要先放入data目录下,再开始聊天,否则直接聊天会报错。找不到知识库。
- 【测试用】启动后端服务,在命令行中进行测试 在激活虚拟环境后,使用以下命令启动命令行版本的聊天系统:
python app.py【正式用】在激活虚拟环境后,使用以下命令启动命令行版本的聊天系统:
python app.py- 【正式用】启动lask服务 在激活虚拟环境后,使用以下命令启动 Flask 前端:
python frontend/app.py- 【正式用】通过浏览器访问并使用
打开浏览器,访问
URL_ADDRESS打开浏览器,访问http://localhost:5000` 即可访问聊天界面。