RAG小项目
Go to file
czzhangheng1314 2d085c54a9 del .idea 2026-02-23 18:57:05 +08:00
data RAG Proj 2026-02-23 18:35:26 +08:00
.gitignore update README 2026-02-23 18:38:13 +08:00
LICENSE Initial commit 2026-02-23 18:28:16 +08:00
README.md update README 2026-02-23 18:38:13 +08:00
app_file_uploader.py RAG Proj 2026-02-23 18:35:26 +08:00
app_qa.py RAG Proj 2026-02-23 18:35:26 +08:00
config_data.py RAG Proj 2026-02-23 18:35:26 +08:00
file_hisroty_store.py RAG Proj 2026-02-23 18:35:26 +08:00
knowledge_base.py RAG Proj 2026-02-23 18:35:26 +08:00
md5.text RAG Proj 2026-02-23 18:35:26 +08:00
rag.py RAG Proj 2026-02-23 18:35:26 +08:00
vector_stores.py RAG Proj 2026-02-23 18:35:26 +08:00

README.md

RAG智能客服系统

基于检索增强生成RAG技术的智能客服系统支持知识库管理和对话问答功能。

功能特性

  • 智能问答:基于通义千问大模型,结合知识库进行精准回答
  • 历史记忆:支持多轮对话,保持上下文连贯性
  • 知识库管理支持上传TXT文件构建向量知识库
  • 去重机制基于MD5自动检测重复内容避免重复入库
  • 向量检索使用Chroma向量数据库存储和检索文档

技术栈

  • 大语言模型:通义千问 (Qwen3-max)
  • 嵌入模型DashScope text-embedding-v4
  • 向量数据库Chroma
  • Web框架Streamlit
  • 核心框架LangChain

项目结构

RAG_proj/
├── app_qa.py              # 智能问答Web界面
├── app_file_uploader.py   # 知识库上传Web界面
├── rag.py                 # RAG服务核心类
├── knowledge_base.py      # 知识库管理服务
├── vector_stores.py       # 向量存储服务
├── file_hisroty_store.py  # 对话历史存储
├── config_data.py         # 配置文件
├── data/                  # 示例知识库文档
│   ├── 尺码推荐.txt
│   ├── 洗涤养护.txt
│   └── 颜色选择.txt
├── chroma_db/             # 向量数据库目录
└── chat_history/          # 对话历史存储目录

快速开始

1. 安装依赖

pip install langchain langchain-community langchain-chroma streamlit dashscope

2. 配置API密钥

设置DashScope API密钥通义千问

export DASHSCOPE_API_KEY="your-api-key"

3. 启动服务

启动知识库上传界面:

streamlit run app_file_uploader.py

启动智能问答界面:

streamlit run app_qa.py

使用说明

知识库管理

  1. 打开知识库上传界面 (app_file_uploader.py)
  2. 上传TXT格式的知识文档
  3. 系统自动进行文本分割、向量化和存储
  4. 重复内容会自动跳过

智能问答

  1. 打开智能问答界面 (app_qa.py)
  2. 在对话框中输入问题
  3. 系统会从知识库中检索相关内容并结合大模型生成回答
  4. 支持多轮对话,保持上下文记忆

配置说明

config_data.py 中可以修改以下配置:

配置项 默认值 说明
embedding_model_name text-embedding-v4 嵌入模型名称
chat_model_name qwen3-max 对话模型名称
chunk_size 1000 文本分块大小
chunk_overlap 100 文本分块重叠大小
similarity_threshold 1 向量检索返回数量

示例知识库

项目内置了服装领域的示例知识库:

  • 尺码推荐.txt:身高体重与服装尺码对照表
  • 洗涤养护.txt:不同材质服装的洗涤和养护指南
  • 颜色选择.txt:肤色、场合、季节与服装颜色搭配建议

许可证

本项目采用 MIT 许可证,详见 LICENSE 文件。

注意事项

  • 需要有效的 DashScope API 密钥才能正常使用
  • 知识库文件目前仅支持 TXT 格式
  • 向量数据库会自动持久化到 ./chroma_db 目录
  • 对话历史存储在 ./chat_history 目录