These messages are developer instructions to the assistant (e.g. "Please
introduce yourself to the user"), not simulated user input. The
"developer" role is semantically correct for this purpose.
Add `system_instruction` field to `LLMSettings` so it is runtime-updatable via settings.
For Google (GoogleLLMService, GoogleVertexLLMService), deprecate the init-time arg since it was already shipped. For Anthropic, AWS Bedrock, and OpenAI, remove the init-time arg entirely since it was never shipped.
Still need to handle realtime services (OpenAI Realtime, Grok Realtime, Gemini Live).
With all these examples updated, we no longer need dedicated examples illustrating `LLMContext`, so they're removed.
Here’s where we *don’t* yet use `LLMContext` and associated machinery:
- Realtime services: OpenAI Realtime, Gemini Live, and AWS Nova Sonic (support coming soon)
- `GoogleLLMOpenAIBetaService` (it’s deprecated, so we didn’t bother adding support)
- `LLMLogObserver` (support coming soon)
- `GatedOpenAILLMContextAggregator` (support coming soon)
- `LangchainProcessor` (support coming soon)
- `Mem0MemoryService` (support coming soon)
- Examples that use LLM-specific tools definitions as opposed to `ToolsSchema` (these will be updated soon)
- Examples that rely `GoogleLLMContext.upgrade_to_google` (TBD what to do with these)
Examples that use `LLMLogObserver`:
- 30-
Examples that use `GatedOpenAILLMContextAggregator`:
- 22-
Examples that use `LangchainProcessor`:
- 07b-
Examples that use `Mem0MemoryService`:
- 37-
Examples that need updating to use `ToolsSchema`:
- 15-
- 15a-
- 20a-
- 20c-
- 20d-
- 22b-
- 22c-
- 33-
- 36-
Examples that use `GoogleLLMContext.upgrade_to_google`:
- 22d-
- 25-
Changes
Split out module attributes to make engine settings clearer
Removed internal audio buffer to use latest Speechmatics python SDK (0.4.0)
Use diarization for improved VAD in multi-speaker situations
Support custom dictionary / vocabulary with attributes
Deprecated attributes superseded by re-organised attributes
Diarization Enhancements
Focus on specific speakers (using speaker labels)
Ignore specific speakers (using speaker labels)
Separate transcription formats for active and inactive speakers
Support for known speakers
* initial config
* skeleton
* Added a README (to be added to).
* Payloads coming from the ASR.
* doc update
* handle the partials and finals
* enable diarization in the example
* support sending messages to pipecat pipeline
* requirements fix in README
* updated example (with amusement)
* updated example to match master
* updated docs
* support for diarization tags
* logic fix for wrapper
* Use an internal SpeechFrame for speaker_id (not user_id).
* only include speaker tags on finalised transcript (as this may skew end of utterance detection)
* updated docs
* correction to docs and updated example
* updated requirement
* Fix for using default EU server.
* Updates from PR comments.
* Refactor based on comments in the original PR.
Primary focus on documentation, naming conventions and how `user_id` is used.
* Check for SMX installed when importing.
* Variable name change
* Comment correction.
* Support for Esporanto and Uyghur
* Impoved language support
* function name change
* Locale fix
* intercept
* interim changes
* pass the pipeline task to the module for adding events to the top of the pipeline
* logging for the pipeline
* Reduce timeout for content aggregator.
* staged update
* testing with Azure
* Updated context (Azure was dropping punctuation) and using better ElevenLabs model.
* Updated to RT 0.3.0 and use OpenAI (not Azure).
* Missing OpenAI import; parameter name change for output locale validation.
* Revert to `0.2.0` of RT SDK.
* fix for assignment of `output_locale_code`.
* update Speechmatics library to 0.3.1
* new transcription example
* updated asyncio task handling
* Updated doc strings
* enable OpenTelemetry logging
* removed import from stt for __init__
* updated examples and default values
* updated examples
* prevent lock up when closing the STT connection