LangChain+RAG懂业务的AI客服系统
🧠 项目概述
一个基于FastAPI和Streamlit的智能AI客服系统,集成了订单查询、产品推荐、FAQ问答和图片生成等功能。系统使用DeepSeek AI作为核心语言模型,具备多轮对话记忆和智能路由能力。
🚀 技术架构
核心技术栈
-
后端框架: FastAPI
-
前端界面: Streamlit
-
AI模型: DeepSeek Chat
-
向量数据库: ChromaDB
-
对话记忆: LangChain ConversationBufferMemory
-
图片生成: 阿里云通义万相
🧩 项目结构
ai-customer-service/
├── app_api.py # FastAPI后端服务
├── app_streamlit.py # Streamlit前端界面
├── agent_service.py # AI代理服务核心
├── context_manager.py # 上下文管理器
├── img_tool.py # 图片生成工具
├── api_tools.py # API工具函数
├── faq.txt # 知识库文档
└── chroma_db/ # 向量数据库存储
🧰 环境准备
# 创建虚拟环境
python -m venv ai_env
source ai_env/bin/activate # Linux/Mac
ai_env\Scripts\activate # Windows
# 安装依赖包
pip install fastapi uvicorn streamlit
pip install langchain langchain-openai langchain-community
pip install chromadb sentence-transformers
pip install requests pillow pydantic
pip install dashscope
📦 各个 pip 包的用途(详细说明)
1. fastapi + uvicorn
🌐 用于:后端 API 服务
fastapi
-
创建 Web 服务、REST API
-
可用于构建你的 AI 客服后端,例如:
-
请求 DeepSeek
-
管理用户会话
-
提供 RAG 查询接口
-
多用户会话记忆清理
-
uvicorn
-
负责运行 FastAPI 的 高性能 ASGI 服务器
一句话总结:
FastAPI 用来写接口,Uvicorn 用来跑接口。
2. streamlit
🧰 用于:快速搭建 Web UI(通常用于 PC)
-
用户可直接通过浏览器看到你的 AI 客服
-
实时展示 LLM 输出(流式输出)
-
可快速构建 Chat UI、工具按键、文件上传界面
⚠️ 你遇到“手机打开报错”和兼容性问题,就是来自 Streamlit 的局限性。
3. langchain / langchain-openai / langchain-community
🧠 用于:构建 LLM Agent(你的客服核心逻辑)
langchain
-
LLM Agent 框架
-
支持工具调用(Tools)、RAG、Memory、中间链式处理
langchain-openai
-
适用于使用 OpenAI 或兼容 OpenAI API(包括 DeepSeek 的兼容接口)
langchain-community
-
各种社区模型/向量库/工具的支持,如 Chroma、Milvus、FAISS
4. chromadb
📚 用于:向量数据库(Vector Store)
-
存储知识库(如 套餐说明、产品详情、归属地区域数据)
-
支持 RAG(知识库搜索)
-
使用 sentence-transformers 生成向量后进行相似度检索
5. sentence-transformers
🔤 用于:文本向量化(Embeddings)
-
例如
"all-MiniLM-L6-v2"模型 -
将文本变为向量,支持相似度搜索
在你的客服中可用于:
-
匹配用户意图
-
多轮会话上下文搜索
-
归属地、流量、月租要求解析等
6. requests
🌍 用于:发送 HTTP 请求
尤其用于:
-
直接调用 DeepSeek 的 API
-
访问外部接口,如归属地查询/套餐查询等第三方 API
7. pillow(PIL)
🖼️ 用于:图片处理
客服助手如果要:
-
接收用户上传的身份证号图片、二维码、套餐宣传图
-
生成报告截图
-
处理验证码图片
就需要 pillow。
8. pydantic
🏗️ 用于:数据模型定义与校验
在 FastAPI 和 LangChain 中用途超多:
-
定义用户 QueryModel
-
定义 LLM Tools 的参数(非常关键)
-
自动校验输入输出
9. dashscope
🧪 用于:调用 阿里云通义大模型 DashScope
如果你使用 DeepSeek / Qwen 等模型:
-
Qwen 模型(通义千问)走 DashScope API
-
可用于替代 OpenAI API
如果你准备同时支持多 LLM(DeepSeek + Qwen),DashScope 会用得上。
📘 包作用总结
| 包 | AI 客服系统中的作用 |
|---|---|
| fastapi | 后端接口服务,管理会话 |
| uvicorn | FastAPI 运行服务器 |
| streamlit | Chat UI(Web界面) |
| langchain | Agent、Memory、Tool 系统 |
| langchain-openai | 调用 DeepSeek 模型 |
| langchain-community | 向量库、工具扩展 |
| chromadb | 本地向量数据库(RAG) |
| sentence-transformers | 文本向量生成(embedding) |
| requests | 调用外部 API / DeepSeek |
| pillow | 图片处理(可选) |
| pydantic | 数据结构定义、校验 |
| dashscope | 使用 Qwen 通义大模型 |
🧑💻 实战





在项目初始化会加载到向量数据库中
代码太多,评论666领取
🧪演示






更多推荐



所有评论(0)