AI知识分享AI知识分享
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 数学基础
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Agentic AI
  • Transformer
  • PyTorch
  • HuggingFace
  • LangChain
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • Cursor
  • 概念
  • 意图识别
  • 工具
  • 学习路线
  • PyTorch 资料
  • 公式学习
  • PyTorch 基础练习
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 数学基础
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Agentic AI
  • Transformer
  • PyTorch
  • HuggingFace
  • LangChain
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • Cursor
  • 概念
  • 意图识别
  • 工具
  • 学习路线
  • PyTorch 资料
  • 公式学习
  • PyTorch 基础练习
  • Transformer

    • Transformer - 概述
    • Transformer - Encoding and Decoding Context with Attention
    • Transformer - Tokenizers
    • Transformer - 架构
    • Transformer - Block
    • Transformer - 自注意力
    • Transformer - MoE
    • Transformer - Transformer
  • PyTorch

    • PyTorch - Dataset
    • PyTorch - TensorBoard
    • PyTorch - transforms
    • PyTorch - DataLoader
    • PyTorch - nn
    • PyTorch - Model
    • PyTorch - train
    • PyTorch - Optimizer
    • PyTorch - Practice
    • PyTorch - 使用笔记
    • PyTorch - Deep Learning 总览
    • PyTorch - Workflow
    • PyTorch - Classification
    • PyTorch - 课程外链索引
    • PyTorch - Python 笔记
  • HuggingFace

    • HuggingFace - Transformers
    • HuggingFace - Pipeline
    • HuggingFace - Tokenizer
    • HuggingFace - Model
    • HuggingFace - Datasets
    • HuggingFace - Evaluate
    • HuggingFace - Trainer
    • HuggingFace - Gradio / 杂记
  • LangChain

    • LangChain - Model
    • LangChain - Chain
    • LangChain - Memory
    • LangChain - Loader
    • LangChain - Vector Stores
    • LangChain - RAG基础
    • LangChain - RAG

LangChain - RAG

实战项目:服装商品智能客服(RAG 与智能体开发)

项目简介

  • 项目领域:AI 大模型应用
  • 核心方向:RAG(检索、增强和生成)与智能体开发

RAG 回顾

RAG(检索、增强和生成)核心分为两条处理线,聚焦提升模型回答的准确性与时效性:

1. 离线处理

  • 持续向私有知识库(向量存储)添加知识文档,包含:

    • 超出现有模型训练时间的 “未来知识文档”
    • 各类私有领域知识文档
  • 核心价值:为模型提供精准参考资料,有效规避 “模型幻觉”(一本正经的胡说八道)问题

2. 在线处理

  • 用户提问后,系统先基于私有知识库检索相关参考资料
  • 同步组装新提示词,提交大模型生成最终答案

项目需求和核心思路

核心目标

  • 以 “某东商品衣服” 为实例,基于衣服核心属性(尺码、颜色、洗涤养护等)构建本地知识库
  • 支持用户自由更新本地知识,所有问题答案均严格基于本地知识库生成
  • 实现服装商品智能客服功能,精准解答用户尺码推荐、颜色选择、洗涤养护等相关咨询

处理流程

(一)离线流程

  1. 本地知识文件准备(如尺码推荐.txt、洗涤养护.txt、颜色选择.txt)
  2. 文件加载和读取
  3. 文本切分处理(适配向量存储需求)
  4. 切分后文本存入向量数据库(Chroma)

(二)在线流程

  1. 用户 Query(提问)接收
  2. Query 向量化转换
  3. 向量匹配(基于向量数据库检索相关知识)
  4. Prompt 工程(结合检索结果构建优化提示词)
  5. 提交 LLM(大语言模型)生成答案并反馈给用户

项目核心文件说明

文件名称功能描述
app_file_upload.py知识库更新主程序(基于 Streamlit 开发),支持文件上传更新
app_qa.py项目主程序(基于 Streamlit 开发),启动对话 WEB 页面
config_data.py项目全局配置文件
file_history_store.py长期会话记忆存储服务
knowledge_base.py知识库更新核心服务,含文件处理、向量存储交互等
rag.pyRAG 核心服务,整合检索、Prompt 构建、LLM 调用逻辑
vector_stores.py向量存储服务,负责与 Chroma 向量库交互
辅助资源chat history(会话历史存储)、chroma_db(向量数据库目录)、data(知识文件存储目录)、md5.text(MD5 校验文件)

关键技术实现

核心函数 / 类

  • check_md5():文件 MD5 校验函数,确保文件完整性
  • save_md5():MD5 值存储函数,记录已上传文件标识
  • get_string_md5(str):字符串 MD5 值计算函数
  • st.file_uploader():Streamlit 框架文件上传组件,支持用户上传知识文件
  • upload_by_str(self, data, filename):KnowledgeBaseService 类方法,支持字符串形式数据上传知识库
  • Class KnowledgeBaseService:知识库服务核心类,包含 Chroma 向量库实例(self.chroma)、文本切分器(self.spliter)等关键属性
  • st.session_state:Streamlit 会话状态存储对象,维护会话上下文
  • uploader_file.get_value():获取上传文件的原始数据

技术框架

  • WEB 开发框架:Streamlit(快速构建交互式 WEB 应用)
  • 向量数据库:Chroma(轻量级向量存储,适配项目需求)
  • 核心技术:RAG 检索增强生成、文本向量化、Prompt 工程、LLM 调用

项目资源清单

知识文件

  • 尺码推荐.txt:服装尺码匹配规则、体重身高对应标准等
  • 洗涤养护.txt:不同面料服装洗涤方式、养护注意事项等
  • 颜色选择.txt:颜色搭配建议、场景适配推荐等

程序文件

  • 核心程序:app_file_upload.py、app_qa.py、config_data.py、file_history_store.py、knowledge_base.py、rag.py、vector_stores.py
  • 数据存储:chat history(会话历史)、chroma_db(向量数据库)、md5.text(MD5 校验记录)

运行过程

streamlit run app_file_uploader.py

正常上传文件

image-20260503155001293

文件重复上传

image-20260503155041726

智能客服

streamlit run app_qa.py

image-20260503160426903

最近更新: 2026/5/4 10:38
Contributors: klc407073648
Prev
LangChain - RAG基础