钉钉这边使用魔法棒AI助理的时候都有那种流推送的功能,但是我们看了文档跟示例以及代码里头都没有关于流推送的这种功能,都是一句一句消息回复的,想要问一下,需要做这种流推送回复的机器人要怎么弄呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在钉钉中实现流推送回复的机器人功能,可以通过以下步骤完成。以下是详细的配置和实现方法:
首先需要创建一个钉钉应用,并获取相关的凭证信息,包括 Client ID
和 Client Secret
,这些信息将用于后续的连接流配置。
Client ID
和 Client Secret
。钉钉机器人通过卡片消息支持流式返回结果,因此需要创建一个卡片模板供消息发送使用。
创建卡片后,需要为应用授予发送卡片消息的权限。
Card.Streaming.Write
Card.Instance.Write
通过 AppFlow(钉钉连接流)可以将大模型应用与钉钉连接起来,从而实现流推送功能。
Client ID
和 Client Secret
,并设置自定义凭证名称。WebhookUrl
并点击发布。有了 WebhookUrl
后,可以在钉钉应用中配置机器人以支持流推送回复。
WebhookUrl
填入机器人配置中。为了实现流推送功能,需要在后端服务中处理实时语音或文本数据,并通过 Webhook 推送至钉钉机器人。
initialize
方法初始化推流通道,确保参数正确配置,例如 workspace
、app_key
、token
等。let ret = sdkInstance.initialize(callback, parameters, logLevel, saveLog);
if (ret !== 0) {
console.error("SDK 初始化失败,错误码:", ret);
}
startDialog
接口开启监听,并通过 updateAudio
接口持续推送音频数据。sdkInstance.startDialog(Constants.VadMode.TYPE_P2T, dialogParams);
audioCapturer.on('readData', (buffer) => {
sdkInstance.updateAudio(buffer, false);
});
示例代码:
sdkInstance.on('SentenceBegin', (event) => {
console.log("句子开始:", event.payload.index);
});
sdkInstance.on('TranscriptionResultChanged', (event) => {
console.log("识别结果变化:", event.payload.result);
});
sdkInstance.on('SentenceEnd', (event) => {
console.log("句子结束:", event.payload.result);
});
如果需要记录 AI 助理的对话日志,可以通过 AppFlow 添加日志节点,将对话内容存储到阿里云日志服务中。
通过以上步骤,您可以成功实现钉钉机器人支持流推送回复的功能。