钉钉机器人集成智能对话机器人大模型问答。
智能对话机器人已支持钉钉机器人的问答能力,零代码即可接入,详情请看:钉钉机器人部署指引
效果展示
概览
调用ApplyForStreamAccessToken接口。参考文档:ApplyForStreamAccessToken - 获取流式调用的连接信息
ApplyForStreamAccessToken接口,返回的连接签名信息有效期2小时,必须在到期前重新获取
监听并接收钉钉机器人的消息(用户问机器人的消息):机器人接收消息
发送AI卡片消息:创建并投放卡片
计算会话接口签名。会话接口签名
SSE流式调用会话接口,监听SSE事件,获取大模型流式输出。参考文档:流式会话接口
大模型流式接口会多次返回,每次返回都是全量的回复,渲染端应该考虑用新的覆盖旧的。响应参数参考:3 响应参数说明
更新AI卡片:AI卡片流式更新
示例
示例工程代码
如何运行
本示例工程的运行环境要求为JDK 8,参考文档:在Windows安装JDK
根据钉钉应用和机器人配置操作完成后,获取示例工程中的参数中钉钉内部应用的参数
将上面提到的参数填写到示例工程中的
com.aliyun.chatbot.channel.DingtalkRobotChatApp
类的对应参数上运行
com.aliyun.chatbot.channel.DingtalkRobotChatApp
这个类的主方法打开钉钉,通过机器人名称搜索并打开对应的机器人,即可进行问答。或者把机器人添加到企业内部群中,@机器人进行提问
示例工程中的参数
名称 | 描述 |
ALIYUN_ACCESS_KEY | 阿里云账号AK |
ALIYUN_SECRET_KEY | 阿里云账号SK |
CHATBOT_INSTANCE_ID | 机器人id |
CHATBOT_AGENT_KEY | 业务空间AgentKey,获取地址:业务空间管理 |
DINGTALK_CLIENT_ID | 钉钉企业内部应用的Client ID,在基础信息>凭证与基础信息菜单中获取应用的 Client ID 和 Client Secert |
DINGTALK_CLIENT_SECRET | 钉钉企业内部应用的Client Secret,在基础信息>凭证与基础信息菜单中获取应用的 Client ID 和 Client Secert |
DINGTALK_CARD_TEMP_ID | AI卡片模板id |
智能对话机器人配置
进入智能对话机器人控制台,https://chatbot.console.aliyun.com
机器人创建,获取机器人id,发布机器人(如无发布按钮则跳过)
获取业务空间AgentKey,地址:业务空间管理
阿里云账号AKSK获取,地址:AccessKey
钉钉应用和机器人配置
机器人配置,填写机器人名称等必填项后,配置消息接收模式为 Stream 模式
为应用申请钉钉开放接口权限,在开发配置>权限管理菜单中需要申请三个权限
企业内机器人发送消息权限
互动卡片实例写权限
AI卡片流式更新权限
在基础信息>凭证与基础信息菜单中获取应用的 Client ID 和 Client Secert
发布机器人后再发布钉钉应用
搭建卡片模板,获取卡片模板id
FAQ
发问题给机器人后,机器人无回复
检查权限是否配置完全。请参考为应用申请钉钉开放接口权限,在开发配置>权限管理菜单中需要申请三个权限
创建AI卡片后,请确保卡片已保存并发布。
机器人无法搜索到,请确认机器人已发布,且所在应用也已发布并可见性配置正确