feat(workflow): add edge-tool routing and realtime runtime
This commit is contained in:
@@ -227,6 +227,7 @@ def bind_realtime_pipeline_events(
|
||||
transport,
|
||||
worker,
|
||||
realtime,
|
||||
brain,
|
||||
text_input,
|
||||
greeting: str,
|
||||
) -> None:
|
||||
@@ -251,10 +252,16 @@ def bind_realtime_pipeline_events(
|
||||
await queue_transcript("user", user_input.text)
|
||||
if user_input.run_immediately and user_input.interrupt:
|
||||
await realtime.interrupt()
|
||||
await realtime.send_text(
|
||||
user_input.text,
|
||||
run_immediately=user_input.run_immediately,
|
||||
handled = (
|
||||
await brain.on_user_turn_end(user_input.text)
|
||||
if brain.spec.type == "workflow"
|
||||
else False
|
||||
)
|
||||
if not handled:
|
||||
await realtime.send_text(
|
||||
user_input.text,
|
||||
run_immediately=user_input.run_immediately,
|
||||
)
|
||||
await worker.queue_frame(
|
||||
OutputTransportMessageUrgentFrame(
|
||||
message={
|
||||
@@ -267,6 +274,8 @@ def bind_realtime_pipeline_events(
|
||||
|
||||
@transport.event_handler("on_client_connected")
|
||||
async def on_client_connected(_transport, _client):
|
||||
await brain.on_connected(greeting_pending=bool(greeting))
|
||||
await brain.on_client_ready()
|
||||
if greeting:
|
||||
await realtime.speak(greeting)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user