Merge pull request #4174 from pipecat-ai/fix/deepgram-sdk-6.1.0-compat

Fix Deepgram STT compatibility with deepgram-sdk 6.1.0
This commit is contained in:
Mark Backman
2026-03-27 15:11:43 -04:00
committed by GitHub
4 changed files with 12 additions and 8 deletions

1
changelog/4174.fixed.md Normal file
View File

@@ -0,0 +1 @@
- ⚠️ Fixed `DeepgramSTTService` compatibility with deepgram-sdk 6.1.0. The SDK now requires explicit message objects for `send_keep_alive()`, `send_close_stream()`, and `send_finalize()`. The minimum deepgram-sdk version is now 6.1.0.

View File

@@ -63,7 +63,7 @@ cartesia = [ "pipecat-ai[websockets-base]" ]
camb = [ "camb-sdk>=1.5.4,<2" ]
cerebras = []
daily = [ "daily-python~=0.27.0" ]
deepgram = [ "deepgram-sdk>=6.0.1,<7", "pipecat-ai[websockets-base]" ]
deepgram = [ "deepgram-sdk>=6.1.0,<7", "pipecat-ai[websockets-base]" ]
deepseek = []
elevenlabs = [ "pipecat-ai[websockets-base]" ]
fal = []

View File

@@ -41,6 +41,9 @@ try:
from deepgram import AsyncDeepgramClient
from deepgram.core.events import EventType
from deepgram.listen.v1.types import (
ListenV1CloseStream,
ListenV1Finalize,
ListenV1KeepAlive,
ListenV1Results,
ListenV1SpeechStarted,
ListenV1UtteranceEnd,
@@ -658,7 +661,7 @@ class DeepgramSTTService(STTService):
self._connection = None
if connection:
await connection.send_close_stream()
await connection.send_close_stream(ListenV1CloseStream(type="CloseStream"))
await self.cancel_task(self._connection_task)
self._connection_task = None
@@ -703,7 +706,7 @@ class DeepgramSTTService(STTService):
await asyncio.sleep(5)
if self._connection:
try:
await self._connection.send_keep_alive()
await self._connection.send_keep_alive(ListenV1KeepAlive(type="KeepAlive"))
logger.trace(f"{self}: Sent keepalive")
except Exception as e:
logger.warning(f"{self}: Keepalive failed: {e}")
@@ -800,5 +803,5 @@ class DeepgramSTTService(STTService):
# Mark that we're awaiting a from_finalize response
if self._connection:
self.request_finalize()
await self._connection.send_finalize()
await self._connection.send_finalize(ListenV1Finalize(type="Finalize"))
logger.trace(f"Triggered finalize event on: {frame.name=}, {direction=}")

8
uv.lock generated
View File

@@ -1474,7 +1474,7 @@ wheels = [
[[package]]
name = "deepgram-sdk"
version = "6.0.1"
version = "6.1.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "httpx" },
@@ -1483,9 +1483,9 @@ dependencies = [
{ name = "typing-extensions" },
{ name = "websockets" },
]
sdist = { url = "https://files.pythonhosted.org/packages/73/46/6dc45de574d766a20853452d7beccf17cb0cfeb685a0f03460f1fe49b48e/deepgram_sdk-6.0.1.tar.gz", hash = "sha256:88558a43d6173a861c8b6d6491b9ee8805679fb09fb81ef51eeb6871dad77767", size = 176743, upload-time = "2026-02-24T13:52:17.163Z" }
sdist = { url = "https://files.pythonhosted.org/packages/ef/5c/3cea6888343ae4c90ddb2640371e270b2406e3cc66f76e33c67282559ef5/deepgram_sdk-6.1.0.tar.gz", hash = "sha256:2eb124fd120be733e8297173b7201aa4375a86cd174854aaa5e2d036ba122515", size = 201973, upload-time = "2026-03-26T20:06:06.961Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/58/a4/53b9075816edc566694aed014d9864febedf232677b74f5d30bdde64b5de/deepgram_sdk-6.0.1-py3-none-any.whl", hash = "sha256:1b33d621b1c0b1d7a6a7b46fdc393aef4212e670521fada99764f5fb3f9d55fd", size = 490751, upload-time = "2026-02-24T13:52:15.998Z" },
{ url = "https://files.pythonhosted.org/packages/1b/85/4ad495bc08de200618b9e9eb17930e1863032ee3d2cfec1c4b0c7e5b8bbf/deepgram_sdk-6.1.0-py3-none-any.whl", hash = "sha256:5501c77ae64b7e496fef7d17111f8323dfb46af42b4e511eec9d998d593a9769", size = 576143, upload-time = "2026-03-26T20:06:05.407Z" },
]
[[package]]
@@ -4902,7 +4902,7 @@ requires-dist = [
{ name = "camb-sdk", marker = "extra == 'camb'", specifier = ">=1.5.4,<2" },
{ name = "coremltools", marker = "extra == 'local-smart-turn'", specifier = ">=8.0" },
{ name = "daily-python", marker = "extra == 'daily'", specifier = "~=0.27.0" },
{ name = "deepgram-sdk", marker = "extra == 'deepgram'", specifier = ">=6.0.1,<7" },
{ name = "deepgram-sdk", marker = "extra == 'deepgram'", specifier = ">=6.1.0,<7" },
{ name = "docstring-parser", specifier = ">=0.16,<1" },
{ name = "einops", marker = "extra == 'moondream'", specifier = "~=0.8.0" },
{ name = "fastapi", marker = "extra == 'runner'", specifier = ">=0.115.6,<1" },