【集成示例】钉钉端机器人

钉钉机器人集成智能对话机器人大模型问答。

效果展示

准备工作

重要

钉钉端可以零代码集成智能对话机器人,详情请查看:钉钉机器人部署指引

智能对话机器人配置

  1. 进入智能对话机器人控制台,选择左侧导航栏的应用管理->机器人->新建机器人

  2. 获取机器人ID,发布机器人(如无发布按钮则跳过)。

    image

  3. 访问智能对话机器人业务空间,获取业务空间AgentKey。

    image

  4. 访问RAM控制台,获取阿里云账号的ACCESS_KEYSECRET_KEY。

钉钉应用和机器人配置

  1. 创建应用

  2. 配置机器人,进入钉钉开放平台>应用能力>机器人>填写机器人名称等必填项后,配置消息接收模式为 Stream 模式。

  3. 为应用申请钉钉开放接口权限,在开发配置>权限管理菜单中需要申请三个权限。

    • 企业内机器人发送消息权限。

    • 互动卡片实例写权限。

    • AI卡片流式更新权限。

  4. 基础信息>凭证与基础信息菜单中获取应用的 Client ID 和 Client Secret。

  5. 发布机器人后再发布钉钉应用。

  6. 搭建卡片模板,获取卡片模板ID。

操作步骤

image

  1. 调用ApplyForStreamAccessToken接口。参考文档:获取流式调用的连接信息

  2. ApplyForStreamAccessToken接口,返回的连接签名信息有效期2小时,必须在到期前重新获取。

  3. 监听并接收钉钉机器人的消息(用户问机器人的消息):机器人接收消息

  4. 发送AI卡片消息:创建并投放卡片

  5. 计算会话接口签名。会话接口签名

  6. SSE流式调用会话接口,监听SSE事件,获取大模型流式输出。参考文档:流式会话接口

  7. 大模型流式接口会多次返回,每次返回都是全量的回复,渲染端应该考虑用新的覆盖旧的。响应参数参考:流式会话接口

  8. 更新AI卡片:AI卡片流式更新

示例工程代码

源代码下载(JAVA)

dingtalk-example.zip

示例运行配置

  1. 本示例工程的运行环境要求为JDK 8,参考文档:Windows安装JDK

  2. 根据本文的准备工作,获取示例参数

  3. 修改启动类DingtalkRobotChatApp中调整相关参数。

  4. 运行com.aliyun.chatbot.channel.DingtalkRobotChatApp这个类的主方法。

  5. 打开钉钉,通过机器人名称搜索并打开对应的机器人,即可进行问答。或者把机器人添加到企业内部群中,@机器人进行提问。

示例参数

名称

描述

ALIYUN_ACCESS_KEY

阿里云账号AK

ALIYUN_SECRET_KEY

阿里云账号SK

CHATBOT_INSTANCE_ID

机器人id

CHATBOT_AGENT_KEY

业务空间AgentKey,获取地址:业务空间管理

DINGTALK_CLIENT_ID

钉钉企业内部应用的Client ID,获取方式可参考:钉钉应用和机器人配置步骤四。

DINGTALK_CLIENT_SECRET

钉钉企业内部应用的Client Secret,获取方式可参考:钉钉应用和机器人配置步骤四。

DINGTALK_CARD_TEMP_ID

AI卡片模板id

常见问题

Q:发消息给机器人后,机器人无回复。

A:首先请检查权限是否配置完全。请参考:钉钉应用和机器人配置步骤三。其次创建AI卡片后,请确保卡片已保存并发布。

image

Q:机器人无法搜索到。

A:请确认机器人已发布,且所在应用也已发布并可见性配置正确。

image