多模态直播

Multimodal Live API 是一款低延迟的双向流式传输 API,支持音频和视频流式传输输入,并且可以输出多模态输出流(音频和文本)。

参数列表

BidiGenerateContentClientContent

从客户端传送的当前对话的增量更新。此处的所有内容都会无条件附加到对话历史记录中,并作为向模型发出的提示的一部分来生成内容。

此处显示消息会中断任何当前的模型生成。

字段
turns[]

Content

可选。附加到与模型的当前对话的内容。

对于单轮询问,这是一个实例。对于多轮询问,此字段是重复字段,包含对话记录和最新请求。

turn_complete

bool

可选。如果为 true,则表示服务器内容生成应从当前累积的提示开始。否则,服务器会等待其他消息,然后再开始生成。

BidiGenerateContentClientMessage

客户端在 BidiGenerateContent 调用中发送的消息。

字段
联合字段 message_type。消息的类型。message_type 只能是下列其中一项:
setup

BidiGenerateContentSetup

可选。在第一条(也是唯一一条)客户端消息中发送的会话配置。

client_content

BidiGenerateContentClientContent

可选。从客户端传送的当前对话的增量更新。

realtime_input

BidiGenerateContentRealtimeInput

可选。实时发送的用户输入。

tool_response

BidiGenerateContentToolResponse

可选。对从服务器收到的 ToolCallMessage 的响应。

BidiGenerateContentRealtimeInput

实时发送的用户输入。

这与 BidiGenerateContentClientContent 在以下几个方面有所不同:

  • 可以连续发送,不会中断模型生成。
  • 如果需要混合在 BidiGenerateContentClientContentBidiGenerateContentRealtimeInput 中交错的数据,服务器会尝试进行优化以获得最佳响应,但无法保证。
  • 未明确指定转换结束时间,而是从用户活动(例如语音结束)派生而来。
  • 即使在对话结束之前,系统也会增量处理数据,以便优化模型快速开始响应。
  • 始终是实时发送的直接用户输入。可以连续发送,不会中断。该模型会自动检测用户语音的开头和结尾,并相应地开始或终止流式传输响应。系统会在数据到达后逐步进行处理,从而最大限度地减少延迟时间。
字段
media_chunks[]

Blob

可选。媒体输入的内嵌字节数据。

BidiGenerateContentServerContent

模型为响应客户端消息而生成的增量服务器更新。

内容会尽快生成,但不是实时生成。客户端可以选择缓冲并实时播放。

字段
turn_complete

bool

仅限输出。如果为 true,则表示模型已生成完毕。系统仅会在响应其他客户端消息时开始生成。可与 content 一起设置,表示 content 是轮次中的最后一个。

interrupted

bool

仅限输出。如果为 true,则表示客户端消息中断了当前的模型生成。如果客户端正在实时播放内容,则表示可以停止并清空当前的播放队列。

model_turn

Content

仅限输出。模型在与用户的当前对话中生成的内容。

BidiGenerateContentServerMessage

BidiGenerateContent 调用的响应消息。

字段
联合字段 message_type。消息的类型。message_type 只能是下列其中一项:
setup_complete

BidiGenerateContentSetupComplete

仅限输出。在设置完成后,作为对客户端发送的 BidiGenerateContentSetup 消息的响应而发送。

server_content

BidiGenerateContentServerContent

仅限输出。模型为响应客户消息而生成的内容。

tool_call

BidiGenerateContentToolCall

仅限输出。请求客户端执行 function_calls 并返回包含匹配 id 的响应。

tool_call_cancellation

BidiGenerateContentToolCallCancellation

仅限输出。通知客户应取消之前使用指定 id 签发的 ToolCallMessage

BidiGenerateContentSetup

要在第一条(且仅限第一条)BidiGenerateContentClientMessage 中发送的消息。包含会话期间将应用的配置。

客户端应先等待 BidiGenerateContentSetupComplete 消息,然后再发送任何其他消息。

字段
model

string

必需。模型的资源名称。此 ID 将用作模型的 ID。

格式:models/{model}

generation_config

GenerationConfig

可选。生成配置。

以下字段不受支持:

  • response_logprobs
  • response_mime_type
  • logprobs
  • response_schema
  • stop_sequence
  • routing_config
  • audio_timestamp
system_instruction

Content

可选。用户为模型提供的系统说明。

注意:部分中只能使用文本,并且每个部分的内容将位于单独的段落中。

tools[]

Tool

可选。模型可能用于生成下一个回答的 Tools 列表。

Tool 是一段代码,可让系统与外部系统进行交互,以在模型知识和范围之外执行操作或一组操作。

BidiGenerateContentSetupComplete

此类型没有字段。

作为对客户端发送的 BidiGenerateContentSetup 消息的响应而发送。

BidiGenerateContentToolCall

请求客户端执行 function_calls 并返回包含匹配 id 的响应。

字段
function_calls[]

FunctionCall

仅限输出。要执行的函数调用。

BidiGenerateContentToolCallCancellation

向客户端发送通知,告知之前针对指定 id 签发的 ToolCallMessage 不应执行,应予取消。如果这些工具调用产生了副作用,客户端可能会尝试撤消工具调用。只有在客户端中断服务器转换时,才会出现此消息。

字段
ids[]

string

仅限输出。要取消的工具调用的 ID。

BidiGenerateContentToolResponse

客户端针对从服务器收到的 ToolCall 生成的响应。各个 FunctionResponse 对象会通过 id 字段与相应的 FunctionCall 对象进行匹配。

请注意,在单个调用和服务器流式 GenerateContent API 中,函数调用是通过交换 Content 部分进行的,而在双向 GenerateContent API 中,函数调用是通过这组专用消息进行的。

字段
function_responses[]

FunctionResponse

可选。对函数调用的响应。

另请参阅