Aleix Conchillo Flaqué
db71089f5e
PipelineTask: add on_pipeline_finished event
...
This deprecates `on_pipeline_stopped`, `on_pipeline_ended` and
`on_pipeline_cancelled`.
2025-09-15 15:28:33 -07:00
kompfner
81cede2c60
Merge pull request #2653 from pipecat-ai/pk/llm-context-adapting-tests
...
`LLMContext`-adapting unit tests
2025-09-15 16:38:46 -04:00
Paul Kompfner
fe42187dc1
Implement LLMService.create_llm_specific_message() so that users don't need to just know what value of llm to provide to the LLMSpecificMessage constructor
2025-09-15 14:15:22 -04:00
Paul Kompfner
999e88c942
Add unit tests for AWSBedrockLLMAdapter.get_llm_invocation_params(), focusing on messages specifically
2025-09-15 12:08:21 -04:00
Paul Kompfner
c04df2f28b
Add unit tests for AnthropicLLMAdapter.get_llm_invocation_params(), focusing on messages specifically
2025-09-15 11:55:48 -04:00
Paul Kompfner
100ef0ab5c
Add unit tests for GeminiLLMAdapter.get_llm_invocation_params(), focusing on messages specifically
2025-09-15 11:38:23 -04:00
Paul Kompfner
42886d7105
Add unit tests for OpenAILLMAdapter.get_llm_invocation_params(), focusing on messages specifically. Also, fix a bug in OpenAILLMAdapter (found thanks to the unit tests) where it wasn't "unwrapping" LLMSpecificMessages.
2025-09-15 11:17:11 -04:00
Paul Kompfner
9f82c6b4a4
Add unit tests for run_inference
2025-09-12 11:07:11 -04:00
Aleix Conchillo Flaqué
57add41971
tests: add unit test for MinWordsInterruptionStrategy
2025-09-11 13:07:30 -07:00
Aleix Conchillo Flaqué
74b38b59d6
tests(utils): allow passing PipelineParams to run_test()
2025-09-11 13:02:21 -07:00
Aleix Conchillo Flaqué
0b21f8a6bd
FrameProcessor: add push_interruption_task_frame_and_wait()
2025-09-11 09:19:44 -07:00
Aleix Conchillo Flaqué
9d9f10ae0e
frames: StartInterruptionFrame is deprecated, use InterruptionFrame
2025-09-11 09:01:54 -07:00
Mark Backman
972546b24f
Add IVR navigation ( #2529 )
2025-08-29 20:08:17 -04:00
Aleix Conchillo Flaqué
a5c5e069ba
move pipecat.frames.frames.KeypadEntry to pipecat.audio.dtmf.types.KeypadEntry
2025-08-28 17:43:29 -07:00
Aleix Conchillo Flaqué
8ab81d289a
PipelineTask: warn if CancelFrame doesn't reach the end
2025-08-26 10:36:33 -07:00
Aleix Conchillo Flaqué
8044c4170d
PipelineRunner/PipelineTask: fix asyncio task cancellation
2025-08-21 23:50:00 -07:00
Aleix Conchillo Flaqué
24a628c85e
remove watchdog timers and specific asyncio implementations
...
Watchdog timers have been removed. They were introduced in 0.0.72 to help
diagnose pipeline freezes. Unfortunately, they proved ineffective since they
required developers to use Pipecat-specific queues, iterators, and events to
correctly reset the timer, which limited their usefulness and added friction.
2025-08-21 18:09:56 -07:00
Aleix Conchillo Flaqué
28c729cc36
replace asyncio.wait_for for wait_for2.wait_for
2025-08-20 15:26:57 -07:00
Aleix Conchillo Flaqué
f387776985
add custom asyncio.wait_for()
...
This patch uses `wait_for2` package to implement `asyncio.wait_for()` for
Python < 3.12.
In Python 3.12, `asyncio.wait_for()` is implemented in terms of
`asyncio.timeout()` which fixed a bunch of issues. However, this was never
backported (because of the lack of `async.timeout()`) and there are still many
remainig issues, specially in Python 3.10, in `async.wait_for()`.
See https://github.com/python/cpython/pull/98518
2025-08-20 14:09:05 -07:00
Aleix Conchillo Flaqué
4e3af00b6d
tests: try to use default SleepFrame time
2025-08-20 10:08:54 -07:00
Aleix Conchillo Flaqué
4015aedb86
tests: fix unit tests
2025-08-20 10:08:54 -07:00
Aleix Conchillo Flaqué
0508ddddfb
WatchdogPriorityQueue: fix watchdog sentinel insertion
...
We now force each inserted item in the priority queue to be a tuple and the
actual value to be last in the tuple. All the previous values in the tuple also
need to be numeric.
2025-08-12 17:40:58 -07:00
Aleix Conchillo Flaqué
3f3d757581
tests: added WatchdogQueue and WatchdogPriorityQueue unit tests
2025-08-12 11:48:22 -07:00
Captain Caius
3fae00e067
Add VADUserStartSpeakingFrame VADUserStopSpeakingFrame to STTMuteFilter
2025-08-10 19:35:04 -07:00
Paul Kompfner
07eb00722b
Fix langchain unit test
2025-08-07 14:45:35 -04:00
Mark Backman
26c937af87
Update match_endofsentence to use NLTK sentence tokenizer
2025-07-22 20:19:29 -04:00
Mark Backman
06c1255abe
fix: use a different aggregation timeout for emulated user speech ( #2185 )
...
* fix: use a different aggregation timeout for emulated user speech
* Add SpeechControlParamsFrame
* Update test_context_aggregator tests
2025-07-11 16:33:44 -04:00
Aleix Conchillo Flaqué
af8b4901d4
DtmfAggregator: cancel interruption task to avoid a dangling task
2025-07-03 08:18:48 -07:00
Paul Kompfner
ce3ca418c2
Unit tests for "direct" functions
2025-06-30 10:36:47 -04:00
Paul Kompfner
15b9a5faf6
Implement "direct functions", which allow you to bypass specifying a function configuration (as a FunctionSchema or in a provider-specific format) and use the Python function directly. Metadata is gathered automatically from the function signature and docstring.
2025-06-30 10:36:42 -04:00
Aleix Conchillo Flaqué
5a3457ba33
introduce task watchdog timers
2025-06-24 11:56:20 -07:00
Mark Backman
16c0e2460b
TurnTrackingObserver ends turn upon seeing EndFrame, CancelFrame
2025-06-23 11:08:51 -04:00
Aleix Conchillo Flaqué
028f7b2d65
PipelineTask: fix repeated on_idle_timeout
2025-06-19 09:14:10 -07:00
kompfner
16048956c3
Merge pull request #1956 from pipecat-ai/pk/make-add-observer-sync
...
Make `PipelineTask.add_observer()` synchronous. This allows callers t…
2025-06-09 13:19:34 -04:00
Paul Kompfner
513ce26200
Add unit test exercising synchronous usage of PipelineTask.add_observer() right after initializing the PipelineTask (before anything else is done with it)
2025-06-09 11:30:24 -04:00
Paul Kompfner
1cd96f94ff
Make PipelineTask.add_observer() synchronous. This allows callers to call it before run()ning the PipelineTask first. Without this change, if they tried to do that, they would get an error because the TaskManager's event loop hadn't been set yet.
2025-06-09 11:30:24 -04:00
Aleix Conchillo Flaqué
901dd041f0
buffer audio from TTS service before pushing frames
2025-06-09 07:29:09 -07:00
Aleix Conchillo Flaqué
5512de3221
allow custom interruption strategies
2025-06-02 12:01:26 -07:00
Mark Backman
4d2a02f318
Refactor to create task on StartFrame, also cleanup
2025-05-29 17:10:54 -04:00
Mark Backman
0bec7db03b
Emit a BotInterruptionFrame when the first keypress of a sequence is received
2025-05-29 17:07:18 -04:00
Mark Backman
74827f983f
Add tests, improve frame timing
2025-05-29 17:07:18 -04:00
marc.torsoc
ca35299dcd
add link cleaning and a test for it
2025-05-21 12:08:53 +02:00
Aleix Conchillo Flaqué
d333094149
PipelineTask: add add_observer() and remove_observer()
2025-05-20 13:16:06 -07:00
Aleix Conchillo Flaqué
cbccbcd9e7
BaseTextFilter: make functions async
2025-05-20 13:11:44 -07:00
Aleix Conchillo Flaqué
54b1d7fcc1
BaseTextAggregator: make functions async
2025-05-20 13:11:42 -07:00
Aleix Conchillo Flaqué
25dd651757
TranscriptionMessage: add user_id field
2025-05-19 15:47:54 -07:00
Aleix Conchillo Flaqué
d5ebc883b3
PipelineTask: add new started/stopped/ended/cancelled events
2025-05-17 22:46:22 -07:00
Mark Backman
50f6235edb
Add support for OpenTelemetry tracing ( #1729 )
...
* Also added TurnTrackingObserver, TurnTraceObserver, foundational 29, open-telemetry-example
2025-05-13 17:18:11 -04:00
Aleix Conchillo Flaqué
f31efa42c9
GoogleLLMService: deprecate google-generativeai
2025-05-09 09:14:43 -07:00
Aleix Conchillo Flaqué
458549f7df
AWSBedrockLLMService: fix function calling
2025-05-07 09:26:26 -07:00