|
|
||
|---|---|---|
| data | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| app_file_uploader.py | ||
| app_qa.py | ||
| config_data.py | ||
| file_hisroty_store.py | ||
| knowledge_base.py | ||
| md5.text | ||
| rag.py | ||
| vector_stores.py | ||
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
使用说明
知识库管理
- 打开知识库上传界面 (
app_file_uploader.py) - 上传TXT格式的知识文档
- 系统自动进行文本分割、向量化和存储
- 重复内容会自动跳过
智能问答
- 打开智能问答界面 (
app_qa.py) - 在对话框中输入问题
- 系统会从知识库中检索相关内容并结合大模型生成回答
- 支持多轮对话,保持上下文记忆
配置说明
在 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目录