- docker compose 部署:app / db / redis / tls(nginx) / bridge-tools,宿主端口错开避免与本机服务冲突 - bridge-tools 内联进仓库(compose build 路径改为 ./bridge-tools),仓库自包含可部署 - 部署说明 README、crm-new 对照与 bridge-tools 方案文档、备份与隧道脚本 - .gitignore 排除 .env、config.toml、uploads/、tls 私钥/证书、backups/、logs/
2.1 KiB
2.1 KiB
Live Chat 端到端验证(2026-10-28)
环境:LibreDesk v2.9.1(https://192.168.31.61:9443)+ bridge-tools(4 个 AI 工具)
Inbox:Website(livechat,uuid 81b679b0-33fb-4796-9f83-dcc0f43231cc)
自动化:新会话 → 分配给 Yehwang Assistant(user_id=2)
验证流程与结果
| 步骤 | 结果 |
|---|---|
1. widget 匿名发起会话(POST /api/v1/widget/chat/conversations/init,第一条消息=退货政策) |
200,会话创建 |
| 2. 自动化规则触发 | 会话 assigned_user_id=2(Yehwang Assistant) |
| 3. AI 自动回复 | 约 5 秒返回,内容与知识库一致(非质量问题不退,质量问题 7 天内),带 sources |
| 4. 访客问订单状态 | AI 要求邮箱验证 |
| 5. 访客给邮箱 | AI 调用 set_contact_email + send_email_verification(OTP 走 163 SMTP) |
6. 从 Redis 取码(ai:otp:pending:<uuid>)并回复 |
AI 调用 check_email_verification,验证通过 |
7. 重试 search_orders |
bridge-tools 日志:tool=search_orders verified=true ok=true;回复「没有找到该邮箱的订单」 |
| 8. 会话状态 | Open,contact email 已更新 |
发现的问题(已处理)
在第 4 步之前,模型曾自行声称「已把验证码发到 example@example.com」——这是一个编造的邮箱和编造的动作(当时联系人的邮箱为空)。 已在 assistant instructions 里加护栏:
Never invent or assume the customer's email address: ask for it. Only say a verification code or email was sent after the send_email_verification tool succeeds.
仍建议上线前用真实客户跑一轮回归,重点看「无邮箱时是否会索要邮箱」以及「是否只在工具成功后声称已发送」。
复现命令
widget 匿名发起:
curl -sk -X POST https://localhost:9443/api/v1/widget/chat/conversations/init \
-H 'Host: 192.168.31.61:9443' -H 'Content-Type: application/json' \
-H 'X-Libredesk-Inbox-ID: 81b679b0-33fb-4796-9f83-dcc0f43231cc' \
-d '{"message":"What is your return policy?"}'
发送后续消息需 Authorization: Bearer <session_token> + X-Libredesk-Inbox-ID。