-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
pipecat version
0.0.104
Python version
3.12.12
Operating System
mac OS Apple M4 Pro
Issue description
- set_tool_choice() exists on LLMContext (line 351) and stores the value correctly
- OpenAI adapter reads it → context.tool_choice at line 67 → passes to OpenAI API → works
- Gemini adapter ignores it → GeminiLLMInvocationParams has no tool_choice field, get_llm_invocation_params() never reads context.tool_choice
- Gemini Live _connect() builds LiveConnectConfig from the adapter output → only gets system_instruction and tools → no tool_choice propagated
The set_tool_choice setter method IS real and functional - but the Gemini adapter simply doesn't extract it from context. It's a gap in pipecat's Gemini integration. The OpenAI path uses it; the Gemini path doesn't. Your first_user_turn_done handler-level gate is still the correct workaround for Gemini Live.
Reproduction steps
Just use
Expected behavior
Used 'tool_choice in LLMContext for Gemini Native live audio model
Actual behavior
tool_choice not settable
Logs
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels