You need to enable JavaScript to run this app.
导航
启动智能体 StartVoiceChat
最近更新时间:2024.09.03 11:03:15首次发布时间:2024.07.16 17:04:59

在实时音视频场景中,若你希望启动智能体提供语音聊天服务,可以通过调用此接口实现。

你可以根据需要设定应用标识、房间 ID、订阅用户 ID 以及 ASR、TTS 和 LLM 相关高级配置,个性化定制智能体的行为和交互方式。

注意事项

请求频率:单账号下 QPS 不得超过 60。

前提条件

使用智能体进行对话前,你需要开通 ASR、 TTS 和大模型服务并配置相关策略,详情请参看开通服务

调用接口

关于调用接口的请求结构、公共参数、签名方法、返回结构,参看调用方法

请求说明

  • 请求方式:POST
  • 请求地址:https://rtc.volcengineapi.com?Action=StartVoiceChat&Version=2024-06-01

调试

请求参数

下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数

Query

参数类型是否必选示例值描述
ActionStringStartVoiceChat接口名称。当前 API 的名称为 StartVoiceChat
VersionString2024-06-01接口版本。当前 API 的版本为 2024-06-01

Body

参数类型是否必选示例值描述
AppIdString661e****543cf你的音视频应用的唯一标志,参看获取 AppId
RoomIdStringRoom1房间的 ID,是房间的唯一标志。赋值规则参看参数赋值规范
UserIdStringUser1客户端用户的 UserId。
ConfigObject of Config-ASR、TTS 和 LLM 相关高级配置。

Config

参数类型是否必选示例值描述

BotName

String

audiobot_user1_1611736812853

房间内智能体名称。赋值规则参看参数赋值规范
若不填则默认值为audiobot_$(UserId)_$(unixtimestamp_now)

注意

BotName 与 UserId 取值不能重复。

ASRConfigObject of ASRConfig-流式语音识别相关配置。
TTSConfigObject of TTSConfig-语音合成相关配置。

LLMConfig

Object of LLMConfig

-

大模型相关配置,不同的大模型该参数结构不同:
方舟大模型:ARKLLMConfig
第三方大模型:ThirdPartyLLMConfig

SubtitleConfigObject of SubtitleConfig-房间内字幕相关配置。

ASRConfig

参数类型是否必选示例值描述
AppIdString93****21已开通流式语音服务 的 AppId。
ClusterStringvolcengine_streaming_common具体流式语音识别服务对应的 Cluster ID,可在流式语音服务控制台开通对应服务后查询。
默认为办公-中文的 Cluster ID: volcengine_streaming_common

TTSConfig

参数类型是否必选示例值描述
AppIdString94****11已开通需要的语音合成服务的 AppId。
ClusterStringvolcano_tts具体语音合成服务对应的 Cluster ID。
  • 音频生成-语音合成服务:volcano_tts
  • 大模型音频生成-大模型语音合成服务:volcano_tts
  • 大模型音频生成-大模型声音复刻 2.0 服务:volcano_mega
默认值为音频生成-语音合成服务对应的 Cluster ID: volcano_tts
VoiceTypeStringBV002_streaming具体语音合成服务开通音色 ID。
  • 语音合成服务:所选音色的 Voice_type;
  • 大模型语音合成服务:所选音色的 Voice_type;
  • 大模型声音复刻 2.0 服务:所选音色的声音 ID。
默认值为语音合成服务通用女声音色 Voice_typeBV002_streaming

ARKLLMConfig

参数类型是否必选示例值描述

Mode

String

ArkV3

大模型名称,该参数固定取值: ArkV3

EndPointId

String

epid****212

推理接入点。使用方舟模型时必填。
可参看在线推理创建或查询推理接入点。

注意

EndPointId 与 BotId 任选其一。若同时填写,则 EndPointId 生效。

BotId

String

botid****212

智能体 ID。使用方舟智能体时为必填。
可前往控制台创建或查询智能体 ID。

MaxTokensInteger1024输出文本的最大 token 限制。默认值为 1024
TemperatureInteger0.1采样温度,用于控制生成文本的随机性和创造性,值越大随机性越高。取值范围为(0,1],默认值为 0.1
TopPFloat0.3采样的选择范围,控制输出 token 的多样性。模型将从概率分布中累计概率超过该取值的标记中进行采样,以确保采样的选择范围不会过宽,值越大输出的 token 类型越丰富。 取值范围为[0,1],默认值为 0.3

SystemMessages

Array of String

["你是小宁,性格幽默又善解人意。你在表达时需简明扼要,有自己的观点。"]

大模型 System 角色预设指令,可用于控制模型输出。

UserMessagesArray of String["user:\"你是谁\"", "assistant:\"我是问答助手\"","user:\"你能干什么\"","user:\"我能回答问题\""]大模型 User 角色预设 Prompt,可用于增强模型的回复质量,模型回复时会优先参考此处内容。

HistoryLength

Integer

3

历史问题轮数。默认值为 3
在调用该接口时需要确保所有 UserMessageSystemMessage 消息文本总长度小于大模型上下文长度。
例如:历史问题轮数为 3,使用 Skylark2-lite-8k 大模型,预设 SystemMessageUserMessage 各两条,询问第 10 个问题时,需保证预设的两条 SystemMessage、预设的两条 UserMessage 与第八、九、十条问题的总长度之和不得超过 8k。

WelcomeSpeechStringHello智能体启动后的欢迎词。

ThirdPartyLLMConfig

参数类型是否必选示例值描述

Mode

String

CustomLLM

大模型名称。使用第三方大模型时,该参数固定取值: CustomLLM

URL

String

https: test.com

第三方大模型 URL,需要使用 HTTPS 域名。
关于第三方大模型 URL 接口规范和验证工具,请联系技术支持。

注意

如需使用 http 域名进行测试,Feature 参数的值必须为{\"Http\":true},且此时 Qos 无法保证。

ModelNameStringmoonshot第三方大模型名称。
APIKeyStringpat*****123231Bearer Token 认证方式的大模型 token。
MaxTokensInteger1024输出文本的最大 token 限制。默认值为 1024
TemperatureInteger0.1采样温度,用于控制生成文本的随机性和创造性,值越大随机性越高。取值范围为(0,1],默认值为 0.1
TopPFloat0.3采样的选择范围,控制输出 token 的多样性。模型将从概率分布中累计概率超过该取值的标记中进行采样,以确保采样的选择范围不会过宽,值越大输出的 token 类型越丰富。 取值范围为[0,1],默认值为 0.3

SystemMessages

Array of String

["你是小宁,性格幽默又善解人意。你在表达时需简明扼要,有自己的观点。"]

大模型 System 角色预设指令,可用于控制模型输出。

UserMessagesArray of String["user:\"你是谁\"", "assistant:\"我是问答助手\"","user:\"你能干什么\"","user:\"我能回答问题\""]大模型 User 角色预设 Prompt,可用于增强模型的回复质量,模型回复时会优先参考此处内容。
HistoryLengthInteger3历史问题轮数。默认值为 3
在调用该接口时需要确保所有 UserMessageSystemMessage 消息文本总长度小于大模型上下文长度。
例如:历史问题轮数为 3,使用 Skylark2-lite-8k 大模型,预设 SystemMessageUserMessage 各两条,询问第 10 个问题时,需保证预设的两条 SystemMessage、预设的两条 UserMessage 与第八、九、十条问题的总长度之和不得超过 8k。
WelcomeSpeechStringHello智能体启动后的欢迎词。
FeatureString{\"Http\":true}该参数固定取值:{\"Http\":true},表示使用 HTTP 域名进行测试。

SubtitleConfig

参数类型是否必选示例值描述
DisableRTSSubtitleBooleanfalse是否关闭房间内字幕回调。
  • true:关闭字幕。
  • false:开启字幕。
默认值为 false。字幕功能详细说明参看实时字幕
ServerMessageUrlStringhttps://example-domain.com/vertc/subtitle接受字幕结果的 URL 地址。
接收结果的 URL 必须以域名开头。如果 URL 为 HTTPS 域名,请确保该域名 SSL 证书合法且完整。
ServerMessageUrlServerMessageSignature 均填写正确才能开启服务端字幕功能。
ServerMessageSignatureStringb46ab5f1d8ad6a鉴权签名。
你可传入该鉴权参数,在接收到字幕结果后,与结果中的signature字段值进行对比以进行鉴权验证。

返回参数

本接口无特有的返回参数。公共返回参数请见返回结构
其中返回值 Result 仅在请求成功时返回 ok,失败时为空。

请求示例

  • 使用方舟大模型时:
POST https://rtc.volcengineapi.com?Action=StartVoiceChat&Version=2024-06-01
{
    "AppId": "661e****543cf",
    "RoomId": "Room1",
    "UserId": "User1",
    "Config": {
        "BotName": "audiobot_user1_1611736812853",
        "ASRConfig": {
            "AppId": "93****21",
            "Cluster": "volcengine_streaming_common"
        },
        "TTSConfig": {
            "AppId": "94****11",
            "Cluster": "volcano_tts",
            "VoiceType": "BV002_streaming"
        },
        "LLMConfig": {
            "Mode": "ArkV3",
            "EndPointId": "epid****212",
            "MaxTokens": 1024,
            "Temperature": 0,
            "TopP": 0.3,
            "SystemMessages": [
                "你是小宁,性格幽默又善解人意。你在表达时需简明扼要,有自己的观点。"
            ],
            "UserMessages": [
                "user:\"你是谁\"",
                "assistant:\"我是问答助手\"",
                "user:\"你能干什么\"",
                "user:\"我能回答问题\""
            ],
            "HistoryLength": 3,
            "WelcomeSpeech": "Hello"
        }
    }
}
  • 使用第三方大模型时:
POST https://rtc.volcengineapi.com?Action=StartVoiceChat&Version=2024-06-01
{
    "AppId": "661e****543cf",
    "RoomId": "Room1",
    "UserId": "User1",
    "Config": {
        "BotName": "audiobot_user1_1611736812853",
        "ASRConfig": {
            "AppId": "93****21",
            "Cluster": "volcengine_streaming_common"
        },
        "TTSConfig": {
            "AppId": "94****11",
            "Cluster": "volcano_tts",
            "VoiceType": "BV002_streaming"
        },
        "LLMConfig": {
            "Mode": "CustomLLM",
            "URL": "https:test.com",
            "MaxTokens": 1024,
            "Temperature": 0,
            "TopP": 0.3,
            "SystemMessages": [
                "你是小宁,性格幽默又善解人意。你在表达时需简明扼要,有自己的观点。"
            ],
            "UserMessages": [
                "user:\"你是谁\"",
                "assistant:\"我是问答助手\"",
                "user:\"你能干什么\"",
                "user:\"我能回答问题\""
            ],
            "HistoryLength": 3,
            "WelcomeSpeech": "Hello"
        }
    }
}

返回示例

{
    "Result": "ok",
    "ResponseMetadata": {
        "RequestId": "20230****10420",
        "Action": "StartVoiceChat",
        "Version": "2024-06-01",
        "Service": "rtc",
        "Region": "cn-north-1"
        }
}