大模型钉钉机器人配置:自定义机器人Webhook接入与安全设置
大模型钉钉机器人配置的核心,是把大模型生成的文本通过钉钉自定义机器人的 Webhook 地址发送到群聊。
整个过程不需要企业管理员权限,普通群成员即可在群设置里创建机器人。
下面从准备、创建、安全设置、发送验证到避坑,按顺序说明。
前置条件与创建机器人
开始前确认两件事:你有一个钉钉群,并且能在群设置中看到“智能群助手”。
手机端和电脑端操作路径略有不同,以下以电脑端为例。
- 打开钉钉群聊,点击右上角群设置图标。
- 进入“智能群助手”,点击“添加机器人”。
- 选择“自定义”(通过 Webhook 接入),点击“添加”。
- 填写机器人名称,安全设置先勾选“自定义关键词”,填入一个固定词,例如“大模型”。
- 勾选服务条款,点击完成,复制生成的 Webhook 地址。
Webhook 地址格式类似:
https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx
这个地址等同于机器人密码,不要发到公开仓库或聊天记录里。
如果泄露,在机器人设置中重置 Webhook 即可。
安全设置:加签与关键词怎么选
钉钉自定义机器人提供三种安全方式:自定义关键词、加签、IP 地址段。
零基础场景建议先用关键词,验证通路后再换加签。
- 关键词:消息文本中必须包含设定的词,否则钉钉返回错误码 310000。适合固定前缀场景,比如每条消息开头加“大模型通知”。
- 加签:用机器人 secret 对时间戳做 HMAC-SHA256 签名,拼接到 Webhook 的 timestamp 和 sign 参数。安全性更高,但需要代码生成签名。
- IP 地址段:只允许指定出口 IP 调用,适合服务器固定公网 IP 的场景。
如果后续要接入大模型自动回复,推荐加签方式,避免关键词被消息内容意外绕过。
发送第一条测试消息
先用 curl 验证 Webhook 和关键词是否匹配。
把地址替换成你自己的,消息内容必须包含关键词“大模型”。
curl -X POST 'https://oapi.dingtalk.com/robot/send?access_token=你的token' \
-H 'Content-Type: application/json' \
-d '{"msgtype":"text","text":{"content":"大模型测试消息"}}'
返回 JSON 中 errcode 为 0 表示发送成功,群内应出现机器人消息。
如果返回 310000,说明关键词不匹配或安全设置未生效;
返回 300001 通常是 token 错误或机器人已删除。
用 Python 对接大模型输出
实际使用时,大模型返回的文本需要动态发送。
下面示例使用加签方式,依赖 requests 库,发送前把 WEBHOOK 和 SECRET 替换为实际值。
import time, hmac, hashlib, base64, urllib.parse, requests
WEBHOOK = "https://oapi.dingtalk.com/robot/send"
TOKEN = "你的access_token"
SECRET = "你的加签secret"
timestamp = str(round(time.time() * 1000))
string_to_sign = f"{timestamp}\n{SECRET}"
hmac_code = hmac.new(SECRET.encode(), string_to_sign.encode(), digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
url = f"{WEBHOOK}?access_token={TOKEN}×tamp={timestamp}&sign={sign}"
body = {"msgtype": "text", "text": {"content": "大模型生成内容:示例回复"}}
resp = requests.post(url, json=body, timeout=10)
print(resp.json())
运行后检查返回的 errcode。
加签模式下时间戳与服务器时间偏差过大会失败,确保运行脚本的机器时间同步。
避坑与验证清单
- 关键词必须出现在消息文本中,标题或 JSON 字段名不算。
- 加签的 secret 不要和 token 混用,签名基于 secret 而非 token。
- 消息内容不要超过限制,文本消息建议控制在 2000 字符以内,超长可拆分发送。
- 频率限制:每个机器人每分钟最多发送 20 条,批量场景需要加队列或延时。
- 验证方式:每次修改安全设置后,重新用 curl 发一条含关键词的消息,确认
errcode为 0 且群内可见。
如果机器人消息没有出现在群里,先检查群是否开启了“仅群主可添加机器人”,再核对 Webhook 是否被重置。
按以上步骤执行,大模型钉钉机器人配置即可稳定用于通知和简单对话场景。