Akhil
3b3c7aa8cc
LLMAssistantAggregator: preserve non-ASCII characters in JSON output
...
Add ensure_ascii=False to json.dumps() calls for tool call arguments
and function call results to prevent unnecessary unicode escaping.
2026-01-22 15:37:44 -06:00
Mark Backman
11924bb980
Add on_user_mute_started and on_user_mute_stopped events
2026-01-17 11:01:46 -05:00
Mark Backman
1485ea0831
Merge pull request #3488 from pipecat-ai/mb/on-user-turn-idle
...
Update on_user_idle to on_user_turn_idle
2026-01-17 11:00:16 -05:00
Mark Backman
1e1160906e
Update on_user_idle to on_user_turn_idle
2026-01-17 07:04:27 -05:00
Aleix Conchillo Flaqué
f7d3e63063
Merge pull request #3474 from pipecat-ai/fix/optional-member-access-function-call-cancel
...
Fix Pylance reportOptionalMemberAccess in _handle_function_call_cancel
2026-01-16 22:06:45 -08:00
Mark Backman
2e8e574ea5
Add UserIdleController, deprecate UserIdleProcessor
2026-01-16 18:44:19 -05:00
James Hush
1c13ad95a5
Fix Pylance reportOptionalMemberAccess in _handle_function_call_cancel
...
Extract dictionary value to local variable and check for None before
accessing cancel_on_interruption attribute, since the dictionary values
are typed as Optional[FunctionCallInProgressFrame].
2026-01-16 15:04:26 -05:00
Aleix Conchillo Flaqué
c7ab87b0cc
turns: move mute to user_mute
2026-01-16 11:07:20 -08:00
Aleix Conchillo Flaqué
0d6bdbee10
LLMContextAggregatorPair: make strategy logs less verbose
2026-01-13 15:11:22 -08:00
Aleix Conchillo Flaqué
1ab3bf2ef6
LLMContextAggregatorPair: instances can now return a tuple
2026-01-13 14:01:53 -08:00
Aleix Conchillo Flaqué
e268c73c41
LLMAssistantAggregator: cache function call requested images
2026-01-13 12:10:08 -08:00
Aleix Conchillo Flaqué
ec20d72aba
LLMAssistantAggregator: reset aggregation after adding the thought, not before
2026-01-12 09:18:13 -08:00
Aleix Conchillo Flaqué
25f6ba76d6
add start timestamp to user and assistant turn messages
2026-01-09 09:50:21 -08:00
Aleix Conchillo Flaqué
119fab2996
LLMAssistantAggregator: allow thought aggregation without appending to context
2026-01-09 09:42:41 -08:00
Aleix Conchillo Flaqué
38d354c4ed
LLMAssistantAggregator: add assistant turn and thought events
2026-01-09 09:42:41 -08:00
Aleix Conchillo Flaqué
cdb1074e11
LLMAssistantAggregator: no need to use BotStoppedSpeakingFrame
...
The end of turn is already handle with interruptions or with
LLMFullResponseEndFrame. LLMFullResponseEndFrame should never be blocked,
otherwise the assistant would not work.
2026-01-09 09:42:41 -08:00
Aleix Conchillo Flaqué
4b61fd2d7d
LLMUserAggregator: add user turn stopped message argument
...
It is now possible to get the user aggregation when a `on_user_turn_stopped`
event is emitted.
2026-01-09 09:42:41 -08:00
Aleix Conchillo Flaqué
3d54ca0a7c
LLMUserAggregator: user UserTurnController for user turn management
2026-01-09 09:21:28 -08:00
Aleix Conchillo Flaqué
2626154a64
update examples and tests copyright and use a proper dash in 2024-2026
2026-01-07 19:32:22 -08:00
Mark Backman
98f70b775f
Update copyright date range to 2024-2026
2026-01-07 16:58:13 -05:00
Aleix Conchillo Flaqué
66a9dc70c7
LLMUserAggregator: fix turn strategies renaming
2025-12-30 20:59:48 -08:00
Aleix Conchillo Flaqué
846ca500d3
turns: update old turn_start_strategies deprecations
2025-12-30 19:50:10 -08:00
Aleix Conchillo Flaqué
eb5a797b12
turns: rename bot turn start to user turn stop strategies
2025-12-30 14:33:58 -08:00
Aleix Conchillo Flaqué
0a0ab51cc7
LLMUserAggregator: also read deprecated allow_interruptions
2025-12-29 17:57:18 -08:00
Aleix Conchillo Flaqué
ffbbb1b3f5
turns(user): add support for enabling/disabling interruptions
2025-12-29 17:00:03 -08:00
Aleix Conchillo Flaqué
c8f47b4b22
turns: add UserTurnStartedParams and BotTurnStartedParams
2025-12-29 14:32:08 -08:00
Aleix Conchillo Flaqué
46db8e58d6
LLMUserAggregator: fix backwards compatibility with ExternalTurnStartStrategies
2025-12-29 10:17:35 -08:00
Aleix Conchillo Flaqué
c821e9f8fd
turns: add external user and bot turn start strategies
...
External strategies are strategies where the logic for user turn start and turn
end come from a different processors (e.g. an STT).
2025-12-29 10:17:35 -08:00
Aleix Conchillo Flaqué
5496aa722f
turns: simplify imports and don't require full strategy module path
2025-12-28 16:20:15 -08:00
Aleix Conchillo Flaqué
8b861d9143
LLMUserAggregator: move turn_start_strategies from PipelineTask
2025-12-28 08:16:34 -08:00
Aleix Conchillo Flaqué
0abaae2f07
LLMUserAggregator: no need to reset strategies
...
Turn start strategies are already reset when triggered, so there's no need to
reset them again.
2025-12-24 11:08:43 -08:00
Aleix Conchillo Flaqué
c33c8d2195
LLMUserAggregator: add support for user mute strategies
2025-12-24 11:08:43 -08:00
Aleix Conchillo Flaqué
1f0357ae5e
LLMUserAggregator: add bot turn start strategies timeout fallback
2025-12-23 15:42:57 -08:00
Aleix Conchillo Flaqué
4017bfa769
LLMUserAggregator: improve turn_analyzer warning
2025-12-22 21:44:49 -08:00
Aleix Conchillo Flaqué
b5fe1c9cd8
fix old interruption/speaking strategies docstrings
2025-12-22 16:19:25 -08:00
Aleix Conchillo Flaqué
5816f960cc
LLMUserAggregator: add on_user_turn_started/on_bot_turn_started events
2025-12-19 14:47:02 -08:00
Aleix Conchillo Flaqué
9bf6668b52
LLMUserAggregator: show error if using turn analyzer in transport
2025-12-19 14:47:02 -08:00
Aleix Conchillo Flaqué
c9048d3a0f
LLMUserAggregator: prevent consecutive user/bot turn starts
2025-12-19 14:47:02 -08:00
Aleix Conchillo Flaqué
169fc0b568
frames: deprecate emulated field in UserStartedSpeakingFrame/UserStoppedSpeakingFrame
2025-12-19 14:47:02 -08:00
Aleix Conchillo Flaqué
a9cca0b934
LLMAssistantAggregatorParams: copy to llm_response_universal
2025-12-19 14:47:02 -08:00
Aleix Conchillo Flaqué
dff6b5402a
LLMUserAggregator: use TranscriptionUserTurnStartStrategy for emulated interruptions
2025-12-19 14:47:02 -08:00
Aleix Conchillo Flaqué
a388ff927c
LLMUserAggregator: broadcast user started/stopped speaking frames
2025-12-19 14:47:02 -08:00
Aleix Conchillo Flaqué
c4c4b4107b
TurnAnalyzerBotTurnStartStrategy: broadcast SpeechControlParamsFrame
2025-12-19 14:47:02 -08:00
Aleix Conchillo Flaqué
d33c72a8b0
LLMUserAggregator: allow external user started/stopped speaking frames
2025-12-19 14:47:01 -08:00
Aleix Conchillo Flaqué
223052e6e7
LLMUserAggregator: use new user and bot turn start strategies
2025-12-19 14:47:01 -08:00
Paul Kompfner
54926f390d
Make image writing to and reading from LLMContext more robust; let's allow storing in context image types other than JPEG, meaning not lossily and unnecessarily re-encoding non-JPEG images as JPEG.
2025-12-15 10:39:36 -05:00
Paul Kompfner
e604e9b490
Support conversations with Gemini 3 Pro Image (model "gemini-3-pro-image-preview").
...
Prior to this change, after the model generated an image the conversation would not be able to progress. It would stall out because we were never storing the image in context, so the model would never realize it already did the work of generating an image. We didn't run into issues with Gemini 2.5 Flash Image, because that model always followed up an image with a text message.
2025-12-12 18:20:17 -05:00
Paul Kompfner
64471d65f8
Clean up logic related to applying Gemini thought signatures to context messages
2025-12-12 12:53:11 -05:00
Paul Kompfner
7e92597c0e
Remove LLMThoughtSignatureFrame in favor of using the more generic LLMMessagesAppendFrame
2025-12-08 11:10:05 -05:00
Paul Kompfner
17203ba3e6
Change FunctionInProgressFrame.llm_specific_extra to a more generic FunctionInProgressFrame.append_extra_context_messages.
2025-12-08 10:50:19 -05:00