Skip to content

Commit 7fe458f

Browse files
authored
Merge pull request #3817 from pipecat-ai/pk/service-settings-fix-back-compat-for-nested-external-sdk-types
Flatten `LiveOptions` into individual fields on `DeepgramSTTSettings`…
2 parents b63ca52 + faed775 commit 7fe458f

7 files changed

Lines changed: 451 additions & 129 deletions

File tree

.github/workflows/coverage.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,12 @@ jobs:
3737
uv sync --group dev \
3838
--extra anthropic \
3939
--extra aws \
40+
--extra deepgram \
4041
--extra google \
4142
--extra langchain \
4243
--extra livekit \
4344
--extra piper \
45+
--extra sagemaker \
4446
--extra tracing \
4547
--extra websocket
4648

.github/workflows/tests.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,12 @@ jobs:
4141
uv sync --group dev \
4242
--extra anthropic \
4343
--extra aws \
44+
--extra deepgram \
4445
--extra google \
4546
--extra langchain \
4647
--extra livekit \
4748
--extra piper \
49+
--extra sagemaker \
4850
--extra tracing \
4951
--extra websocket
5052

examples/foundational/55a-update-settings-deepgram-sagemaker-stt.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import asyncio
88
import os
99

10+
from deepgram import LiveOptions
1011
from dotenv import load_dotenv
1112
from loguru import logger
1213

@@ -106,12 +107,25 @@ async def on_client_connected(transport, client):
106107
messages.append({"role": "system", "content": "Please introduce yourself to the user."})
107108
await task.queue_frames([LLMRunFrame()])
108109

110+
# NOTE: after this change, the bot will only respond if you speak Spanish
109111
await asyncio.sleep(10)
110-
logger.info("Updating Deepgram SageMaker STT settings: language=es")
112+
logger.info("Updating Deepgram SageMaker STT settings: language=es, punctuate=False")
111113
await task.queue_frame(
112-
STTUpdateSettingsFrame(delta=DeepgramSageMakerSTTSettings(language=Language.ES))
114+
STTUpdateSettingsFrame(
115+
delta=DeepgramSageMakerSTTSettings(
116+
language=Language.ES,
117+
live_options=LiveOptions(punctuate=False),
118+
)
119+
)
113120
)
114121

122+
# Old-style dict update (for backward-compat testing):
123+
# await asyncio.sleep(10)
124+
# logger.info("Updating Deepgram SageMaker STT settings via dict: punctuate=False, filler_words=True")
125+
# await task.queue_frame(
126+
# STTUpdateSettingsFrame(settings={"punctuate": False, "filler_words": True})
127+
# )
128+
115129
@transport.event_handler("on_client_disconnected")
116130
async def on_client_disconnected(transport, client):
117131
logger.info(f"Client disconnected")

examples/foundational/55a-update-settings-deepgram-stt.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import asyncio
88
import os
99

10+
from deepgram import LiveOptions
1011
from dotenv import load_dotenv
1112
from loguru import logger
1213

@@ -100,12 +101,25 @@ async def on_client_connected(transport, client):
100101
messages.append({"role": "system", "content": "Please introduce yourself to the user."})
101102
await task.queue_frames([LLMRunFrame()])
102103

104+
# NOTE: after this change, the bot will only respond if you speak Spanish
103105
await asyncio.sleep(10)
104-
logger.info("Updating Deepgram STT settings: language=es")
106+
logger.info("Updating Deepgram STT settings: language=es, punctuate=False")
105107
await task.queue_frame(
106-
STTUpdateSettingsFrame(delta=DeepgramSTTSettings(language=Language.ES))
108+
STTUpdateSettingsFrame(
109+
delta=DeepgramSTTSettings(
110+
language=Language.ES,
111+
live_options=LiveOptions(punctuate=False),
112+
)
113+
)
107114
)
108115

116+
# Old-style dict update (for backward-compat testing):
117+
# await asyncio.sleep(10)
118+
# logger.info("Updating Deepgram STT settings via dict: punctuate=False, filler_words=True")
119+
# await task.queue_frame(
120+
# STTUpdateSettingsFrame(settings={"punctuate": False, "filler_words": True})
121+
# )
122+
109123
@transport.event_handler("on_client_disconnected")
110124
async def on_client_disconnected(transport, client):
111125
logger.info(f"Client disconnected")

0 commit comments

Comments
 (0)