釘釘機器人集成智能對話機器人大模型問答。
智能對話機器人已支持釘釘機器人的問答能力,零代碼即可接入,詳情請看:釘釘機器人部署指引
效果展示
概覽
調用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卡片后,請確保卡片已保存并發布。
機器人無法搜索到,請確認機器人已發布,且所在應用也已發布并可見性配置正確