RAG_proj/README.md

114 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. 安装依赖
```bash
pip install langchain langchain-community langchain-chroma streamlit dashscope
```
### 2. 配置API密钥
设置DashScope API密钥通义千问
```bash
export DASHSCOPE_API_KEY="your-api-key"
```
### 3. 启动服务
**启动知识库上传界面:**
```bash
streamlit run app_file_uploader.py
```
**启动智能问答界面:**
```bash
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](LICENSE) 文件。
## 注意事项
- 需要有效的 DashScope API 密钥才能正常使用
- 知识库文件目前仅支持 TXT 格式
- 向量数据库会自动持久化到 `./chroma_db` 目录
- 对话历史存储在 `./chat_history` 目录