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
Mark Backman
9c6d0f1be1
Merge pull request #3322 from gui217/fix/rnnoise_filter_handle_empty_audio
...
Fix/rnnoise filter handle empty audio
2025-12-30 08:39:42 -05:00
gui217
32c3298eff
Apply ruff formatting to test file
2025-12-30 13:39:36 +02:00
gui217
ec5fb392c4
Clean up test comments after rnnoise filter fix
2025-12-30 13:35:13 +02:00
gui217
bad8f8aa51
Fix rnnoise filter to handle empty audio
2025-12-30 13:32:36 +02:00
Aleix Conchillo Flaqué
ffbbb1b3f5
turns(user): add support for enabling/disabling interruptions
2025-12-29 17:00:03 -08:00
Aleix Conchillo Flaqué
e757b4bf6f
tests: added external user and bot turn start strategies
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é
a962c4eeba
STTMuteFilter: use FunctionCallsStartedFrame and support multiple function calls
2025-12-27 13:52:30 -08:00
Aleix Conchillo Flaqué
43fc26cf0e
tests: add user mute strategies tests to user aggregator
2025-12-27 13:49:31 -08:00
Aleix Conchillo Flaqué
5a4236bc71
tests: add user mute strategy tests
2025-12-24 11:08:43 -08:00
Aleix Conchillo Flaqué
ffb5895404
tests: add initial tests for universal LLMUserAggregator
2025-12-23 15:51:06 -08:00
Aleix Conchillo Flaqué
a0d5ee3873
MinWordsUserTurnStartStrategy: single word interrupt if bot not speaking
2025-12-22 14:32:21 -08:00
Aleix Conchillo Flaqué
2cdf207227
turns: add TranscriptionUserTurnStartStrategy
2025-12-19 14:47:02 -08:00
Aleix Conchillo Flaqué
3d62b9c203
tests: added user turn start strategies unit tests
2025-12-19 14:47:01 -08:00
Aleix Conchillo Flaqué
7e69288898
tests: added bot turn start strategies unit tests
2025-12-19 14:47:01 -08:00
Aleix Conchillo Flaqué
6c0e4be4ac
Merge pull request #3205 from gui217/feat/rnnoise
...
Feat/rnnoise
2025-12-17 18:22:22 -08:00
Mark Backman
21a55f6aae
Update run_inference to use the provided LLM configuration params
2025-12-17 10:58:05 -05:00
Mark Backman
6cda357ce8
Remove timestamp check from TestThoughtTranscription
2025-12-12 14:28:39 -05:00
kompfner
1e98094394
Merge pull request #3175 from pipecat-ai/pk/thinking-exploration
...
Additional functionality related to thinking, for Google and Anthropic LLMs.
2025-12-11 17:15:37 -05:00
gui217
1c0e25a90d
fix unit tests
2025-12-09 09:56:20 +02:00
Aleix Conchillo Flaqué
88289f578a
Merge pull request #3208 from pipecat-ai/thor/add-client-identification
...
add Gemini client identification
2025-12-08 13:05:04 -08:00
Aleix Conchillo Flaqué
d289b38ba7
tests(google): mock the new pipecat.version()
2025-12-08 11:51:01 -08:00
Paul Kompfner
61674d7758
Add process_thought constructor argument to TranscriptProcessor to control whether to handle thoughts in addition to assistant utterances. Defaults to False.
2025-12-08 10:27:36 -05:00
Paul Kompfner
8ccc2cbf31
Add unit tests for ThoughtTranscriptProcessor
2025-12-08 10:14:31 -05:00
gui217
d3ae0b6a14
rebase
2025-12-08 11:36:44 +02:00
thorwebdev
15df3c06e8
chore: add test.
2025-12-06 22:36:04 -05:00
Aleix Conchillo Flaqué
7ad3969690
introduce UninterruptibleFrame frames
2025-12-05 09:21:36 -08:00
Mark Backman
d79dd94019
Make aggregate return an AsyncIterator, other clean up
2025-12-03 22:00:34 -05:00
Mark Backman
4d66191963
fix: PatternPairAggregator to process patterns only once
2025-12-03 22:00:04 -05:00
Mark Backman
7e9d67002e
SkipTagsAggregator and PatternPairAggregator now subclass SimpleTextAggregator
2025-12-03 22:00:04 -05:00
Mark Backman
ffbb6e5937
Update SimpleTextAggregator to handle character by character input, use a buffer to handle ambiguous EOS scenarios, and add a flush method to all aggregators
2025-12-03 22:00:02 -05:00
Mark Backman
535b85cf90
Add split_text_by_spaces string util
2025-12-03 21:55:30 -05:00
mattie ruth backman
6b6d760cf1
Introduced LLMTextProcessor and deprecatd custom text_aggregators in TTS
...
Introduced `LLMTextProcessor`: A new processor meant to allow customization for how
LLMTextFrames should be aggregated and considered. It's purpose is to turn
`LLMTextFrame`s into `AggregatedTextFrame`s. By default, a TTSService will still
aggregate `LLMTextFrame`s by sentence for the service to consume. However, if you
wish to override how the llm text is aggregated, you should no longer override the
TTS's internal text_aggregator, but instead, insert this processor between your LLM
and TTS in the pipeline.
2025-11-21 17:16:10 -05:00
mattie ruth backman
7a4372a909
Introduced a new AggregatedTextFrame Frame type that TTSTextFrame inherits from
...
This frame introduces an `aggregated_by` field to describe the type of text included
in the frame and allows unspoken groupings of text to be pushed through the pipeline
and treated similar to TTSTextFrames.
2025-11-21 17:16:10 -05:00
mattie ruth backman
24266c238f
Augmented PatternPairAggregator so that matched patterns can...
...
be treated as their own aggregation, taking advantage of the new
ability to assign a type to an aggregation
2025-11-21 17:16:10 -05:00
mattie ruth backman
dcc20f86e1
Updated the BaseTextAggregator to categorize aggregations
...
Modified the BaseTextAggregator type so that when text gets aggregated, metadata can
be associated with it. Currently, that just means a `type`, so that the aggregation
can be classified or described. Changes made to support this:
- **IMPORTANT**: Aggregators are now expected to strip leading/trailing white space
characters before returning their aggregation from `aggregation()` or `.text`. This
way all aggregators have a consistent contract allowing downstream use to know how
to stitch aggregations back together
- Introduced a new `Aggregation` dataclass to represent both the aggregated `text` and
a string identifying the `type` of aggregation (ex. "sentence", "word", "my custom
aggregation")
- **BREAKING**: `BaseTextAggregator.text` now returns an `Aggregation` (instead of `str`).
To update: `aggregated_text = myAggregator.text` -> `aggregated_text = myAggregator.text.text`
- **BREAKING**: `BaseTextAggregator.aggregate()` now returns `Optional[Aggregation]`
(instead of `Optional[str]`). To update:
```
aggregation = myAggregator.aggregate(text)
if (aggregation):
print(f"successfully aggregated text: {aggregation.text}") // instead of {aggregation}
```
- `SimpleTextAggregator`, `SkipTagsAggregator`, `PatternPairAggregator` updated to
produce/consume `Aggregation` objects.
- All uses of the above Aggregators have been updated accordingly.
2025-11-21 17:16:10 -05:00
Paul Kompfner
3d21faaac2
LLMAssistantAggregator now properly aggregates text that might be a mix of includes_inter_frame_spaces=True and includes_inter_frame_spaces=False frames
2025-11-18 15:12:25 -05:00
Paul Kompfner
913194844e
Make the mechanism of adding spaces when concatenating TTS (or speech-to-speech LLM) output text explicit and deterministic, rather than heuristic-based.
...
This fixes a bug where spaces were sometimes missing from assistant messages in context.
2025-11-10 14:22:32 -05:00
Mark Backman
2300941bb8
Revert "Merge pull request #3004 from pipecat-ai/mb/improve-concat-aggregated-text"
...
This reverts commit 5e7f59a0b0 , reversing
changes made to 2ad4122b77 .
2025-11-10 09:58:19 -05:00
Mark Backman
03001f8047
Update TranscriptProcessor unit tests
2025-11-07 11:44:04 -05:00
Mark Backman
f6b6aa8766
fix: STTMuteFilter no longer sends STTMuteFrame
2025-11-06 11:53:32 -05:00
Aleix Conchillo Flaqué
d844829538
Revert "fix interruption task frame context ordering"
2025-11-05 12:14:03 -08:00
Aleix Conchillo Flaqué
e4212fb3c0
tests: add interruption strategies context ordering tests
2025-11-05 09:38:18 -08:00
Aleix Conchillo Flaqué
0f5030bafa
tests: add unit test to check for idle timeout on swallowed frames
2025-10-31 08:45:56 -07:00
Paul Kompfner
ac5734d0ed
Deprecate expect_stripped_words option from LLMAssistantAggregatorParams, when used with the newer LLMAssistantAggregator, which now handles word spacing automatically.
...
This commit does not change how it works in the older `LLMAssistantContextAggregator`.
2025-10-30 17:22:47 -04:00
Paul Kompfner
ea6e146f2d
Update TestServiceSwitcher to exercise targeting system frames only to the active service
2025-10-22 11:14:27 -04:00