创建 RTC AI 任务

更新时间: 2024/11/19 17:49:48

调用该接口创建一个 RTC AI 任务,提供 AI 智能体与用户之间音视频通话服务。该任务支持用户按需设置 AI 能力模块(例如自动语音识别 ASR、语音转文字 TTS、大语言模型 LLM)参数,个性化定制用户专属的 AI 智能体。

功能说明

您可以通过服务端 API 或者客户端 API 发起任务,在任务发起后,网易云信音视频通话通过 AI Service 能力整理参数,并向媒体处理服务器(Media Process Server,MPS)下发任务,启动 AI Pipeline,编解码后的 AI 音视频通过网易云信媒体服务器下发至客户端 SDK(NERTC SDK)。详细流程如下图所示:

服务端 API 调用
流程图.png
客户端 API 调用
流程图-client.png

客户端 API 调用示例请参考 基于 RTC SDK 实现音视频 AI 数字人互动

请求信息

请求 URL

服务端 API 调用
  • 请求方法:POST
  • URL:https://rtc-ai.netease.im/v1/api/task/create
客户端 API 调用
  • 请求方法:POST
  • URL:https://rtc-ai.netease.im/ai/task/create

请求头参数

服务端 API 调用

请求头部的参数说明请参考 请求结构

客户端 API 调用
参数名称
类型
是否必选 说明
AppKey String 请登录 网易云信控制台 查看您的应用对应的 AppKey,具体请参考 创建应用并获取 AppKey
Token String 客户端向用户服务器请求并获取的 Token,具体请参考 获取 Token
Cname String 获取 Token 时使用的 channelName,即 RTC 房间名称。
Uid String 获取 Token 时使用的 uid,即用户在您应用中的 ID。

请求体参数

参数名称
类型
是否必选 取值示例 说明
cname String meeting_name111 房间名称。
requestId String f8f274c1-0e9f-4583-a243-c61c06a19475 任务 ID。您可以设置为随机字符串,用于问题排查。
taskType Int 7 AI 任务类型。如果是语音助手,取值固定为 7。
- data Object - 创建的 AI 任务具体信息。
- asr Object - ASR AI 任务参数信息。
asrVendor Int 0 ASR 供应商。
取值请参考下文 AI 供应商
srcLan String AUTO ASR 源语言。默认值为 AUTO。取值:
  • AUTO:中/英文
  • CN:中文
  • EN:英文
  • JA:日语
  • KO:韩语
  • TH:泰语
- llm Object - LLM AI 任务参数信息。
llmVendor Int 0 LLM 供应商。
取值请参考下文 AI 供应商
role Int 0 LLM 角色。
取值请参考下文 LLM 角色设定说明
customPrompt String 您是一个语音助手 LLM 自定义角色提示词(prompt)。
取值请参考下文 LLM 角色设定说明
customPromptKeyWord Object - LLM 自定义角色 prompt 的关键词。
取值请参考下文 LLM 角色设定说明
customPromptFormat String - LLM 自定义角色合成的 prompt 模板。
取值请参考下文 LLM 角色设定说明
temperature Int - LLM 温度配置。取值范围为 [0, 1],默认为 0.8。
contextSize Int - LLM 关联上下文大小(组)。取值范围 (0, 20],默认为 3 组对话。
enableVision Bool - 是否开启 LLM 视觉。默认为 false。
目前仅在 OpenAI 供应商下支持。
- tts Object - TTS AI 任务参数信息。
ttsVendor Int 0 TTS 供应商。

取值请参考下文 AI 供应商

voice String xiaoyi TTS 音色名称。
  • 取值需要与您选择的 TTS 供应商对应。
  • languagegender 不为空时,voice 可为空,代表由 MPS 服务器默认选择音色。
language String Chinese TTS 音色语言。voice 为空时,代表由 MPS 服务器根据 languagegender 默认选择音色。取值:
  • 中文 Chinese
  • 英文 English
gender String Female TTS 音色性别。
voice 为空时,代表由 MPS 服务器根据 languagegender 默认选择音色。取值:
  • 女性 Female
  • 男性 Male

  • AI 供应商

    如果设置为 0,则表示由 MPS 服务器默认选择对应模块供应商。

    模块名称 可选供应商取值

    ASR(asrVendor

    • 1:网易有道
    • 4:网易云信自研
    • 6:阿里

    LLM(llmVendor

    • 1:通义千问
    • 2:OpenAI
    • 5:字节跳动豆包

    TTS(ttsVendor

    • 2:网易有道
    • 4:阿里 CosyVoice
    • 5:MiniMax 大模型
    • 6:字节跳动豆包

  • LLM 角色设定

    LLM 角色(role)可通过三种方式设定:

    • 方式一:指定参数 role 为非 0 值,表示使用 RTC-AI Service 服务器预设角色的提示词(Prompt)。

      编号 角色取值
      1 语音助手
      2 中文老师
      3 英文老师
      4 医生
      5 导演
      6 心理咨询师
      7 儿童教育专家
      8 电商带货主播
      9 产品介绍员
      10 银行业务办理员
      11 会议主持人
      12 新闻主持人
      13 诸葛亮
      14 女友小乐
    • 方式二:指定参数 role0 值或置空,自定义 customPrompt

    • 方式三:指定参数 role0 值或置空,自定义 customPromptKeyWordcustomPromptFormat,由 MPS 服务器组装合成 prompt。示例:

      JSON"customPromptKeyWord": {
          "name": "AI 女友小乐",
          "sex": "女生",
          "age": "24 岁",
          "hobby": "旅游、小说、追星",
          "characteristic": "体贴、乖巧、善解人意的,女朋友,日常嘘寒问暖,在生活中提供情绪价值"
      };
      "customPromptFormat": "当前角色: {{name}}\n
                          性别: {{sex}}\n
                          年龄: {{age}} \n
                          兴趣爱好: {{hobby}}\n
                          其他特征: {{characteristic}}"
      

请求体示例

JSON{
    "cname": "meeting_name111",
    "requestId": "f8f274c1-0e9f-4583-a243-c61c06a19475",
    "taskType": 7,
    "data": {
        "asr": {
            "asrVendor": 1
        },
        "llm": {
            "llmVendor": 2,
            "role": 0,
            "customPrompt": "作为网易云信的智能语音助手.....",
            "temperature": 0.8,
            "contextSize": 3
        },
        "tts": {
            "ttsVendor": 4,
            "voice": "longhao",
            "language": "Chinese",
            "gender": "Male"
        }
    }
}

响应信息

响应参数

参数名称
类型 示例 说明
code int 200 状态码,200 表示成功,具体请参考下文状态码
request_id String f8f274c1-0e9f-4583-a243-c61c06a19475 请求的唯一标识。
cid Number 1144707127429101 房间 ID。
- result Object - 创建任务结果
taskId String 2a784467d647bb87b60b719f6fa56333 任务唯一标识符,房间内唯一。

响应体示例

JSON "code": 200,
    "requestId": "f8f274c1-0e9f-4583-a243-c61c06a19475",
    "cid": 1144707127429101,
    "result": {
        "taskId": "2a784467d647bb87b60b719f6fa56333"
}

状态码

  • 成功返回 code:返回内容中,code200 表示调用正常。
  • 异常返回 code:若 code 为其他值,请根据 codeerrmsg错误码和状态码 查看问题原因。
此文档是否对你有帮助?
有帮助
去反馈
  • 功能说明
  • 请求信息
  • 请求 URL
  • 请求头参数
  • 请求体参数
  • 请求体示例
  • 响应信息
  • 响应参数
  • 响应体示例
  • 状态码