Files
pipecat/changelog/3714.added.md
Paul Kompfner bcc2b4def4 Make clearer the distinction between "storage-mode" and "delta-mode" usage of *Settings objects
- Storage mode: for use in `self._settings`. All fields should be specified, i.e. should not be `NOT_GIVEN`.
- Delta mode: for use in `*UpdateSettingsFrame`.

In service of this, this commit:
- Adds a runtime check that all fields are specified in storage mode
- Updates all services to specify all fields in stored settings
- Updates all services to no longer check for `is_given` in stored settings (not necessary anymore)
- Updates relevant docstrings
- Renames `update` to `delta` in `*UpdateSettingsFrame`
- Updates community integrations guide
2026-02-24 14:01:28 -05:00

513 B

  • Added support for using strongly-typed objects instead of dicts for updating service settings at runtime.

    Instead of, say:

    await task.queue_frame(
        STTUpdateSettingsFrame(settings={"language": Language.ES})
    )
    

    you'd do:

    await task.queue_frame(
        STTUpdateSettingsFrame(delta=DeepgramSTTSettings(language=Language.ES))
    )
    

    Each service now vends strongly-typed classes like DeepgramSTTSettings representing the service's runtime-updatable settings.