upd changelog
This commit is contained in:
309
CHANGELOG.md
309
CHANGELOG.md
@@ -7,18 +7,299 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Updated `daily-python` to 0.21.0.
|
||||||
|
|
||||||
|
- `SimliVideoService` now accepts `api_key` and `face_id` parameters directly,
|
||||||
|
with optional `params` for `max_session_length` and `max_idle_time`
|
||||||
|
configuration, aligning with other Pipecat service patterns.
|
||||||
|
|
||||||
|
- Updated the default model to `sonic-3` for `CartesiaTTSService` and
|
||||||
|
`CartesiaHttpTTSService`.
|
||||||
|
|
||||||
|
- `FunctionFilter` now has a `filter_system_frames` arg, which controls whether
|
||||||
|
or not SystemFrames are filtered.
|
||||||
|
|
||||||
|
- Upgraded `aws_sdk_bedrock_runtime` to v0.1.1 to resolve potential CPU issues
|
||||||
|
when running `AWSNovaSonicLLMService`.
|
||||||
|
|
||||||
|
### Deprecated
|
||||||
|
|
||||||
|
- `SimliVideoService` `simli_config` parameter is deprecated. Use `api_key` and
|
||||||
|
`face_id` parameters instead.
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Removed the `aiohttp_session` arg from `SarvamTTSService` as it's no longer
|
||||||
|
used.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed an issue where `DailyTransport` would timeout prematurely on join and on
|
||||||
|
leave.
|
||||||
|
|
||||||
|
- Fixed an issue in the runner where starting a DailyTransport room via
|
||||||
|
`/start` didn't support using the `DAILY_SAMPLE_ROOM_URL` env var.
|
||||||
|
|
||||||
|
- Fixed an issue in `ServiceSwitcher` where the `STTService`s would result in
|
||||||
|
all STT services producing `TranscriptionFrame`s.
|
||||||
|
|
||||||
|
- Fixed an issue in `HumeTTSService` that was only using Octave 2, which does not support the `description` field. Now, if a description is provided, it switches to Octave 1.
|
||||||
|
|
||||||
|
## [0.0.91] - 2025-10-21
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- It is now possible to start a bot from the `/start` endpoint when using the
|
||||||
|
runner Daily's transport. This follows the Pipecat Cloud format with
|
||||||
|
`createDailyRoom` and `body` fields in the POST request body.
|
||||||
|
|
||||||
|
- Added an ellipsis character (`…`) to the end of sentence detection in the
|
||||||
|
string utils.
|
||||||
|
|
||||||
|
- Expanded support for universal `LLMContext` to `AWSNovaSonicLLMService`.
|
||||||
|
As a reminder, the context-setup pattern when using `LLMContext` is:
|
||||||
|
|
||||||
|
```python
|
||||||
|
context = LLMContext(messages, tools)
|
||||||
|
context_aggregator = LLMContextAggregatorPair(context)
|
||||||
|
```
|
||||||
|
|
||||||
|
(Note that even though `AWSNovaSonicLLMService` now supports the universal
|
||||||
|
`LLMContext`, it is not meant to be swapped out for another LLM service at
|
||||||
|
runtime.)
|
||||||
|
|
||||||
|
Worth noting: whether or not you use the new context-setup pattern with
|
||||||
|
`AWSNovaSonicLLMService`, some types have changed under the hood:
|
||||||
|
|
||||||
|
```python
|
||||||
|
## BEFORE:
|
||||||
|
|
||||||
|
# Context aggregator type
|
||||||
|
context_aggregator: AWSNovaSonicContextAggregatorPair
|
||||||
|
|
||||||
|
# Context frame type
|
||||||
|
frame: OpenAILLMContextFrame
|
||||||
|
|
||||||
|
# Context type
|
||||||
|
context: AWSNovaSonicLLMContext
|
||||||
|
# or
|
||||||
|
context: OpenAILLMContext
|
||||||
|
|
||||||
|
## AFTER:
|
||||||
|
|
||||||
|
# Context aggregator type
|
||||||
|
context_aggregator: LLMContextAggregatorPair
|
||||||
|
|
||||||
|
# Context frame type
|
||||||
|
frame: LLMContextFrame
|
||||||
|
|
||||||
|
# Context type
|
||||||
|
context: LLMContext
|
||||||
|
```
|
||||||
|
|
||||||
|
- Added support for `bulbul:v3` model in `SarvamTTSService` and
|
||||||
|
`SarvamHttpTTSService`.
|
||||||
|
|
||||||
|
- Added `keyterms_prompt` parameter to `AssemblyAIConnectionParams`.
|
||||||
|
|
||||||
|
- Added `speech_model` parameter to `AssemblyAIConnectionParams` to access the
|
||||||
|
multilingual model.
|
||||||
|
|
||||||
|
- Added support for trickle ICE to the `SmallWebRTCTransport`.
|
||||||
|
|
||||||
|
- Added support for updating `OpenAITTSService` settings (`instructions` and
|
||||||
|
`speed`) at runtime via `TTSUpdateSettingsFrame`.
|
||||||
|
|
||||||
|
- Added `--whatsapp` flag to runner to better surface WhatsApp transport logs.
|
||||||
|
|
||||||
|
- Added `on_connected` and `on_disconnected` events to TTS and STT
|
||||||
|
websocket-based services.
|
||||||
|
|
||||||
|
- Added an `aggregate_sentences` arg in `ElevenLabsHttpTTSService`, where the
|
||||||
|
default value is True.
|
||||||
|
|
||||||
|
- Added a `room_properties` arg to the Daily runner's `configure()` method,
|
||||||
|
allowing `DailyRoomProperties` to be provided.
|
||||||
|
|
||||||
|
- The runner `--folder` argument now supports downloading files from
|
||||||
|
subdirectories.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- `RunnerArguments` now include the `body` field, so there's no need to add it
|
||||||
|
to subclasses. Also, all `RunnerArguments` fields are now keyword-only.
|
||||||
|
|
||||||
|
- `CartesiaSTTService` now inherits from `WebsocketSTTService`.
|
||||||
|
|
||||||
|
- Package upgrades:
|
||||||
|
|
||||||
|
- `daily-python` upgraded to 0.20.0.
|
||||||
|
- `openai` upgraded to support up to 2.x.x.
|
||||||
|
- `openpipe` upgraded to support up to 5.x.x.
|
||||||
|
|
||||||
|
- `SpeechmaticsSTTService` updated dependencies for `speechmatics-rt>=0.5.0`.
|
||||||
|
|
||||||
|
### Deprecated
|
||||||
|
|
||||||
|
- The `send_transcription_frames` argument to `AWSNovaSonicLLMService` is
|
||||||
|
deprecated. Transcription frames are now always sent. They go upstream, to be
|
||||||
|
handled by the user context aggregator. See "Added" section for details.
|
||||||
|
|
||||||
|
- Types in `pipecat.services.aws.nova_sonic.context` have been deprecated due
|
||||||
|
to changes to support `LLMContext`. See "Changed" section for details.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed an issue where the `RTVIProcessor` was sending duplicate
|
||||||
|
`UserStartedSpeakingFrame` and `UserStoppedSpeakingFrame` messages.
|
||||||
|
|
||||||
|
- Fixed an issue in `AWSBedrockLLMService` where both `temperature` and `top_p`
|
||||||
|
were always sent together, causing conflicts with models like Claude Sonnet 4.5
|
||||||
|
that don't allow both parameters simultaneously. The service now only includes
|
||||||
|
inference parameters that are explicitly set, and `InputParams` defaults have
|
||||||
|
been changed to `None` to rely on AWS Bedrock's built-in model defaults.
|
||||||
|
|
||||||
|
- Fixed an issue in `RivaSegmentedSTTService` where a runtime error occurred due
|
||||||
|
to a mismatch in the `_handle_transcription` method's signature.
|
||||||
|
|
||||||
|
- Fixed multiple pipeline task cancellation issues. `asyncio.CancelledError` is
|
||||||
|
now handled properly in `PipelineTask` making it possible to cancel an asyncio
|
||||||
|
task that it's executing a `PipelineRunner` cleanly. Also,
|
||||||
|
`PipelineTask.cancel()` does not block anymore waiting for the `CancelFrame`
|
||||||
|
to reach the end of the pipeline (going back to the behavior in < 0.0.83).
|
||||||
|
|
||||||
|
- Fixed an issue in `ElevenLabsTTSService` and `ElevenLabsHttpTTSService` where
|
||||||
|
the Flash models would split words, resulting in a space being inserted
|
||||||
|
between words.
|
||||||
|
|
||||||
|
- Fixed an issue where audio filters' `stop()` would not be called when using
|
||||||
|
`CancelFrame`.
|
||||||
|
|
||||||
|
- Fixed an issue in `ElevenLabsHttpTTSService`, where
|
||||||
|
`apply_text_normalization` was incorrectly set as a query parameter. It's now
|
||||||
|
being added as a request parameter.
|
||||||
|
|
||||||
|
- Fixed an issue where `RimeHttpTTSService` and `PiperTTSService` could generate
|
||||||
|
incorrectly 16-bit aligned audio frames, potentially leading to internal
|
||||||
|
errors or static audio.
|
||||||
|
|
||||||
|
- Fixed an issue in `SpeechmaticsSTTService` where `AdditionalVocabEntry` items
|
||||||
|
needed to have `sounds_like` for the session to start.
|
||||||
|
|
||||||
|
### Other
|
||||||
|
|
||||||
|
- Added foundational example `47-sentry-metrics.py`, demonstrating how to use the
|
||||||
|
`SentryMetrics` processor.
|
||||||
|
|
||||||
|
- Added foundational example `14x-function-calling-openpipe.py`.
|
||||||
|
|
||||||
|
## [0.0.90] - 2025-10-10
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Added audio filter `KrispVivaFilter` using the Krisp VIVA SDK.
|
||||||
|
|
||||||
|
- Added `--folder` argument to the runner, allowing files saved in that folder
|
||||||
|
to be downloaded from `http://HOST:PORT/file/FILE`.
|
||||||
|
|
||||||
|
- Added `GeminiLiveVertexLLMService`, for accessing Gemini Live via Google
|
||||||
|
Vertex AI.
|
||||||
|
|
||||||
|
- Added some new configuration options to `GeminiLiveLLMService`:
|
||||||
|
|
||||||
|
- `thinking`
|
||||||
|
- `enable_affective_dialog`
|
||||||
|
- `proactivity`
|
||||||
|
|
||||||
|
Note that these new configuration options require using a newer model than
|
||||||
|
the default, like "gemini-2.5-flash-native-audio-preview-09-2025". The last
|
||||||
|
two require specifying `http_options=HttpOptions(api_version="v1alpha")`.
|
||||||
|
|
||||||
|
- Added `on_pipeline_error` event to `PipelineTask`. This event will get fired
|
||||||
|
when an `ErrorFrame` is pushed (use `FrameProcessor.push_error()`).
|
||||||
|
|
||||||
|
```python
|
||||||
|
@task.event_handler("on_pipeline_error")
|
||||||
|
async def on_pipeline_error(task: PipelineTask, frame: ErrorFrame):
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
- Added a `service_tier` `InputParam` to the `BaseOpenAILLMService`. This
|
||||||
|
parameter can influence the latency of the response. For example `"priority"`
|
||||||
|
will result in faster completions, but in exchange for a higher price.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Updated `GeminiLiveLLMService` to use the `google-genai` library rather than
|
||||||
|
use WebSockets directly.
|
||||||
|
|
||||||
|
### Deprecated
|
||||||
|
|
||||||
|
- `LivekitFrameSerializer` is now deprecated. Use `LiveKitTransport` instead.
|
||||||
|
|
||||||
|
- `pipecat.service.openai_realtime` is now deprecated, use
|
||||||
|
`pipecat.services.openai.realtime` instead or
|
||||||
|
`pipecat.services.azure.realtime` for Azure Realtime.
|
||||||
|
|
||||||
|
- `pipecat.service.aws_nova_sonic` is now deprecated, use
|
||||||
|
`pipecat.services.aws.nova_sonic` instead.
|
||||||
|
|
||||||
|
- `GeminiMultimodalLiveLLMService` is now deprecated, use
|
||||||
|
`GeminiLiveLLMService`.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed a `GoogleVertexLLMService` issue that would generate an error if no
|
||||||
|
token information was returned.
|
||||||
|
|
||||||
|
- `GeminiLiveLLMService` will now end gracefully (i.e. after the bot has
|
||||||
|
finished) upon receiving an `EndFrame`.
|
||||||
|
|
||||||
|
- `GeminiLiveLLMService` will try to seamlessly reconnect when it loses its
|
||||||
|
connection.
|
||||||
|
|
||||||
|
## [0.0.89] - 2025-10-07
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Reverted a change introduced in 0.0.88 that was causing pipelines to be frozen
|
||||||
|
when using interruption strategies and processors that block interruption
|
||||||
|
frames (e.g. `STTMuteFilter`).
|
||||||
|
|
||||||
|
## [0.0.88] - 2025-10-07
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Added support for Nano Banana models to `GoogleLLMService`. For example, you
|
||||||
|
can now use the `gemini-2.5-flash-image` model to generate images.
|
||||||
|
|
||||||
|
- Added `HumeTTSService` for text-to-speech synthesis using Hume AI's expressive
|
||||||
|
voice models. Provides high-quality, emotionally expressive speech synthesis
|
||||||
|
with support for various voice models. Includes example in
|
||||||
|
`examples/foundational/07ad-interruptible-hume.py`. Use with:
|
||||||
|
`uv pip install pipecat-ai[hume]`.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Updated default `GoogleLLMService` model to `gemini-2.5-flash`.
|
||||||
|
|
||||||
|
### Deprecated
|
||||||
|
|
||||||
|
- PlayHT is shutting down their API on December 31st, 2025. As a result,
|
||||||
|
`PlayHTTTSService` and `PlayHTHttpTTSService` are deprecated and will be
|
||||||
|
removed in a future version.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed an issue with `AWSNovaSonicLLMService` where the client wouldn't
|
||||||
|
connect due to a breaking change in the AWS dependency chain.
|
||||||
|
|
||||||
- `PermissionError` is now caught if NLTK's `punkt_tab` can't be downloaded.
|
- `PermissionError` is now caught if NLTK's `punkt_tab` can't be downloaded.
|
||||||
|
|
||||||
- Added `HumeTTSService` for text-to-speech synthesis using Hume AI's
|
- Fixed an issue that would cause wrong user/assistant context ordering when
|
||||||
expressive voice models. Provides high-quality, emotionally expressive speech
|
using interruption strategies.
|
||||||
synthesis with support for various voice models. Includes example in
|
|
||||||
`examples/foundational/07ad-interruptible-hume.py`.
|
|
||||||
|
|
||||||
- Added `hume` optional dependency group for Hume AI TTS integration.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Fixed RTVI incoming message handling, broken in 0.0.87.
|
- Fixed RTVI incoming message handling, broken in 0.0.87.
|
||||||
|
|
||||||
@@ -1396,7 +1677,7 @@ quality and critical bugs impacting `ParallelPipelines` functionality.**
|
|||||||
- Added `session_token` parameter to `AWSNovaSonicLLMService`.
|
- Added `session_token` parameter to `AWSNovaSonicLLMService`.
|
||||||
|
|
||||||
- Added Gemini Multimodal Live File API for uploading, fetching, listing, and
|
- Added Gemini Multimodal Live File API for uploading, fetching, listing, and
|
||||||
deleting files. See `26f-gemini-multimodal-live-files-api.py` for example usage.
|
deleting files. See `26f-gemini-live-files-api.py` for example usage.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
@@ -3402,7 +3683,7 @@ stt = DeepgramSTTService(..., live_options=LiveOptions(model="nova-2-general"))
|
|||||||
- Added the new modalities option and helper function to set Gemini output
|
- Added the new modalities option and helper function to set Gemini output
|
||||||
modalities.
|
modalities.
|
||||||
|
|
||||||
- Added `examples/foundational/26d-gemini-multimodal-live-text.py` which is
|
- Added `examples/foundational/26d-gemini-live-text.py` which is
|
||||||
using Gemini as TEXT modality and using another TTS provider for TTS process.
|
using Gemini as TEXT modality and using another TTS provider for TTS process.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
@@ -3589,9 +3870,9 @@ stt = DeepgramSTTService(..., live_options=LiveOptions(model="nova-2-general"))
|
|||||||
- Added new foundational examples for `GeminiMultimodalLiveLLMService`:
|
- Added new foundational examples for `GeminiMultimodalLiveLLMService`:
|
||||||
|
|
||||||
- `26-gemini-multimodal-live.py`
|
- `26-gemini-multimodal-live.py`
|
||||||
- `26a-gemini-multimodal-live-transcription.py`
|
- `26a-gemini-live-transcription.py`
|
||||||
- `26b-gemini-multimodal-live-video.py`
|
- `26b-gemini-live-video.py`
|
||||||
- `26c-gemini-multimodal-live-video.py`
|
- `26c-gemini-live-video.py`
|
||||||
|
|
||||||
- Added `SimliVideoService`. This is an integration for Simli AI avatars.
|
- Added `SimliVideoService`. This is an integration for Simli AI avatars.
|
||||||
(see https://www.simli.com)
|
(see https://www.simli.com)
|
||||||
@@ -5041,4 +5322,4 @@ a bit.
|
|||||||
|
|
||||||
## [0.0.2] - 2024-03-12
|
## [0.0.2] - 2024-03-12
|
||||||
|
|
||||||
Initial public release.
|
Initial public release.
|
||||||
Reference in New Issue
Block a user