Appearance
装修 AI 客服怎么对接微信服务号?
装修行业 AI 客服的 90% 场景都来自微信。今天完整拆解:技术架构、API 对接、消息路由和最佳实践。
一、技术架构
text
客户微信 → 微信服务号 → 客服消息 API → AI 客服后端
↓
知识库 + LLM + 工单系统
↓
自动回复 / 转人工 / 留资二、5 个核心组件
| 组件 | 选型 | 用途 |
|---|---|---|
| 微信服务号 | 微信官方 | 客户消息入口 |
| 客服消息 API | 微信开放接口 | 接收 / 发送消息 |
| AI 后端 | Cloudflare Pages Functions | 路由 + 业务逻辑 |
| LLM | 通义千问 / DeepSeek | 自然语言理解 |
| 知识库 | D1 / Notion API | FAQ + 装修行业资料 |
三、消息接收流程
3.1 服务号配置
| 配置项 | 值 |
|---|---|
| 服务器 URL | https://maixuzi.cn/api/wechat |
| Token | 自定义 |
| 消息加解密 | 明文模式 |
3.2 验证服务器(Cloudflare Pages Function)
javascript
// functions/api/wechat.js
export async function onRequestGet(context) {
const url = new URL(context.request.url)
const signature = url.searchParams.get('signature')
const timestamp = url.searchParams.get('timestamp')
const nonce = url.searchParams.get('nonce')
const echostr = url.searchParams.get('echostr')
// 验证签名(简化)
const token = context.env.WECHAT_TOKEN
const arr = [token, timestamp, nonce].sort()
const sha1 = await crypto.subtle.digest('SHA-1', new TextEncoder().encode(arr.join('')))
const hash = Array.from(new Uint8Array(sha1)).map(b => b.toString(16).padStart(2, '0')).join('')
if (hash === signature) {
return new Response(echostr)
}
return new Response('Invalid signature', { status: 401 })
}3.3 消息路由(POST 处理)
javascript
export async function onRequestPost(context) {
const xml = await context.request.text()
const msg = parseXml(xml) // 解析微信 XML
// 1. 关键词触发 FAQ
const faqAnswer = matchFAQ(msg.Content)
if (faqAnswer) {
return sendTextReply(msg.FromUserName, faqAnswer)
}
// 2. LLM 兜底
const llmAnswer = await callLLM(msg.Content)
return sendTextReply(msg.FromUserName, llmAnswer)
}四、AI 回复逻辑
4.1 三层路由
text
客户消息 → 第一层:FAQ 匹配
↓ 命中
返回标准答案(80% 命中)
↓ 未命中
第二层:LLM 兜底
↓ 调用通义千问
返回 AI 生成答案(15% 命中)
↓ 不确定
第三层:转人工
↓ 推送给设计师
返回"5 分钟内联系您"4.2 FAQ 匹配
装修行业常见 30 条 FAQ:
yaml
- 问: 你们装修多少钱一平?
答: 简装 800-1200 元/平,精装 1500-2500 元/平...
- 问: 装修流程是怎样的?
答: 量房 → 设计 → 报价 → 签约 → 施工 → 验收 → 售后
- 问: 你们用的什么材料?
答: 主材品牌客户可选,辅材用国家标准...4.3 LLM Prompt
text
你是麦序子装修 AI 客服。
# 业务范围
- 装修流程咨询
- 报价范围咨询
- 装修风格咨询
- 设计师档位推荐
# 回复规则
1. 回答不超过 200 字
2. 报价问题必须留电话或加微信才能给具体报价
3. 涉及合同的必须转人工
# 客户问题
{user_question}五、留资 + 自动推送
5.1 客户标签
每条消息打标签:
| 标签 | 触发词 |
|---|---|
| 报价咨询 | "多少钱" / "价格" / "报价" |
| 流程咨询 | "流程" / "多久" / "步骤" |
| 设计师 | "设计师" / "设计" |
| 风格 | "风格" / "中式" / "欧式" |
5.2 留资触发
text
客户:你们装修多少钱一平?
AI 客服:简装 800-1200 元/平,精装 1500-2500 元/平。
具体报价需要看您家户型和材料选择,
方便留个电话吗?我们设计师 5 分钟内联系您。
客户:138xxxx
AI 客服:好的,已记录。设计师会 5 分钟内联系您。
【自动推送:客户姓名 + 电话 + 楼盘 → 设计师企微】六、转人工
6.1 触发条件
- 客户说"人工" / "客服" / "投诉"
- LLM 不确定(置信度 < 0.6)
- 涉及合同 / 付款 / 售后
6.2 推送格式
text
【AI 客服转人工】
客户:138xxxx
楼盘:阳光花园 3-201
问题:装修多少钱一平?
对话:5 轮
意向:A 级
推送时间:2026-06-23 10:30七、5 个最佳实践
- FAQ 优先:80% 走 FAQ = 成本低 + 速度快
- LLM 兜底:15% 走 LLM = 覆盖长尾
- 人工兜底:5% 转人工 = 复杂问题
- 留资自动推送:A 级 5 分钟内必联系
- 数据复盘:每月看接待量 / 留资率 / 转化率
八、完整代码示例
完整代码已经开源:https://github.com/lingyun15/maixuzi-site
包括:
- Cloudflare Pages Functions 微信消息接收
- FAQ 匹配逻辑
- LLM 调用封装
- 留资自动推送
- 数据复盘表
九、参考
- 微信公众平台文档:https://developers.weixin.qq.com/doc/
- 通义千问 API:https://dashscope.aliyun.com/
- Cloudflare Pages Functions:https://developers.cloudflare.com/pages/functions/