🧠 项目概述

一个基于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后端接口服务,管理会话
uvicornFastAPI 运行服务器
streamlitChat UI(Web界面)
langchainAgent、Memory、Tool 系统
langchain-openai调用 DeepSeek 模型
langchain-community向量库、工具扩展
chromadb本地向量数据库(RAG)
sentence-transformers文本向量生成(embedding)
requests调用外部 API / DeepSeek
pillow图片处理(可选)
pydantic数据结构定义、校验
dashscope使用 Qwen 通义大模型

🧑‍💻 实战

在项目初始化会加载到向量数据库中

代码太多,评论666领取

🧪演示

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐