# RAG案例 **Repository Path**: maxueyou/rag-case ## Basic Information - **Project Name**: RAG案例 - **Description**: rag案例 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-03-31 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 服装品类RAG项目案例 ## 项目概述 本项目基于Retrieval-Augmented Generation (RAG) 技术构建了一个智能问答系统,专门针对服装品类提供尺码推荐、洗涤养护建议以及颜色搭配指导等功能。通过整合自然语言处理和向量检索技术,系统能够高效地从知识库中提取相关信息并生成专业、准确的回答。 ## 功能特性 - **智能尺码推荐**:根据用户提供的身高、体重等信息,结合预设的尺码标准,推荐合适的服装尺码。 - **洗涤养护指南**:根据不同材质(如纯棉、羊毛、真丝等)提供详细的清洗与保养建议。 - **颜色搭配建议**:依据肤色、场合及季节等因素,为用户提供个性化的色彩搭配方案。 - **对话历史管理**:记录用户的交互历史,支持多轮对话,增强用户体验。 - **文件上传功能**:允许管理员上传新的知识文档至知识库,持续丰富内容资源。 ## 技术架构 ### 核心组件 | 组件名称 | 描述 | |--------------------|--------------------------------------------------------------| | [rag.py] | 主服务逻辑,负责构建完整的RAG执行链 | | [vector_stores.py]| 管理向量数据库的操作,包括创建检索器 | | [knowledge_base.py]| 提供知识库维护功能,如文本分块、向量化存储 | | [file_history_store.py]| 实现聊天记录的持久化存储 | | [config_data.py] | 配置参数集中管理 | ### 第三方依赖 - **LangChain**: 构建语言模型应用框架 - **Streamlit**: 快速搭建Web界面 - **ChromaDB**: 开源向量数据库,用于相似性搜索 - **DashScope Embeddings**: 提供高质量文本嵌入模型 - **RecursiveCharacterTextSplitter**: 文本分割工具 ## 安装与部署 ### 环境准备 确保你的开发环境中已安装Python 3.8及以上版本,并设置好虚拟环境: ```bash # 创建并激活虚拟环境 python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate # 安装所需依赖包 pip install langchain langchain-community streamlit chromadb dashscope ``` ### 初始化项目 1. 下载或克隆整个项目到本地; 2. 在项目根目录下运行初始化脚本(如有必要),完成配置文件设定; 3. 启动Streamlit应用程序: ```bash streamlit run app_qa.py ``` 访问 http://localhost:8501 查看效果。 ## 使用说明 ### 文件结构 ``` . ├── data/ │ ├── 尺码推荐.txt # 尺码对照表 │ ├── 洗涤养护.txt # 材质清洗指南 │ └── 颜色选择.txt # 色彩搭配原则 ├── chat_history/ # 用户对话记录存储位置 ├── chroma_db/ # ChromaDB本地持久化目录 ├── md5.txt # 已处理文件的MD5哈希值记录 ├── *.py # 各个模块源代码文件 └── README.md # 本文档 ``` ### 关键API介绍 #### 1. 尺码推荐服务 (`app_qa.py`) 通过调用 `/qa` 接口发起提问,例如:“我身高170cm,体重65kg,请问我适合穿什么尺码?”系统会返回对应的结果。 #### 2. 文件上传接口 (`app_file_upload.py`) 管理员可通过此页面上传新资料到知识库中,扩展系统的知识覆盖面。 ### 示例输出 当用户询问关于春天穿衣颜色的选择时,系统可能会给出如下回答: > 春天适合穿着明亮、柔和或充满生机的颜色,以呼应季节的清新与活力。以下是一些推荐色系: > > - **柔和粉彩色**:如浅粉、薄荷绿、淡蓝、奶油黄,给人温柔清新的感觉。 > - **自然大地色**:如卡其、米白、浅棕,百搭又富有春日氛围。 > ... > > 根据个人肤色和风格选择主色调,再辅以1–2种点缀色,能轻松打造春日穿搭。 ## 注意事项 - 所有敏感操作(如删除知识条目)应谨慎执行; - 定期备份重要数据(特别是 `chroma_db/` 和 `chat_history/` 目录下的内容)以防意外丢失; - 如遇性能瓶颈,考虑优化文本切片策略或升级硬件资源。 --- 希望这份README对你有所帮助!如果有任何疑问或需要进一步的技术支持,请随时联系项目维护者。 ## 许可证 本项目采用 MIT 许可证。