diff --git a/.gitignore b/.gitignore index 6b3621a..0edd950 100644 --- a/.gitignore +++ b/.gitignore @@ -161,4 +161,5 @@ cython_debug/ #.idea/ chroma_db/ -chat_history/ \ No newline at end of file +chat_history/ +.idea/ \ No newline at end of file diff --git a/README.md b/README.md index d4456fa..6d7f3c7 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,113 @@ -# RAG_proj +# RAG智能客服系统 -RAG小项目 \ No newline at end of file +基于检索增强生成(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` 目录