Skip to content

Add optional service field to ServiceUpdateSettingsFrame for targ…#4004

Merged
kompfner merged 3 commits intomainfrom
pk/service-settings-update-frame-can-target-specific-service
Mar 12, 2026
Merged

Add optional service field to ServiceUpdateSettingsFrame for targ…#4004
kompfner merged 3 commits intomainfrom
pk/service-settings-update-frame-can-target-specific-service

Conversation

@kompfner
Copy link
Copy Markdown
Contributor

…eting a specific service instance

When service is set and doesn't match, the service forwards the frame instead of consuming it. This allows targeting a specific service when multiple services of the same type exist in the pipeline.

…eting a specific service instance

When `service` is set and doesn't match, the service forwards the frame instead of consuming it. This allows targeting a specific service when multiple services of the same type exist in the pipeline.
# directly. The frame.delta path falls through to super, which calls
# _update_settings → our override handles the rest.
if isinstance(frame, LLMUpdateSettingsFrame) and frame.delta is None:
if (
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure we even strictly need to update this file, as the service is deprecated...we could just have it not support the new service targeting field...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actually tempted to do that, just to avoid having to test this stuff...what do y'all think?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I would not update this since it's deprecated. OpenAI is shutting it down soon too: May 7, 2026.


settings: Mapping[str, Any] = field(default_factory=dict)
delta: Optional["ServiceSettings"] = None
service: Optional["FrameProcessor"] = None
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This follows the pattern of how we do service-specific targeting in ServiceSwitcherRequestMetadataFrame and ManuallySwitchServiceFrame.

@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 12, 2026

Codecov Report

❌ Patch coverage is 10.00000% with 9 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/pipecat/services/llm_service.py 0.00% 3 Missing ⚠️
src/pipecat/services/stt_service.py 0.00% 3 Missing ⚠️
src/pipecat/services/tts_service.py 0.00% 3 Missing ⚠️
Files with missing lines Coverage Δ
src/pipecat/frames/frames.py 90.18% <100.00%> (+0.01%) ⬆️
src/pipecat/services/llm_service.py 49.04% <0.00%> (-0.32%) ⬇️
src/pipecat/services/stt_service.py 34.44% <0.00%> (-0.26%) ⬇️
src/pipecat/services/tts_service.py 62.78% <0.00%> (-0.23%) ⬇️

... and 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Contributor

@markbackman markbackman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense! I agree with not supporting OpenAI Realtime Beta.

…in the deprecated `OpenAIRealtimeBetaLLMService`
@kompfner kompfner merged commit 3833009 into main Mar 12, 2026
6 checks passed
@kompfner kompfner deleted the pk/service-settings-update-frame-can-target-specific-service branch March 12, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants