智能体回调

智能体回调允许您的应用在特定事件发生时自动触发预设的操作或响应。通过阅读本文,您可以了解如何使用智能体回调。

功能概述

当智能体在运行过程中触发某些事件时,阿里云将主动向您的服务器发送请求。在接收到回调请求后,您可以添加相应的业务逻辑处理。

配置智能体回调

  1. 登录智能融媒体控制台

  2. 在左侧导航栏,选择智能生产制作 > AI实时互动 > 智能体管理,选择您所需要配置的智能体,单击右侧操作列管理

    image

  3. 单击回调配置页签,开启智能体回调配置。

  4. 配置回调地址和鉴权Token(可选)。

    image

    说明

    在配置鉴权Token后,您可以在Header的Authorization字段中获取该Token。

回调消息体字段说明

名称

类型

必填

描述

示例值

aiAgentId

String

智能体ID

xxxxx

instanceId

String

智能体实例的唯一ID

39f8e0bc005e4f309379701645f4****

event

String

事件类型:

  • agent_start

  • agent_stop

  • error

  • session_start

agent_start

code

String

服务状态码

1001

message

String

具体回调信息

User has been kicked from the room

timestamp

String

时间戳,表示回调事件的发生时间

2023-10-01T12:00:00Z

userData

String

用户自定义信息

extendData

String

定制化扩展信息

消息体示例:

{
    "aiAgentId":"0d31c************b3c787",
    "instanceId":"39f8e0bc005e4f309379*********",
    "event":"agent_start",
    "code":1001,
    "message":"User has been kicked from the room",
    "timestamp":"2023-10-01T12:00:00Z"
}

Server 示例

Python

from aiohttp import web
import json
from loguru import logger

async def handle_post(request):
    """
    处理POST请求并记录接收到的数据。
    """
    # 获取请求头中的Authorization
    authorization_header = request.headers.get('Authorization')
    if authorization_header is None or not authorization_header.startswith('Bearer fixed-token'):
        logger.error("Unauthorized request")
        return web.Response(status=401, text='Unauthorized')

    try:
        # 从请求体中获取数据
        callback_data = await request.json()

        logger.info("Parsed JSON data:")
        logger.info(json.dumps(callback_data, indent=4))

        return web.Response(text='Callback received successfully', status=200)
    except json.JSONDecodeError:
        # 如果JSON解析失败,则返回错误响应
        return web.Response(text='Invalid JSON', status=400)

app = web.Application()
app.add_routes([web.post('/', handle_post)])

if __name__ == '__main__':
    web.run_app(app, host='localhost', port=8081) 

回调事件状态码

状态码

回调事件

回调信息

1001

智能体启动

AI Agent starts.

1002

智能体终止

AI Agent ends.

1003

会话建立

Session starts

4001

数字人并发路数超额

Concurrent routes exhausted

4002

智能体被踢出房间

User has been kicked from the room

4003

智能体token有误

Invalid token for the AI agent

4004

智能体订阅音频流失败

Failed to pull stream for the AI agent

4005

第三方ASR失败

error description

4006

数字人服务不可用

Avatar service is not available