引言

钉钉群机器人是钉钉为用户提供的智能群助手,帮助群里沟通协同更加高效。
ChatGPT,是OpenAI公司研发的人工智能聊天机器人程序。
本文介绍如何在钉钉中使用群机器人的方式接入OpenAI的ChatGPT。

钉钉群机器人

钉钉群机器人有三种创建方法:

方法1:基于Outgoing机制的群机器人

打到钉钉群设置中,找到机器人
image
点击添加机器人
image
在机器人列表中,找到自定义(通过Webhook接入自定义服务)
image
填写机器人名称等信息
image
开启Outgoing机制,并填写Post地址和Token,Post地址用于接收用户@群机器人时的消息
image

注意:最近Outgoing功能在维护中,新建的群已经无法使用。
image

方法2:基于钉钉旧版机器人

进入钉钉开放平台后台,地址:https://open-dev.dingtalk.com/, 在应用开发中选择企业内部开发
image
选择机器人
image
选择继续使用旧版
image
填写名称及描述后,点击确认创建
image
创建成功后,在机器人列表中可以看到该机器人。
image
点击名称,进入机器人信息页面,在开发管理中,填写服务器出口IP和消息接口地址。
image
在版本管理与发布中,上线发布该机器人。如果代码正确的话,可以成功。
image
然后在钉钉群设置中,添加机器人时,就能看到这个机器人了。
image

方法3:基于钉钉应用的消息推送

企业内部开发中,选择钉钉应用,再点击创建应用,应用类型选H5微应用
image
进入该应用,点击应用功能下的消息推送,在机器人配置右边的开关打开
image
在底部的消息接收地址中,填入已经开发好地消息地址。如果没有问题的话,最后点发布按钮。
image
然后在钉钉群设置中,添加机器人时,就能看到这个新的机器人了。
image

钉钉群机器人消息处理机制

当用户在群里面@群机器人时,前面填写的消息接口地址中,将会收到用户的消息,格式如下:

{
    "conversationId":"cidIkTE/XJaK3MyqXgErjBitg==",
    "atUsers":[
    {
    "dingtalkId":"$:LWCP_v1:$b86gs9V+8AFK+atZ8qfc81pKnipWsWgr"
    }
    ],
    "chatbotCorpId":"ding2c19145b7d7ed2a9a1320dcb25e91351",
    "chatbotUserId":"$:LWCP_v1:$b86gs9V+8AFK+atZ8qfc81pKnipWsWgr",
    "msgId":"msgOc1IsQKi4bbUk0c7hyqDOw==",
    "senderNick":"方倍",
    "isAdmin":true,
    "senderStaffId":"181924341223880",
    "sessionWebhookExpiredTime":1678800212010,
    "createAt":1678794811772,
    "senderCorpId":"ding2c19145b7d7ed2a9a1320dcb25e91351",
    "conversationType":"2",
    "senderId":"$:LWCP_v1:$NVvLmzC5Vkz/1NXgBuig0g==",
    "conversationTitle":"AI",
    "isInAtList":true,
    "sessionWebhook":"https://oapi.dingtalk.com/robot/sendBySession?session=46197e5d81e7c74c7e3a1ddb129c4ab5",
    "text":{
    "content":" 如何赚到1个亿?"
    },
    "robotCode":"dingk5odl9ax8sodljrl",
    "msgtype":"text"
}

可以看到,用户发送的内容在"text"下。

将该内容再发送给OpenAI的ChatGPT接口,ChatGPT回复的内容再通过机器人的Webhook地址,就可以向群内回复信息,这样就形成了一个ChatGPT的钉钉群机器人。
image

优势和挑战

将钉钉群机器人接入ChatGPT可以增加用户互动、提高工作效率、拓展业务场景等,但也会带来一些问题,例如网络延迟、数据安全、内容质量等,另外,可以在一些方面增加实践,例如优化对话流程、监控性能指标、处理异常情况等。