Update changelog for version 0.0.105
This commit is contained in:
committed by
Aleix Conchillo Flaqué
parent
327bcfa8d2
commit
610dc25fb1
265
CHANGELOG.md
265
CHANGELOG.md
@@ -7,6 +7,271 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
<!-- towncrier release notes start -->
|
||||
|
||||
## [0.0.105] - 2026-03-10
|
||||
|
||||
### Added
|
||||
|
||||
- Added concurrent audio context support: `CartesiaTTSService` can now
|
||||
synthesize the next sentence while the previous one is still playing, by
|
||||
setting `pause_frame_processing=False` and routing each sentence through its
|
||||
own audio context queue.
|
||||
(PR [#3804](https://github.com/pipecat-ai/pipecat/pull/3804))
|
||||
|
||||
- Added custom video track support to Daily transport. Use
|
||||
`video_out_destinations` in `DailyParams` to publish multiple video tracks
|
||||
simultaneously, mirroring the existing `audio_out_destinations` feature.
|
||||
(PR [#3831](https://github.com/pipecat-ai/pipecat/pull/3831))
|
||||
|
||||
- Added `ServiceSwitcherStrategyFailover` that automatically switches to the
|
||||
next service when the active service reports a non-fatal error. Recovery
|
||||
policies can be implemented via the `on_service_switched` event handler.
|
||||
(PR [#3861](https://github.com/pipecat-ai/pipecat/pull/3861))
|
||||
|
||||
- Added optional `timeout_secs` parameter to `register_function()` and
|
||||
`register_direct_function()` for per-tool function call timeout control,
|
||||
overriding the global `function_call_timeout_secs` default.
|
||||
(PR [#3915](https://github.com/pipecat-ai/pipecat/pull/3915))
|
||||
|
||||
- Added `cloud-audio-only` recording option to Daily transport's
|
||||
`enable_recording` property.
|
||||
(PR [#3916](https://github.com/pipecat-ai/pipecat/pull/3916))
|
||||
|
||||
- Wired up `system_instruction` in `BaseOpenAILLMService`,
|
||||
`AnthropicLLMService`, and `AWSBedrockLLMService` so it works as a default
|
||||
system prompt, matching the behavior of the Google services. This enables
|
||||
sharing a single `LLMContext` across multiple LLM services, where each
|
||||
service provides its own system instruction independently.
|
||||
|
||||
```python
|
||||
llm = OpenAILLMService(
|
||||
api_key=os.getenv("OPENAI_API_KEY"),
|
||||
system_instruction="You are a helpful assistant.",
|
||||
)
|
||||
|
||||
context = LLMContext()
|
||||
|
||||
@transport.event_handler("on_client_connected")
|
||||
async def on_client_connected(transport, client):
|
||||
context.add_message({"role": "user", "content": "Please introduce yourself."})
|
||||
await task.queue_frames([LLMRunFrame()])
|
||||
```
|
||||
(PR [#3918](https://github.com/pipecat-ai/pipecat/pull/3918))
|
||||
|
||||
- Added `vad_threshold` parameter to `AssemblyAIConnectionParams` for
|
||||
configuring voice activity detection sensitivity in U3 Pro. Aligning this
|
||||
with external VAD thresholds (e.g., Silero VAD) prevents the "dead zone"
|
||||
where AssemblyAI transcribes speech that VAD hasn't detected yet.
|
||||
(PR [#3927](https://github.com/pipecat-ai/pipecat/pull/3927))
|
||||
|
||||
- Added `push_empty_transcripts` parameter to `BaseWhisperSTTService` and
|
||||
`OpenAISTTService` to allow empty transcripts to be pushed downstream as
|
||||
`TranscriptionFrame` instead of discarding them (the default behavior). This
|
||||
is intended for situations where VAD fires even though the user did not
|
||||
speak. In these cases, it is useful to know that nothing was transcribed so
|
||||
that the agent can resume speaking, instead of waiting longer for a
|
||||
transcription.
|
||||
(PR [#3930](https://github.com/pipecat-ai/pipecat/pull/3930))
|
||||
|
||||
- LLM services (`BaseOpenAILLMService`, `AnthropicLLMService`,
|
||||
`AWSBedrockLLMService`) now log a warning when both `system_instruction` and
|
||||
a system message in the context are set. The constructor's
|
||||
`system_instruction` takes precedence.
|
||||
(PR [#3932](https://github.com/pipecat-ai/pipecat/pull/3932))
|
||||
|
||||
- Runtime settings updates (via `STTUpdateSettingsFrame`) now work for AWS
|
||||
Transcribe, Azure, Cartesia, Deepgram, ElevenLabs Realtime, Gradium, and
|
||||
Soniox STT services. Previously, changing settings at runtime only stored the
|
||||
new values without reconnecting.
|
||||
(PR [#3946](https://github.com/pipecat-ai/pipecat/pull/3946))
|
||||
|
||||
- Exposed `on_summary_applied` event on `LLMAssistantAggregator`, allowing
|
||||
users to listen for context summarization events without accessing private
|
||||
members.
|
||||
(PR [#3947](https://github.com/pipecat-ai/pipecat/pull/3947))
|
||||
|
||||
- Deepgram Flux STT settings (`keyterm`, `eot_threshold`,
|
||||
`eager_eot_threshold`, `eot_timeout_ms`) can now be updated mid-stream via
|
||||
`STTUpdateSettingsFrame` without triggering a reconnect. The new values are
|
||||
sent to Deepgram as a Configure WebSocket message on the existing connection.
|
||||
(PR [#3953](https://github.com/pipecat-ai/pipecat/pull/3953))
|
||||
|
||||
- Added `system_instruction` parameter to `run_inference` across all LLM
|
||||
services, allowing callers to override the system prompt for one-shot
|
||||
inference calls. Used by `_generate_summary` to pass the summarization prompt
|
||||
cleanly.
|
||||
(PR [#3968](https://github.com/pipecat-ai/pipecat/pull/3968))
|
||||
|
||||
### Changed
|
||||
|
||||
- Audio context management (previously in `AudioContextTTSService`) is now
|
||||
built into `TTSService`. All WebSocket providers (`cartesia`, `elevenlabs`,
|
||||
`asyncai`, `inworld`, `rime`, `gradium`, `resembleai`) now inherit from
|
||||
`WebsocketTTSService` directly. Word-timestamp baseline is set automatically
|
||||
on the first audio chunk of each context instead of requiring each provider
|
||||
to call `start_word_timestamps()` in their receive loop.
|
||||
(PR [#3804](https://github.com/pipecat-ai/pipecat/pull/3804))
|
||||
|
||||
- Daily transport now uses `CustomVideoSource`/`CustomVideoTrack` instead of
|
||||
`VirtualCameraDevice` for the default camera output, mirroring how audio
|
||||
already works with `CustomAudioSource`/`CustomAudioTrack`.
|
||||
(PR [#3831](https://github.com/pipecat-ai/pipecat/pull/3831))
|
||||
|
||||
- ⚠️ Updated `DeepgramSTTService` to use `deepgram-sdk` v6. The `LiveOptions`
|
||||
class was removed from the SDK and is now provided by pipecat directly;
|
||||
import it from `pipecat.services.deepgram.stt` instead of `deepgram`.
|
||||
(PR [#3848](https://github.com/pipecat-ai/pipecat/pull/3848))
|
||||
|
||||
- `ServiceSwitcherStrategy` base class now provides a `handle_error()` hook for
|
||||
subclasses to implement error-based switching. `ServiceSwitcher` defaults to
|
||||
`ServiceSwitcherStrategyManual` and `strategy_type` is now optional.
|
||||
(PR [#3861](https://github.com/pipecat-ai/pipecat/pull/3861))
|
||||
|
||||
- Support for Voice Focus 2.0 models.
|
||||
- Updated `aic-sdk` to `~=2.1.0` to support Voice Focus 2.0 models.
|
||||
- Cleaned unused `ParameterFixedError` exception handling in `AICFilter`
|
||||
parameter setup.
|
||||
(PR [#3889](https://github.com/pipecat-ai/pipecat/pull/3889))
|
||||
|
||||
- `max_context_tokens` and `max_unsummarized_messages` in
|
||||
`LLMAutoContextSummarizationConfig` (and deprecated
|
||||
`LLMContextSummarizationConfig`) can now be set to `None` independently to
|
||||
disable that summarization threshold. At least one must remain set.
|
||||
(PR [#3914](https://github.com/pipecat-ai/pipecat/pull/3914))
|
||||
|
||||
- ⚠️ Removed `formatted_finals` and `word_finalization_max_wait_time` from
|
||||
`AssemblyAIConnectionParams` as these were v2 API parameters not supported in
|
||||
v3. Clarified that `format_turns` only applies to Universal-Streaming models;
|
||||
U3 Pro has automatic formatting built-in.
|
||||
(PR [#3927](https://github.com/pipecat-ai/pipecat/pull/3927))
|
||||
|
||||
- Changed `DeepgramTTSService` to send a Clear message on interruption instead
|
||||
of disconnecting and reconnecting the WebSocket, allowing the connection to
|
||||
persist throughout the session.
|
||||
(PR [#3958](https://github.com/pipecat-ai/pipecat/pull/3958))
|
||||
|
||||
- Re-added `enhancement_level` support to `AICFilter` with runtime
|
||||
`FilterEnableFrame` control, applying `ProcessorParameter.Bypass` and
|
||||
`ProcessorParameter.EnhancementLevel` together.
|
||||
(PR [#3961](https://github.com/pipecat-ai/pipecat/pull/3961))
|
||||
|
||||
- Updated `daily-python` dependency from `~=0.23.0` to `~=0.24.0`.
|
||||
(PR [#3970](https://github.com/pipecat-ai/pipecat/pull/3970))
|
||||
|
||||
- Updated `FishAudioTTSService` default model from `s1` to `s2-pro`, matching
|
||||
Fish Audio's latest recommended model for improved quality and speed.
|
||||
(PR [#3973](https://github.com/pipecat-ai/pipecat/pull/3973))
|
||||
|
||||
- `AzureSTTService` `region` parameter is now optional when `private_endpoint`
|
||||
is provided. A `ValueError` is raised if neither is given, and a warning is
|
||||
logged if both are provided (`private_endpoint` takes priority).
|
||||
(PR [#3974](https://github.com/pipecat-ai/pipecat/pull/3974))
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Deprecated `AudioContextTTSService` and `AudioContextWordTTSService`.
|
||||
Subclass `WebsocketTTSService` directly instead; audio context management is
|
||||
now part of the base `TTSService`.
|
||||
- Deprecated `WordTTSService`, `WebsocketWordTTSService`, and
|
||||
`InterruptibleWordTTSService`. Word timestamp logic is now always active in
|
||||
`TTSService` and no longer needs to be opted into via a subclass.
|
||||
(PR [#3804](https://github.com/pipecat-ai/pipecat/pull/3804))
|
||||
|
||||
- Deprecated `pipecat.services.google.llm_vertex`,
|
||||
`pipecat.services.google.llm_openai`, and
|
||||
`pipecat.services.google.gemini_live.llm_vertex` modules. Use
|
||||
`pipecat.services.google.vertex.llm`, `pipecat.services.google.openai.llm`,
|
||||
and `pipecat.services.google.gemini_live.vertex.llm` instead. The old import
|
||||
paths still work but will emit a `DeprecationWarning`.
|
||||
(PR [#3980](https://github.com/pipecat-ai/pipecat/pull/3980))
|
||||
|
||||
### Removed
|
||||
|
||||
- ⚠️ Removed `supports_word_timestamps` parameter from `TTSService.__init__()`.
|
||||
Word timestamp logic is now always active. Remove this argument from any
|
||||
custom subclass `super().__init__()` calls.
|
||||
(PR [#3804](https://github.com/pipecat-ai/pipecat/pull/3804))
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed `DeepgramSTTService` keepalive ping timeout disconnections. The
|
||||
deepgram-sdk v6 removed automatic keepalive; pipecat now sends explicit
|
||||
`KeepAlive` messages every 5 seconds, within the recommended 3–5 second
|
||||
interval before Deepgram's 10-second inactivity timeout.
|
||||
(PR [#3848](https://github.com/pipecat-ai/pipecat/pull/3848))
|
||||
|
||||
- Fixed `BufferError: Existing exports of data: object cannot be re-sized` in
|
||||
`AICFilter` caused by holding a `memoryview` on the mutable audio buffer
|
||||
across async yield points.
|
||||
(PR [#3889](https://github.com/pipecat-ai/pipecat/pull/3889))
|
||||
|
||||
- Fixed TTS context not being appended to the assistant message history when
|
||||
using `TTSSpeakFrame` with `append_to_context=True` with some TTS providers.
|
||||
(PR [#3936](https://github.com/pipecat-ai/pipecat/pull/3936))
|
||||
|
||||
- Fixed context summarization leaving orphaned tool responses in the kept
|
||||
context when tool calls were moved to the summarized portion.
|
||||
(PR [#3937](https://github.com/pipecat-ai/pipecat/pull/3937))
|
||||
|
||||
- Fixed turn completion state not resetting at end of LLM responses.
|
||||
`LLMFullResponseEndFrame` is pushed (not received) by the LLM service, so the
|
||||
mixin now handles it in `push_frame` instead of `process_frame`.
|
||||
(PR [#3956](https://github.com/pipecat-ai/pipecat/pull/3956))
|
||||
|
||||
- Fixed turn completion instructions being injected as a context system message
|
||||
instead of using `system_instruction`. This caused warning spam when
|
||||
`system_instruction` was also set and didn't persist across full context
|
||||
updates.
|
||||
(PR [#3957](https://github.com/pipecat-ai/pipecat/pull/3957))
|
||||
|
||||
- Fixed `TTSService` audio context queue getting blocked when
|
||||
`append_to_audio_context()` was called with a `None` context ID, which
|
||||
prevented subsequent audio from being delivered.
|
||||
(PR [#3958](https://github.com/pipecat-ai/pipecat/pull/3958))
|
||||
|
||||
- Fixed `on_call_state_updated` event handler in LiveKit transport receiving
|
||||
incorrect number of arguments due to redundant `self` passed to
|
||||
`_call_event_handler`.
|
||||
(PR [#3959](https://github.com/pipecat-ai/pipecat/pull/3959))
|
||||
|
||||
- Fixed OpenAI Realtime, OpenAI Realtime Beta, and Grok realtime services
|
||||
treating `conversation_already_has_active_response` as a fatal error. These
|
||||
services now log it as a non-fatal debug event when a response is already in
|
||||
progress.
|
||||
(PR [#3960](https://github.com/pipecat-ai/pipecat/pull/3960))
|
||||
|
||||
- Fixed `SmallWebRTCConnection` silently discarding messages sent before the
|
||||
data channel is open by queuing them and flushing once the channel is ready.
|
||||
A bounded queue (`MAX_MESSAGE_QUEUE_SIZE = 50`) prevents unbounded memory
|
||||
growth, and a 10-second timeout after connection clears the queue and falls
|
||||
back to discard mode if the data channel never opens.
|
||||
(PR [#3962](https://github.com/pipecat-ai/pipecat/pull/3962))
|
||||
|
||||
- Fixed `AzureSTTService` failing to initialize when `private_endpoint` is
|
||||
provided. The Azure Speech SDK's `SpeechConfig` does not accept both `region`
|
||||
and `endpoint` simultaneously, so they are now passed conditionally.
|
||||
(PR [#3967](https://github.com/pipecat-ai/pipecat/pull/3967))
|
||||
|
||||
- Fixed `GoogleLLMService` ignoring the `system_instruction` set via
|
||||
constructor or `GoogleLLMSettings` when a system message was also present in
|
||||
the context. The settings value now correctly takes priority, and a warning
|
||||
is logged when both are set.
|
||||
(PR [#3976](https://github.com/pipecat-ai/pipecat/pull/3976))
|
||||
|
||||
### Other
|
||||
|
||||
- Updated foundational examples to use `system_instruction` on LLM services
|
||||
instead of adding system messages to `LLMContext`.
|
||||
(PR [#3918](https://github.com/pipecat-ai/pipecat/pull/3918))
|
||||
|
||||
- Updated AssemblyAI turn detection example to use `keyterms_prompt` list
|
||||
format instead of `prompt` string for improved clarity.
|
||||
(PR [#3929](https://github.com/pipecat-ai/pipecat/pull/3929))
|
||||
|
||||
- Updated foundational examples and eval scripts to use `"user"` role instead
|
||||
of `"system"` when adding messages to `LLMContext`, since system prompts
|
||||
should be set via `system_instruction` on the LLM service.
|
||||
(PR [#3931](https://github.com/pipecat-ai/pipecat/pull/3931))
|
||||
|
||||
## [0.0.104] - 2026-03-02
|
||||
|
||||
### Added
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
- Added concurrent audio context support: `CartesiaTTSService` can now synthesize the next sentence while the previous one is still playing, by setting `pause_frame_processing=False` and routing each sentence through its own audio context queue.
|
||||
@@ -1 +0,0 @@
|
||||
- Audio context management (previously in `AudioContextTTSService`) is now built into `TTSService`. All WebSocket providers (`cartesia`, `elevenlabs`, `asyncai`, `inworld`, `rime`, `gradium`, `resembleai`) now inherit from `WebsocketTTSService` directly. Word-timestamp baseline is set automatically on the first audio chunk of each context instead of requiring each provider to call `start_word_timestamps()` in their receive loop.
|
||||
@@ -1,2 +0,0 @@
|
||||
- Deprecated `AudioContextTTSService` and `AudioContextWordTTSService`. Subclass `WebsocketTTSService` directly instead; audio context management is now part of the base `TTSService`.
|
||||
- Deprecated `WordTTSService`, `WebsocketWordTTSService`, and `InterruptibleWordTTSService`. Word timestamp logic is now always active in `TTSService` and no longer needs to be opted into via a subclass.
|
||||
@@ -1 +0,0 @@
|
||||
- ⚠️ Removed `supports_word_timestamps` parameter from `TTSService.__init__()`. Word timestamp logic is now always active. Remove this argument from any custom subclass `super().__init__()` calls.
|
||||
@@ -1 +0,0 @@
|
||||
- Added custom video track support to Daily transport. Use `video_out_destinations` in `DailyParams` to publish multiple video tracks simultaneously, mirroring the existing `audio_out_destinations` feature.
|
||||
@@ -1 +0,0 @@
|
||||
- Daily transport now uses `CustomVideoSource`/`CustomVideoTrack` instead of `VirtualCameraDevice` for the default camera output, mirroring how audio already works with `CustomAudioSource`/`CustomAudioTrack`.
|
||||
@@ -1 +0,0 @@
|
||||
- ⚠️ Updated `DeepgramSTTService` to use `deepgram-sdk` v6. The `LiveOptions` class was removed from the SDK and is now provided by pipecat directly; import it from `pipecat.services.deepgram.stt` instead of `deepgram`.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed `DeepgramSTTService` keepalive ping timeout disconnections. The deepgram-sdk v6 removed automatic keepalive; pipecat now sends explicit `KeepAlive` messages every 5 seconds, within the recommended 3–5 second interval before Deepgram's 10-second inactivity timeout.
|
||||
@@ -1 +0,0 @@
|
||||
- Added `ServiceSwitcherStrategyFailover` that automatically switches to the next service when the active service reports a non-fatal error. Recovery policies can be implemented via the `on_service_switched` event handler.
|
||||
@@ -1 +0,0 @@
|
||||
- `ServiceSwitcherStrategy` base class now provides a `handle_error()` hook for subclasses to implement error-based switching. `ServiceSwitcher` defaults to `ServiceSwitcherStrategyManual` and `strategy_type` is now optional.
|
||||
@@ -1,3 +0,0 @@
|
||||
- Support for Voice Focus 2.0 models.
|
||||
- Updated `aic-sdk` to `~=2.1.0` to support Voice Focus 2.0 models.
|
||||
- Cleaned unused `ParameterFixedError` exception handling in `AICFilter` parameter setup.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed `BufferError: Existing exports of data: object cannot be re-sized` in `AICFilter` caused by holding a `memoryview` on the mutable audio buffer across async yield points.
|
||||
@@ -1 +0,0 @@
|
||||
- `max_context_tokens` and `max_unsummarized_messages` in `LLMAutoContextSummarizationConfig` (and deprecated `LLMContextSummarizationConfig`) can now be set to `None` independently to disable that summarization threshold. At least one must remain set.
|
||||
@@ -1 +0,0 @@
|
||||
- Added optional `timeout_secs` parameter to `register_function()` and `register_direct_function()` for per-tool function call timeout control, overriding the global `function_call_timeout_secs` default.
|
||||
@@ -1 +0,0 @@
|
||||
- Added `cloud-audio-only` recording option to Daily transport's `enable_recording` property.
|
||||
@@ -1,15 +0,0 @@
|
||||
- Wired up `system_instruction` in `BaseOpenAILLMService`, `AnthropicLLMService`, and `AWSBedrockLLMService` so it works as a default system prompt, matching the behavior of the Google services. This enables sharing a single `LLMContext` across multiple LLM services, where each service provides its own system instruction independently.
|
||||
|
||||
```python
|
||||
llm = OpenAILLMService(
|
||||
api_key=os.getenv("OPENAI_API_KEY"),
|
||||
system_instruction="You are a helpful assistant.",
|
||||
)
|
||||
|
||||
context = LLMContext()
|
||||
|
||||
@transport.event_handler("on_client_connected")
|
||||
async def on_client_connected(transport, client):
|
||||
context.add_message({"role": "user", "content": "Please introduce yourself."})
|
||||
await task.queue_frames([LLMRunFrame()])
|
||||
```
|
||||
@@ -1 +0,0 @@
|
||||
- Updated foundational examples to use `system_instruction` on LLM services instead of adding system messages to `LLMContext`.
|
||||
@@ -1 +0,0 @@
|
||||
- Added `vad_threshold` parameter to `AssemblyAIConnectionParams` for configuring voice activity detection sensitivity in U3 Pro. Aligning this with external VAD thresholds (e.g., Silero VAD) prevents the "dead zone" where AssemblyAI transcribes speech that VAD hasn't detected yet.
|
||||
@@ -1 +0,0 @@
|
||||
- ⚠️ Removed `formatted_finals` and `word_finalization_max_wait_time` from `AssemblyAIConnectionParams` as these were v2 API parameters not supported in v3. Clarified that `format_turns` only applies to Universal-Streaming models; U3 Pro has automatic formatting built-in.
|
||||
@@ -1 +0,0 @@
|
||||
- Updated AssemblyAI turn detection example to use `keyterms_prompt` list format instead of `prompt` string for improved clarity.
|
||||
@@ -1 +0,0 @@
|
||||
- Added `push_empty_transcripts` parameter to `BaseWhisperSTTService` and `OpenAISTTService` to allow empty transcripts to be pushed downstream as `TranscriptionFrame` instead of discarding them (the default behavior). This is intended for situations where VAD fires even though the user did not speak. In these cases, it is useful to know that nothing was transcribed so that the agent can resume speaking, instead of waiting longer for a transcription.
|
||||
@@ -1 +0,0 @@
|
||||
- Updated foundational examples and eval scripts to use `"user"` role instead of `"system"` when adding messages to `LLMContext`, since system prompts should be set via `system_instruction` on the LLM service.
|
||||
@@ -1 +0,0 @@
|
||||
- LLM services (`BaseOpenAILLMService`, `AnthropicLLMService`, `AWSBedrockLLMService`) now log a warning when both `system_instruction` and a system message in the context are set. The constructor's `system_instruction` takes precedence.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed TTS context not being appended to the assistant message history when using `TTSSpeakFrame` with `append_to_context=True` with some TTS providers.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed context summarization leaving orphaned tool responses in the kept context when tool calls were moved to the summarized portion.
|
||||
@@ -1 +0,0 @@
|
||||
- Runtime settings updates (via `STTUpdateSettingsFrame`) now work for AWS Transcribe, Azure, Cartesia, Deepgram, ElevenLabs Realtime, Gradium, and Soniox STT services. Previously, changing settings at runtime only stored the new values without reconnecting.
|
||||
@@ -1 +0,0 @@
|
||||
- Exposed `on_summary_applied` event on `LLMAssistantAggregator`, allowing users to listen for context summarization events without accessing private members.
|
||||
@@ -1 +0,0 @@
|
||||
- Deepgram Flux STT settings (`keyterm`, `eot_threshold`, `eager_eot_threshold`, `eot_timeout_ms`) can now be updated mid-stream via `STTUpdateSettingsFrame` without triggering a reconnect. The new values are sent to Deepgram as a Configure WebSocket message on the existing connection.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed turn completion state not resetting at end of LLM responses. `LLMFullResponseEndFrame` is pushed (not received) by the LLM service, so the mixin now handles it in `push_frame` instead of `process_frame`.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed turn completion instructions being injected as a context system message instead of using `system_instruction`. This caused warning spam when `system_instruction` was also set and didn't persist across full context updates.
|
||||
@@ -1 +0,0 @@
|
||||
- Changed `DeepgramTTSService` to send a Clear message on interruption instead of disconnecting and reconnecting the WebSocket, allowing the connection to persist throughout the session.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed `TTSService` audio context queue getting blocked when `append_to_audio_context()` was called with a `None` context ID, which prevented subsequent audio from being delivered.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed `on_call_state_updated` event handler in LiveKit transport receiving incorrect number of arguments due to redundant `self` passed to `_call_event_handler`.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed OpenAI Realtime, OpenAI Realtime Beta, and Grok realtime services treating `conversation_already_has_active_response` as a fatal error. These services now log it as a non-fatal debug event when a response is already in progress.
|
||||
@@ -1 +0,0 @@
|
||||
- Re-added `enhancement_level` support to `AICFilter` with runtime `FilterEnableFrame` control, applying `ProcessorParameter.Bypass` and `ProcessorParameter.EnhancementLevel` together.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed `SmallWebRTCConnection` silently discarding messages sent before the data channel is open by queuing them and flushing once the channel is ready. A bounded queue (`MAX_MESSAGE_QUEUE_SIZE = 50`) prevents unbounded memory growth, and a 10-second timeout after connection clears the queue and falls back to discard mode if the data channel never opens.
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed `AzureSTTService` failing to initialize when `private_endpoint` is provided. The Azure Speech SDK's `SpeechConfig` does not accept both `region` and `endpoint` simultaneously, so they are now passed conditionally.
|
||||
@@ -1 +0,0 @@
|
||||
- Added `system_instruction` parameter to `run_inference` across all LLM services, allowing callers to override the system prompt for one-shot inference calls. Used by `_generate_summary` to pass the summarization prompt cleanly.
|
||||
@@ -1 +0,0 @@
|
||||
- Updated `daily-python` dependency from `~=0.23.0` to `~=0.24.0`.
|
||||
@@ -1 +0,0 @@
|
||||
- Updated `FishAudioTTSService` default model from `s1` to `s2-pro`, matching Fish Audio's latest recommended model for improved quality and speed.
|
||||
@@ -1 +0,0 @@
|
||||
- `AzureSTTService` `region` parameter is now optional when `private_endpoint` is provided. A `ValueError` is raised if neither is given, and a warning is logged if both are provided (`private_endpoint` takes priority).
|
||||
@@ -1 +0,0 @@
|
||||
- Fixed `GoogleLLMService` ignoring the `system_instruction` set via constructor or `GoogleLLMSettings` when a system message was also present in the context. The settings value now correctly takes priority, and a warning is logged when both are set.
|
||||
@@ -1 +0,0 @@
|
||||
- Deprecated `pipecat.services.google.llm_vertex`, `pipecat.services.google.llm_openai`, and `pipecat.services.google.gemini_live.llm_vertex` modules. Use `pipecat.services.google.vertex.llm`, `pipecat.services.google.openai.llm`, and `pipecat.services.google.gemini_live.vertex.llm` instead. The old import paths still work but will emit a `DeprecationWarning`.
|
||||
Reference in New Issue
Block a user