ReglowAdmin 智能客服开发计划

ReglowAdmin 智能客服开发计划

一、产品目标

打造一个"不休息的员工",具备三大核心能力:

  1. 掌握全面专业知识:基于 RAG(检索增强生成)架构,实时检索产品手册、FAQ、政策等知识库,准确回答客户问题,杜绝幻觉。
  2. 给客户提供情绪价值:先识别情绪,再共情,后解决,让客户感受到"有温度的服务"。
  3. 及时满足需求、促成交易、智能转人工:通过 Function Calling 对接业务系统,查商品/查订单/发起退款;遇到复杂情况自动生成摘要转人工,不丢上下文。

二、整体架构

用户端(H5/小程序/APP)
        │
        ▼
┌──────────────┐
│  SDK 脚本     │  ← 一段 JS,粘贴即可嵌入任意页面
└──────┬───────┘
       │
       ▼
┌──────────────────────────────────────────────┐
│              接入层 (FastAPI)                  │
│  /api/cs/chat  SSE流式   /api/cs/sdk.js       │
└──────────────────────┬───────────────────────┘
                       │
       ┌───────────────┼───────────────┐
       ▼               ▼               ▼
┌────────────┐  ┌────────────┐  ┌────────────┐
│  意图/情绪  │  │  RAG 检索  │  │  工具调用   │
│  识别      │  │  Redis向量  │  │  Function  │
│           │  │            │  │  Calling   │
└─────┬─────┘  └─────┬─────┘  └─────┬─────┘
      │              │              │
      └──────────────┼──────────────┘
                     ▼
         ┌───────────────────┐
         │   对话编排层       │
         │   Prompt + 知识拼接 │
         └────────┬──────────┘
                  ▼
         ┌───────────────────┐
         │   LLM 多厂商适配   │
         │   (复用 ai 模块)   │
         │ DeepSeek/通义/豆包 │
         │ 混元/智谱/Kimi    │
         └────────┬──────────┘
                  ▼
         ┌───────────────────┐
         │   人工协同层       │
         │   坐席工作台       │
         │   WebSocket 接管   │
         └───────────────────┘

三、技术选型

组件方案说明
LLM 对话DeepSeek Flash(主力),GLM-4.6 Flash(免费兜底)复用现有 modules/ai/controller.py 的多厂商能力
向量存储Redis(现有)无需引入 Milvus/Qdrant
Embedding调用 API(通义/智谱 embedding 接口)复用现有 API Key 配置
流式输出SSEFastAPI StreamingResponse,已有实现
实时通信WebSocketFastAPI 原生支持
后端框架Python + FastAPI(现有)复用项目基础设施
前端框架Vue3 + TypeScript(现有)复用 components/reui/chat 聊天组件
数据库MySQL(现有)新增 customer_service 相关表
鉴权JWT(现有)坐席端复用 auth 模块

四、成本估算

4.1 基础设施成本

项目成本说明
GPU/服务器0 元使用 API 调用模式,无需自建
向量数据库0 元使用现有 Redis,不引入新组件
服务器增量几乎为 0现有服务器够用

4.2 LLM 调用成本(按量付费)

模型输入价格(元/百万token)输出价格单次对话估算
DeepSeek V4 Flash~1~2~0.003 元
通义千问 Turbo~2~6~0.008 元
通义千问 Plus~4~12~0.015 元
智谱 GLM-4.6 Flash免费免费0 元
DeepSeek V4 Pro~4~16~0.02 元

单次对话估算:假设 2000 token 输入(含知识库片段)+ 500 token 输出

4.3 月成本估算

日均对话量用 DeepSeek Flash用 GLM Flash(免费)
100 次/天~9 元/月0 元
1,000 次/天~90 元/月0 元
10,000 次/天~900 元/月0 元(需关注速率限制)

4.4 成本优化策略

  • 高频简单问答用 GLM-4.6 Flash(免费)
  • 复杂问题用 DeepSeek V4 Flash(极便宜)
  • 高端推理场景按需切换到 V4 Pro
  • 多厂商架构天然支持灵活分流

五、开发计划

阶段一:MVP(让机器人能答)

完成后,用户粘贴 SDK 代码即可在 H5/小程序/APP 上打开聊天窗口,AI 基于知识库回答问题。

任务 1:数据库表设计 + Alembic 迁移

新增 5 张表,复用项目现有 Base + TimestampMixin + SoftDeleteMixin

表名用途关键字段
cs_knowledge_base知识库name, description, status, embedding_model
cs_knowledge_chunk知识块kb_id, content, vector (JSON), chunk_index, source
cs_session会话visitor_id, source, status (bot/human/closed), employee_id
cs_message消息session_id, role, content, source_chunks, tool_calls
cs_config客服配置model, system_prompt, welcome_message, business_hours, transfer_rules

文件路径coding/backend-python/modules/customer_service/model.py

任务 2:知识库管理(RAG 核心)

功能

  • 后台 CRUD 知识库,支持上传文档(txt/md/pdf)或手动录入 FAQ
  • 文档自动切分(按段落/语义)→ 调用 embedding API 向量化 → 存入 Redis 向量索引
  • 混合检索:向量相似度 + 关键词匹配 + 元数据过滤

复用现有

  • Redis(向量搜索)
  • AI 模块的 API Key 配置

文件路径

  • coding/backend-python/modules/customer_service/knowledge.py — 文档处理 + 向量化
  • coding/backend-python/modules/customer_service/retrieval.py — 检索服务

任务 3:对话编排服务

功能

  • System Prompt 管理(角色、语气、边界、输出格式)
  • 检索知识库片段 → 拼入 messages.context
  • 调用 ai/controller.py 已有的多厂商 LLM
  • 流式输出(SSE)

核心 Prompt 结构

System:
- 你是XX公司的智能客服
- 只基于提供的资料回答,不知道就说不知道
- 涉及价格/库存必须调用工具查实时数据
- 先共情再解决,不超过两句共情
- 每条回答标注来源

Context:
- [检索到的知识片段1](来源:退款政策文档)
- [检索到的知识片段2](来源:FAQ第3条)

User: 如何退货?

文件路径coding/backend-python/modules/customer_service/service.py

任务 4:客服 SDK 脚本生成器 ⭐ 核心

功能:后端生成一段自包含的 JS 脚本,用户粘贴到任意 HTML 即可嵌入智能客服。

<!-- 一行代码接入 -->
<script src="https://your-domain.com/api/cs/sdk.js?app_id=xxx"></script>

SDK 特性

  • 自包含的悬浮按钮 + 聊天窗口(Web Component,不污染宿主页面)
  • 支持自定义样式(主题色、位置、大小)
  • 支持全屏模式(移动端适配)
  • 会话持久化(localStorage 存 session_id)
  • 离线降级(网络断开时显示"客服不在线")
  • 小程序端提供 Taro 组件包
  • APP 端通过 WebView 加载 SDK

文件路径

  • coding/backend-python/modules/customer_service/sdk_builder.py — SDK 代码生成器
  • coding/backend-python/modules/customer_service/static/sdk-template.js — SDK 前端模板

任务 5:客户端对话 API

功能

  • POST /api/cs/chat:公开接口(无需登录),SSE 流式输出
  • GET /api/cs/history:获取历史消息
  • 基于 session_id 隔离不同用户
  • Redis 频率限制(防刷,每分钟最多 N 条)
  • 记录每条消息到 cs_message

文件路径coding/backend-python/modules/customer_service/controller.py

任务 6:后台管理前端

功能

  • 知识库管理页(创建/编辑/删除/上传文档/重建索引/查看检索效果)
  • 客服配置页(模型选择、欢迎语、营业时间、转人工规则、SDK 代码生成器)
  • 对话记录页(查看历史会话、消息详情、知识引用来源)

复用组件components/reui/chat/ 聊天组件

文件路径coding/frontend-admin/src/views/customer_service/


阶段二:能干活 + 能转人工

任务 7:Function Calling 工具层

功能:定义业务工具,LLM 自主决定调用。

工具名功能安全级别
query_product查商品信息只读
check_stock查实时库存只读
query_order查订单状态/物流只读
calc_price算价格/优惠只读
create_ticket建工单写入
transfer_human转人工特殊
apply_coupon发券写入(需确认)
create_refund发起退款写入(需确认)

安全分级

  • 只读类:LLM 直接调用
  • 写入类:LLM 组织方案 + 业务校验 + 用户确认 → 执行
  • 高风险(大额退款/改账户):必须转人工

文件路径coding/backend-python/modules/customer_service/tools.py

任务 8:智能转人工

转人工触发条件

  1. 情绪高强度负面(愤怒/投诉)
  2. LLM 连续 2 轮置信度低或无法解决
  3. 涉及高风险操作需人工确认
  4. 客户明确要求人工
  5. 命中敏感场景(法律、医疗、大额资金)

转人工流程

  1. LLM 生成会话摘要(问题、已处理、待办、情绪状态)
  2. WebSocket 实时通知坐席(带摘要 + 等待中人数)
  3. 历史上下文一并移交,不让客户复述
  4. 转人工后机器人退到辅助位(帮坐席查资料、起草回复)

文件路径

  • coding/backend-python/modules/customer_service/transfer.py
  • coding/backend-python/modules/customer_service/ws.py — WebSocket 管理器

任务 9:坐席工作台

功能

  • 实时对话列表(等待中/进行中/已结束)
  • 人工接管对话(WebSocket 双向通信)
  • AI 辅助回复(LLM 起草,坐席确认后发送)
  • 会话摘要视图 + 知识库快速搜索
  • 工单管理(创建/分配/处理/关闭/关联会话)

文件路径coding/frontend-admin/src/views/customer_service/workspace/


阶段三:有温度 + 能销售

任务 10:情绪识别与共情

功能

  • 对话前先做情绪 + 意图识别(LLM 输出结构化 JSON)
    {
      "emotion": "frustrated|angry|anxious|neutral|happy",
      "intensity": "high|medium|low",
      "intent": "complaint|consult|refund|purchase",
      "urgency": "high|normal"
    }
    
  • 高强度负面情绪 → 自动进入安抚模式 + 提升优先级 + 预警转人工
  • Few-shot 注入安抚话术库
  • 动态调整回复风格(愤怒简洁直接,犹豫引导促单)

效果指标:情绪识别准确率、安抚后满意度提升、复购率变化

任务 11:销售话术与推荐

功能

  • 需求挖掘(引导式提问:场景/预算/用途)
  • 基于库存和知识库做智能推荐(关联商品/套餐/凑单优惠)
  • 促单话术 Few-shot(限时优惠/库存紧张/凑单建议)
  • 约束规则:不硬推、不过度承诺、先满足需求再推荐

文件路径coding/backend-python/modules/customer_service/prompts/sales.py

任务 12:评测与运营

功能

  • 会话日志全量记录(含知识引用链路 trace)
  • 评测集管理 + 定期回归测试
  • 业务指标看板:
    • 一次性解决率
    • 转人工率
    • 客户满意度
    • 平均对话轮次
    • 下单转化率 / 客单价提升
  • 知识回流(未解决问题 → 补充知识 → 重新评测)

文件路径coding/backend-python/modules/customer_service/evaluation.py


六、任序与依赖

阶段一(基础设施)
1. 数据库表 ────────▶ 2. 知识库 ────▶ 3. 对话编排 ──▶ 5. 对话API ──▶ 4. SDK生成器
                       │                                           │
                       └───────────────────────────────────────────▶ 6. 后台前端
                                                                          │
阶段二(能干活 + 能转人工)                                                  │
7. 工具层 ──▶ 8. 转人工 ──▶ 9. 坐席工作台 ──────────────────────────────┤
                                                                          │
阶段三(有温度 + 能销售)                                                  │
10. 情绪识别 ──▶ 11. 销售话术 ──▶ 12. 评测运营 ─────────────────────────┘

建议执行顺序:严格按阶段顺序推进,每个阶段内部按编号顺序执行。阶段一完成即可上线使用,后续阶段为增量迭代。


七、文件结构总览

coding/backend-python/
├── modules/
│   └── customer_service/
│       ├── __init__.py
│       ├── model.py          # 数据库模型(5张表)
│       ├── router.py         # 路由注册
│       ├── controller.py     # API 控制器
│       ├── service.py        # 对话编排 + Prompt 管理
│       ├── schema.py         # Pydantic 请求/响应模型
│       ├── knowledge.py      # 知识库管理(上传/切分/向量化)
│       ├── retrieval.py      # 向量检索 + RAG
│       ├── tools.py          # Function Calling 工具定义
│       ├── transfer.py       # 转人工逻辑
│       ├── evaluation.py     # 评测与运营
│       ├── sdk_builder.py    # SDK 代码生成器
│       ├── ws.py             # WebSocket 管理器
│       ├── prompts/
│       │   ├── system.py     # System Prompt 模板
│       │   ├── emotion.py    # 情绪识别 Prompt
│       │   └── sales.py      # 销售话术 Few-shot
│       └── static/
│           └── sdk-template.js  # SDK 前端模板
├── alembic/versions/
│   └── cs_init.py            # 客服模块迁移文件

coding/frontend-admin/
└── src/
    └── views/
        └── customer_service/
            ├── kb/            # 知识库管理页
            ├── config/        # 客服配置页
            ├── history/       # 对话记录页
            └── workspace/     # 坐席工作台

八、RAG 知识检索增强原理

工作原理

用户提问:"怎么退货?"
        ↓
① 向量化:问题转成向量(embedding)
        ↓
② 检索:Redis 向量搜索 → 找最相似的知识片段
        ↓
   找到:"7天无理由退货,需保留吊牌,联系客服发起..."
        ↓
③ 拼装 Prompt:
   System: 根据以下资料回答,资料没有就说不知道
   Context: [检索到的片段 + 来源标注]
   User: 怎么退货?
        ↓
④ LLM 生成:"我们支持7天无理由退货,保留吊牌即可..."
        ↓
⑤ 返回(可标注来源:来自《退货政策》第3条)

关键组件

组件作用本项目方案
文档处理切分、清洗markdown/txt/pdf 解析 + 语义切分
向量化(Embedding)文本 → 数字向量调用通义/智谱 embedding API
向量存储存向量 + 检索Redis(现有,不新增组件)
知识检索相似度搜索向量 + 关键词混合检索 + 重排序
生成基于检索结果回答DeepSeek/通义等 LLM

九、关键指标

指标说明目标
一次性解决率无需转人工或多次交互即解决> 60%
知识准确率回答与知识库一致的比例> 95%
转人工率最终转人工的比例< 30%
平均响应时长首字延迟< 1.5 秒
客户满意度对话后满意度评分> 4.2/5
转换率提升接入前后下单转化率变化+10%

十、注意事项

  1. 先做知识,再做情绪,最后做销售——地基不稳,上层白做。
  2. 不要一上来就做全自动 Agent——先从"LLM + 规则编排 + RAG"开始,稳定后再逐步放权。
  3. 危险操作必须二次确认 + 人工兜底——退款、改账户等不能全交给 LLM。
  4. 建评测集,每两周回一次——没有度量的智能客服就是盲飞。
  5. SDK 是核心——后端再好,用户端接入体验差就没意义。SDK 要做到"一行代码接入,3 分钟上线"。