Merge pull request #4211 from pipecat-ai/pk/openai-responses-websocket-service-refactor

Introduce WebsocketLLMService and refactor OpenAIResponsesLLMService …
This commit is contained in:
kompfner
2026-03-31 13:02:45 -04:00
committed by GitHub
5 changed files with 295 additions and 155 deletions

View File

@@ -84,6 +84,10 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
llm.register_function("get_current_weather", fetch_weather_from_api)
llm.register_function("get_restaurant_recommendation", fetch_restaurant_recommendation)
@llm.event_handler("on_connection_error")
async def on_connection_error(service, error):
logger.error(f"LLM connection error: {error}")
@llm.event_handler("on_function_calls_started")
async def on_function_calls_started(service, function_calls):
# Avoid appending this filler message to the LLM context — it would

View File

@@ -102,9 +102,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await task.queue_frames([LLMRunFrame()])
await asyncio.sleep(10)
logger.info("Updating OpenAI LLM settings: temperature=0.1")
logger.info("Updating OpenAI LLM settings: temperature=1")
await task.queue_frame(
LLMUpdateSettingsFrame(delta=OpenAIResponsesLLMService.Settings(temperature=0.1))
# Known OpenAI Python issue (as of 2026-03-31): setting temperature
# to non-integer value results in failure.
# https://github.com/openai/openai-python/issues/2919
LLMUpdateSettingsFrame(delta=OpenAIResponsesLLMService.Settings(temperature=1))
)
@transport.event_handler("on_client_disconnected")