Refactoring to use the observer inside the pipelinetask, and moving to start the bot inside on_client_ready.

This commit is contained in:
Filipi Fuchter
2025-06-06 17:22:50 -03:00
parent 82935884c4
commit 1e74476a71
2 changed files with 8 additions and 10 deletions

View File

@@ -54,7 +54,6 @@ async def run_bot(websocket_client):
llm = GeminiMultimodalLiveLLMService( llm = GeminiMultimodalLiveLLMService(
api_key=os.getenv("GOOGLE_API_KEY"), api_key=os.getenv("GOOGLE_API_KEY"),
voice_id="Puck", # Aoede, Charon, Fenrir, Kore, Puck voice_id="Puck", # Aoede, Charon, Fenrir, Kore, Puck
transcribe_user_audio=True,
transcribe_model_audio=True, transcribe_model_audio=True,
system_instruction=SYSTEM_INSTRUCTION, system_instruction=SYSTEM_INSTRUCTION,
) )
@@ -87,20 +86,20 @@ async def run_bot(websocket_client):
pipeline, pipeline,
params=PipelineParams( params=PipelineParams(
allow_interruptions=True, allow_interruptions=True,
observers=[RTVIObserver(rtvi)],
), ),
observers=[RTVIObserver(rtvi)],
) )
@rtvi.event_handler("on_client_ready") @rtvi.event_handler("on_client_ready")
async def on_client_ready(rtvi): async def on_client_ready(rtvi):
logger.info("Pipecat client ready.") logger.info("Pipecat client ready.")
await rtvi.set_bot_ready()
# Kick off the conversation.
await task.queue_frames([context_aggregator.user().get_context_frame()])
@ws_transport.event_handler("on_client_connected") @ws_transport.event_handler("on_client_connected")
async def on_client_connected(transport, client): async def on_client_connected(transport, client):
logger.info("Pipecat Client connected") logger.info("Pipecat Client connected")
await rtvi.set_bot_ready()
# Kick off the conversation.
await task.queue_frames([context_aggregator.user().get_context_frame()])
@ws_transport.event_handler("on_client_disconnected") @ws_transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client): async def on_client_disconnected(transport, client):

View File

@@ -47,7 +47,6 @@ async def run_bot_websocket_server():
llm = GeminiMultimodalLiveLLMService( llm = GeminiMultimodalLiveLLMService(
api_key=os.getenv("GOOGLE_API_KEY"), api_key=os.getenv("GOOGLE_API_KEY"),
voice_id="Puck", # Aoede, Charon, Fenrir, Kore, Puck voice_id="Puck", # Aoede, Charon, Fenrir, Kore, Puck
transcribe_user_audio=True,
transcribe_model_audio=True, transcribe_model_audio=True,
system_instruction=SYSTEM_INSTRUCTION, system_instruction=SYSTEM_INSTRUCTION,
) )
@@ -80,20 +79,20 @@ async def run_bot_websocket_server():
pipeline, pipeline,
params=PipelineParams( params=PipelineParams(
allow_interruptions=True, allow_interruptions=True,
observers=[RTVIObserver(rtvi)],
), ),
observers=[RTVIObserver(rtvi)],
) )
@rtvi.event_handler("on_client_ready") @rtvi.event_handler("on_client_ready")
async def on_client_ready(rtvi): async def on_client_ready(rtvi):
logger.info("Pipecat client ready.") logger.info("Pipecat client ready.")
await rtvi.set_bot_ready()
# Kick off the conversation.
await task.queue_frames([context_aggregator.user().get_context_frame()])
@ws_transport.event_handler("on_client_connected") @ws_transport.event_handler("on_client_connected")
async def on_client_connected(transport, client): async def on_client_connected(transport, client):
logger.info("Pipecat Client connected") logger.info("Pipecat Client connected")
await rtvi.set_bot_ready()
# Kick off the conversation.
await task.queue_frames([context_aggregator.user().get_context_frame()])
@ws_transport.event_handler("on_client_disconnected") @ws_transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client): async def on_client_disconnected(transport, client):