链载Ai

标题: 4o-realtime API调用分析 [打印本页]

作者: 链载Ai    时间: 昨天 11:45
标题: 4o-realtime API调用分析


4o-realtime相关的类主要有以下三个:

RealtimeAPI Class、RealtimeConversation Class、RealtimeClient Class,调用逻辑示意图如下:

调用流程示例:

示例:用户查询订单状态

  1. 客户端发送音频数据

awaitrealtime_client.append_input_audio(audio_chunk)


2.RealtimeClient处理音频数据

awaitself.realtime.send("input_audio_buffer.append",{"audio":array_buffer_to_base64(np.array(audio_chunk))})


3.服务器处理请求并返回响应

  1. RealtimeAPI分发事件

async for message in self.ws:
event = json.loads(message)
self.dispatch(f"server.{event['type']}", event)
self.dispatch("server.*", event)


5.RealtimeClient处理服务器响应

item, delta = self.conversation.process_event(event)
if item:
self.dispatch("conversation.updated", {"item": item, "delta": delta})


6.RealtimeConversation管理对话状态

def process_event(self, event, *args):
event_processor = self.EventProcessors.get(event['type'])
if not event_processor:
raise Exception(f"Missing conversation event processor for {event['type']}")
return event_processor(self, event, *args)


7.客户端接收并播放响应

awaitcl.context.emitter.send_audio_chunk(cl.OutputAudioChunk(mimeType="pcm16",data=audio,track=cl.user_session.get("track_id")))

使用协议说明:


示例:用户通过文本查询订单状态

  1. 客户端发送文本数据

awaitrealtime_client.send_user_message_content([{"type":"text","text":"我的订单状态是什么?"}])


2.RealtimeClient处理文本数据

await self.realtime.send("conversation.item.create", {
"item": {
"type": "message",
"role": "user",
"content": [{"type": "text", "text": "我的订单状态是什么?"}]
}
})


3.服务器处理请求并返回响应

  1. RealtimeAPI分发事件

async for message in self.ws:
event = json.loads(message)
self.dispatch(f"server.{event['type']}", event)
self.dispatch("server.*", event)


5.RealtimeClient处理服务器响应

item, delta = self.conversation.process_event(event)
if item:
self.dispatch("conversation.updated", {"item": item, "delta": delta})


6.RealtimeConversation管理对话状态

def process_event(self, event, *args):
event_processor = self.EventProcessors.get(event['type'])
if not event_processor:
raise Exception(f"Missing conversation event processor for {event['type']}")
return event_processor(self, event, *args)


7.客户端接收并显示响应

awaitcl.context.emitter.send_text_message(cl.OutputTextMessage(content=response_text))

使用协议说明:







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5