QA 自动回复机器人 — 部署指南
一、功能简介
基于企业微信「智能机器人」接口的自动回复服务:用户在客户群中 @机器人 提问,后端匹配 help-qa.json 中的关键词,回复一句话摘要 + 帮助中心精准链接,引导用户进入帮助网站查看完整图文答案。
- 不在群里刷大段文字,只做"引路人"
- 帮助中心已有完整内容(搜索、图文、分类),机器人只负责精准导航
- 不受「群发消息」每日 1 条的限制(通过
response_url被动回复) - 支持外部客户群和内部群
- 需要用户 @机器人 才会触发(不会监听所有消息)
回复示例
用户在群里发:@机器人 安全键
机器人回复:
关于「安全键是什么?哪些键盘有?」:
安全键又称两键下单:需先按住安全键再按下单键,降低误触。
查看详情:https://www.accord1key.cn/help/web/classic-keyboard/features/safe-key
二、环境准备
2.1 Python 依赖
pip install flask pycryptodome requests
或在项目根目录:
# 取消 requirements.txt 中 QA 机器人部分的注释后
pip install -r requirements.txt
2.2 文件结构
help-center/
├── tools/
│ ├── qa_bot_server.py ← 机器人主程序
│ └── qa_bot_config.json ← 配置文件(Token / AESKey / 端口)
└── static/data/
└── help-qa.json ← QA 数据源(118 条)
三、企业微信后台配置
3.1 创建智能机器人
- 登录 企业微信管理后台
- 进入 应用管理 → 创建应用(或使用现有自建应用)
- 在应用设置中找到 智能机器人 功能,点击 创建一个智能机器人
- 记录 BotID(后续配置需要)
3.2 设置回调 URL
- 在智能机器人设置页面,点击 「接收消息」→ 设置 API 接收
- 填写:
- URL:
https://your-domain.com/callback(必须 HTTPS) - Token: 自定义,与
qa_bot_config.json中的token一致 - EncodingAESKey: 点击「随机获取」或自定义 43 位字符串,与配置文件一致
- URL:
- 点击「保存」,企微会发送 GET 验证请求(此时服务器必须已运行)
3.3 将机器人添加到客户群
- 进入目标客户群的群管理
- 添加「智能机器人」到群
- 群内用户 @机器人 即可触发自动回复
四、配置文件说明
编辑 help-center/tools/qa_bot_config.json:
{
"token": "填写企微后台的 Token",
"encoding_aes_key": "填写企微后台的 EncodingAESKey(43位)",
"corpid": "填写企业 CorpID",
"port": 5001,
"host": "0.0.0.0",
"debug": false,
"help_center_base": "https://www.accord1key.cn/help/web",
"fallback_reply": "您好!请访问灵犀汇金帮助中心查找解答:\nhttps://www.accord1key.cn/help/web/\n\n支持搜索,经典键盘 / QMT / 多屏等常见问题均可在此找到。",
"match_threshold": 0.3
}
| 字段 | 说明 |
|---|---|
token | 企微智能机器人回调 Token |
encoding_aes_key | 43 位 Base64 编码的 AES 密钥 |
corpid | 企业 ID,用于消息解密校验 |
port | HTTP 服务端口,默认 5001 |
host | 监听地址,0.0.0.0 监听所有网卡 |
debug | Flask 调试模式(生产环境设 false) |
help_center_base | 帮助中心基础 URL,用于拼接精准链接 |
cors_origins | 允许跨域请求的来源列表(帮助中心前端域名) |
fallback_reply | QA 未匹配时的兜底回复(引导到帮助中心首页) |
match_threshold | 匹配置信度阈值(0~1),低于此值视为未匹配 |
五、启动服务
cd help-center/tools
python qa_bot_server.py
启动成功后会看到:
灵犀汇金 QA 服务
企微回调: http://0.0.0.0:5001/callback
帮助中心API: http://0.0.0.0:5001/api/ask
QA 条数: 111