Paul Kompfner
d50922cdcd
Update Google adapter to handle possibility of system message in standard format being provided as a list of text parts rather than just a string.
2025-08-26 09:44:15 -04:00
Paul Kompfner
47f5ca6265
Update Gemini adapter to be able to handle LLMSpecificMessages containing Google-formatted messages
2025-08-26 09:44:15 -04:00
Paul Kompfner
2eddb6ffda
[WIP] Universal (LLM-agnostic) context machinery to support runtime LLM switching.
...
- Remove outdated comment
2025-08-26 09:44:15 -04:00
Paul Kompfner
560a6f2247
[WIP] Universal (LLM-agnostic) context machinery to support runtime LLM switching.
...
- Make `LLMContext.add_audio_frames_message()` respect the OpenAI standard format
2025-08-26 09:44:15 -04:00
Paul Kompfner
59ecb19000
[WIP] Universal (LLM-agnostic) context machinery to support runtime LLM switching.
...
- Add support for LLM-specific messages in the universal `LLMContext`, to enable using LLM-specific functionality while still using the universal LLM context
2025-08-26 09:44:15 -04:00
Paul Kompfner
cfb094b3c8
[WIP] Universal (LLM-agnostic) context machinery to support runtime LLM switching.
...
- Make it so that tools in `LLMContext` are guaranteed to be either a `ToolsSchema` or `NOT_GIVEN`
2025-08-26 09:44:15 -04:00
Paul Kompfner
1f7e8e001b
[WIP] Universal (LLM-agnostic) context machinery to support runtime LLM switching.
...
- Update some types to also allow for universal `LLMContext`
2025-08-26 09:44:15 -04:00
Paul Kompfner
688b136141
[WIP] Universal (LLM-agnostic) context machinery to support runtime LLM switching.
...
- Add to Google LLM service support for universal LLM context
2025-08-26 09:44:15 -04:00
Paul Kompfner
809c4c1bc5
[WIP] Universal (LLM-agnostic) context machinery to support runtime LLM switching.
...
- Add to OpenAI LLM service support for universal LLM context
2025-08-26 09:44:15 -04:00
Paul Kompfner
81ca5e6601
[WIP] Universal (LLM-agnostic) context machinery to support runtime LLM switching.
...
- Formatting fix + dead import cleanup
2025-08-26 09:44:15 -04:00
Paul Kompfner
ebc49d2252
[WIP] Universal (LLM-agnostic) context machinery to support runtime LLM switching.
...
- Add a "universal" alias for `OpenAILLMContextAssistantTimestampFrame`: `LLMContextAssistantTimestampFrame`
2025-08-26 09:44:15 -04:00
Paul Kompfner
ff8d158e18
[WIP] Universal (LLM-agnostic) context machinery to support runtime LLM switching.
...
- Added universal `LLMContext` and associated context aggregators.
2025-08-26 09:44:15 -04:00
Aleix Conchillo Flaqué
39ebc2c9c1
CartesiaTTSService: reconnect on Cartesia's timeout
2025-08-25 14:09:03 -07:00
Aleix Conchillo Flaqué
a0128516ff
PipelineTask: handle cancellations gracefully
2025-08-22 19:04:31 -07:00
Mark Backman
8dfa1187be
Merge pull request #2402 from pipecat-ai/mb/voicemail-detection
...
Add voicemail detection
2025-08-22 14:51:13 -07:00
mattie ruth backman
3e3d50a855
Fix issue with request images from the camera introduced in smallwebrtctransport
2025-08-22 15:02:33 -04:00
Mark Backman
402661ae03
Prevent user speaking frames from entering the classifier branch after a conversation is detected
2025-08-22 14:09:45 -04:00
Mark Backman
69c6a95b8a
Simplify frames in the NotifierGate
2025-08-22 14:09:45 -04:00
Mark Backman
4d49210a73
Rename system_prompt to custom_system_prompt; improve dev ex for classification prompt requirements
2025-08-22 14:09:45 -04:00
Aleix Conchillo Flaqué
5f8a22ef2f
Merge pull request #2493 from pipecat-ai/aleix/runner-task-asyncio-cancellation
...
PipelineRunner/PipelineTask: fix asyncio task cancellation
2025-08-22 09:13:58 -07:00
Aleix Conchillo Flaqué
606ad0826a
Merge pull request #2492 from pipecat-ai/aleix/wait-for-task-deprecated
...
FrameProcessor: wait_for_task is now deprecated
2025-08-22 09:13:34 -07:00
Mark Backman
57028255ee
Update changelog, mention text LLMs only
2025-08-22 12:12:17 -04:00
Mark Backman
87ebbab758
Only set/clear voicemail_event when voicemail is detected
2025-08-22 12:12:17 -04:00
Mark Backman
bd401e8d6f
Rename TTSBuffer to TTSGate
2025-08-22 12:12:17 -04:00
Mark Backman
f0dfab23e7
Cleanup
2025-08-22 12:12:17 -04:00
Mark Backman
fbc907c371
Change path to extensions
2025-08-22 12:12:17 -04:00
Mark Backman
40b5ef485d
Add base NotifierGate class and ClassifierGate, ConversationGate subclasses
2025-08-22 12:12:17 -04:00
Mark Backman
446bb5cddf
Refactor callback to event
2025-08-22 12:12:17 -04:00
Mark Backman
ce579d4266
Make on_voicemail_detected callback required, cleanup logging
2025-08-22 12:12:17 -04:00
Mark Backman
5a07b30c7a
Class name changes, add TTSStarted/StoppedFrame to the TTSBuffer
2025-08-22 12:12:17 -04:00
Mark Backman
9da33f3897
Handle multiple user inputs from the user when a voicemail is detected; add a configurable timeout to emitting the callback
2025-08-22 12:12:17 -04:00
Mark Backman
5ca82ec61e
Final docstrings, comments, and cleanup
2025-08-22 12:12:17 -04:00
Mark Backman
0067c7df47
Add aggregation to classifier LLM output and validate prompt
2025-08-22 12:12:17 -04:00
Mark Backman
ab03db5b0c
Updated prompt, add custom system_prompt input
2025-08-22 12:12:17 -04:00
Mark Backman
238d6bf9ab
Add buffering logic
2025-08-22 12:12:17 -04:00
Mark Backman
90ae85bab2
More updates—added new voicemail module
2025-08-22 12:12:17 -04:00
mattie ruth backman
bad9977e8c
PR feedback and more explicit about only supporting exporting 1 video
2025-08-22 11:24:22 -04:00
mattie ruth backman
b987579d54
update smallWebRTC screen support to support the utils format for listening to screenshares
2025-08-22 11:24:22 -04:00
mattie ruth backman
40f1f4ff11
Add support to smallWebRTCTransport for receiving screenshare videos
2025-08-22 11:24:22 -04:00
Aleix Conchillo Flaqué
8044c4170d
PipelineRunner/PipelineTask: fix asyncio task cancellation
2025-08-21 23:50:00 -07:00
Aleix Conchillo Flaqué
bc51e7abc6
FrameProcessor: wait_for_task is now deprecated
2025-08-21 21:17:47 -07:00
Aleix Conchillo Flaqué
4947d08733
GladiaSTTService: update loggin levels
2025-08-21 18:42:23 -07:00
Aleix Conchillo Flaqué
b61846534d
SpeechmaticsSTTService: improve exception handling and loggin
2025-08-21 18:42:23 -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
Mark Backman
cb13f4b4cb
Add user speaking and transcription frames to idle_timeout_frames
2025-08-21 06:43:10 -04: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é
4ff0567025
BaseObject: allow keyword arguments
2025-08-20 15:14:31 -07:00
Aleix Conchillo Flaqué
1377dec01b
DTMFAggregator: no need for interruption task
...
Now that system frames are queued there's no need to have an additional task to
push a `BotInterruptionFrame`.
2025-08-20 14:35:04 -07:00
Aleix Conchillo Flaqué
f1c1ebf852
timeout: fix wait_for2 import
2025-08-20 14:24:16 -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