Merge pull request #3470 from pipecat-ai/mb/fix-docs-0.0.99

Docs fixes after 0.0.99
This commit is contained in:
Mark Backman
2026-01-15 17:34:44 -05:00
committed by GitHub
8 changed files with 44 additions and 24 deletions

View File

@@ -91,6 +91,25 @@ autodoc_mock_imports = [
# MLX dependencies (Apple Silicon specific) # MLX dependencies (Apple Silicon specific)
"mlx", "mlx",
"mlx_whisper", # Note: might need underscore format too "mlx_whisper", # Note: might need underscore format too
# Pydantic v2 compatibility issues in third-party SDKs
"hume",
"hume.tts",
"hume.tts.types",
"cartesia",
"camb",
"sarvamai",
"openpipe",
"openai.types.beta.realtime",
"langchain_core",
"langchain_core.messages",
# FastAPI - Pydantic v2 compatibility issues during Sphinx autodoc
"fastapi",
"fastapi.applications",
"fastapi.routing",
"fastapi.params",
"fastapi.middleware",
"fastapi.responses",
"uvicorn",
] ]
# HTML output settings # HTML output settings

View File

@@ -97,7 +97,7 @@ qwen = []
remote-smart-turn = [] remote-smart-turn = []
rime = [ "pipecat-ai[websockets-base]" ] rime = [ "pipecat-ai[websockets-base]" ]
riva = [ "pipecat-ai[nvidia]" ] riva = [ "pipecat-ai[nvidia]" ]
runner = [ "python-dotenv>=1.0.0,<2.0.0", "uvicorn>=0.32.0,<1.0.0", "fastapi>=0.115.6,<0.122.0", "pipecat-ai-small-webrtc-prebuilt>=2.0.4"] runner = [ "python-dotenv>=1.0.0,<2.0.0", "uvicorn>=0.32.0,<1.0.0", "fastapi>=0.115.6,<0.128.0", "pipecat-ai-small-webrtc-prebuilt>=2.0.4"]
sagemaker = ["aws_sdk_sagemaker_runtime_http2; python_version>='3.12'"] sagemaker = ["aws_sdk_sagemaker_runtime_http2; python_version>='3.12'"]
sambanova = [] sambanova = []
sarvam = [ "sarvamai==0.1.21", "pipecat-ai[websockets-base]" ] sarvam = [ "sarvamai==0.1.21", "pipecat-ai[websockets-base]" ]
@@ -113,7 +113,7 @@ together = []
tracing = [ "opentelemetry-sdk>=1.33.0", "opentelemetry-api>=1.33.0", "opentelemetry-instrumentation>=0.54b0" ] tracing = [ "opentelemetry-sdk>=1.33.0", "opentelemetry-api>=1.33.0", "opentelemetry-instrumentation>=0.54b0" ]
ultravox = [ "pipecat-ai[websockets-base]" ] ultravox = [ "pipecat-ai[websockets-base]" ]
webrtc = [ "aiortc>=1.14.0,<2", "opencv-python>=4.11.0.86,<5" ] webrtc = [ "aiortc>=1.14.0,<2", "opencv-python>=4.11.0.86,<5" ]
websocket = [ "pipecat-ai[websockets-base]", "fastapi>=0.115.6,<0.122.0" ] websocket = [ "pipecat-ai[websockets-base]", "fastapi>=0.115.6,<0.128.0" ]
websockets-base = [ "websockets>=13.1,<16.0" ] websockets-base = [ "websockets>=13.1,<16.0" ]
whisper = [ "faster-whisper~=1.1.1" ] whisper = [ "faster-whisper~=1.1.1" ]

View File

@@ -61,6 +61,7 @@ class KrispFilter(BaseAudioFilter):
Provides real-time noise reduction for audio streams using Krisp's Provides real-time noise reduction for audio streams using Krisp's
proprietary noise suppression algorithms. Requires a Krisp model file proprietary noise suppression algorithms. Requires a Krisp model file
for operation. for operation.
.. deprecated:: 0.0.94 .. deprecated:: 0.0.94
The KrispFilter is deprecated and will be removed in a future version. The KrispFilter is deprecated and will be removed in a future version.
Use KrispVivaFilter instead. Use KrispVivaFilter instead.

View File

@@ -34,8 +34,7 @@ class VonageFrameSerializer(FrameSerializer):
WebSocket streaming protocol. WebSocket streaming protocol.
Note: Note:
Ref docs: Ref docs: https://developer.vonage.com/en/video/guides/audio-connector
https://developer.vonage.com/en/video/guides/audio-connector
""" """
class InputParams(BaseModel): class InputParams(BaseModel):

View File

@@ -1002,17 +1002,15 @@ class TokenDetails(BaseModel):
image_tokens: Number of image tokens used (for input only). image_tokens: Number of image tokens used (for input only).
""" """
model_config = ConfigDict(extra="allow")
__pydantic_extra__: dict[str, Any]
cached_tokens: Optional[int] = 0 cached_tokens: Optional[int] = 0
text_tokens: Optional[int] = 0 text_tokens: Optional[int] = 0
audio_tokens: Optional[int] = 0 audio_tokens: Optional[int] = 0
cached_tokens_details: Optional[CachedTokensDetails] = None cached_tokens_details: Optional[CachedTokensDetails] = None
image_tokens: Optional[int] = 0 image_tokens: Optional[int] = 0
class Config:
"""Pydantic configuration for TokenDetails."""
extra = "allow"
class Usage(BaseModel): class Usage(BaseModel):
"""Token usage statistics for a response. """Token usage statistics for a response.

View File

@@ -877,15 +877,13 @@ class TokenDetails(BaseModel):
audio_tokens: Number of audio tokens used. Defaults to 0. audio_tokens: Number of audio tokens used. Defaults to 0.
""" """
model_config = ConfigDict(extra="allow")
__pydantic_extra__: dict[str, Any]
cached_tokens: Optional[int] = 0 cached_tokens: Optional[int] = 0
text_tokens: Optional[int] = 0 text_tokens: Optional[int] = 0
audio_tokens: Optional[int] = 0 audio_tokens: Optional[int] = 0
class Config:
"""Pydantic configuration for TokenDetails."""
extra = "allow"
class Usage(BaseModel): class Usage(BaseModel):
"""Token usage statistics for a response. """Token usage statistics for a response.

View File

@@ -10,11 +10,11 @@ Methods that wrap the Daily API to create rooms, check room URLs, and get meetin
""" """
import time import time
from typing import Dict, List, Literal, Optional from typing import Any, Dict, List, Literal, Optional
from urllib.parse import urlparse from urllib.parse import urlparse
import aiohttp import aiohttp
from pydantic import BaseModel, Field, ValidationError from pydantic import BaseModel, ConfigDict, Field, ValidationError
class DailyRoomSipParams(BaseModel): class DailyRoomSipParams(BaseModel):
@@ -77,7 +77,7 @@ class TranscriptionBucketConfig(BaseModel):
allow_api_access: bool = False allow_api_access: bool = False
class DailyRoomProperties(BaseModel, extra="allow"): class DailyRoomProperties(BaseModel):
"""Properties for configuring a Daily room. """Properties for configuring a Daily room.
Reference: https://docs.daily.co/reference/rest-api/rooms/create-room#properties Reference: https://docs.daily.co/reference/rest-api/rooms/create-room#properties
@@ -100,6 +100,11 @@ class DailyRoomProperties(BaseModel, extra="allow"):
start_video_off: Whether video is off by default. start_video_off: Whether video is off by default.
""" """
model_config = ConfigDict(extra="allow")
# Pydantic v2.12+ requires explicit annotation for extra fields
__pydantic_extra__: dict[str, Any]
exp: Optional[float] = None exp: Optional[float] = None
enable_chat: bool = False enable_chat: bool = False
enable_prejoin_ui: bool = False enable_prejoin_ui: bool = False
@@ -113,7 +118,7 @@ class DailyRoomProperties(BaseModel, extra="allow"):
recordings_bucket: Optional[RecordingsBucketConfig] = None recordings_bucket: Optional[RecordingsBucketConfig] = None
transcription_bucket: Optional[TranscriptionBucketConfig] = None transcription_bucket: Optional[TranscriptionBucketConfig] = None
sip: Optional[DailyRoomSipParams] = None sip: Optional[DailyRoomSipParams] = None
sip_uri: Optional[dict] = None sip_uri: Optional[Dict[str, Any]] = None
start_video_off: bool = False start_video_off: bool = False
@property @property
@@ -203,7 +208,7 @@ class DailyMeetingTokenProperties(BaseModel):
enable_recording: Optional[Literal["cloud", "local", "raw-tracks"]] = None enable_recording: Optional[Literal["cloud", "local", "raw-tracks"]] = None
enable_prejoin_ui: Optional[bool] = None enable_prejoin_ui: Optional[bool] = None
start_cloud_recording: Optional[bool] = None start_cloud_recording: Optional[bool] = None
permissions: Optional[dict] = None permissions: Optional[Dict[str, Any]] = None
class DailyMeetingTokenParams(BaseModel): class DailyMeetingTokenParams(BaseModel):

10
uv.lock generated
View File

@@ -1446,7 +1446,7 @@ wheels = [
[[package]] [[package]]
name = "fastapi" name = "fastapi"
version = "0.121.3" version = "0.127.1"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
dependencies = [ dependencies = [
{ name = "annotated-doc" }, { name = "annotated-doc" },
@@ -1454,9 +1454,9 @@ dependencies = [
{ name = "starlette" }, { name = "starlette" },
{ name = "typing-extensions" }, { name = "typing-extensions" },
] ]
sdist = { url = "https://files.pythonhosted.org/packages/80/f0/086c442c6516195786131b8ca70488c6ef11d2f2e33c9a893576b2b0d3f7/fastapi-0.121.3.tar.gz", hash = "sha256:0055bc24fe53e56a40e9e0ad1ae2baa81622c406e548e501e717634e2dfbc40b", size = 344501, upload-time = "2025-11-19T16:53:39.243Z" } sdist = { url = "https://files.pythonhosted.org/packages/96/8a/6b9ba6eb8ff3817caae83120495965d9e70afb4d6348cb120e464ee199f4/fastapi-0.127.1.tar.gz", hash = "sha256:946a87ee5d931883b562b6bada787d6c8178becee2683cb3f9b980d593206359", size = 391876, upload-time = "2025-12-26T13:04:47.075Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/98/b6/4f620d7720fc0a754c8c1b7501d73777f6ba43b57c8ab99671f4d7441eb8/fastapi-0.121.3-py3-none-any.whl", hash = "sha256:0c78fc87587fcd910ca1bbf5bc8ba37b80e119b388a7206b39f0ecc95ebf53e9", size = 109801, upload-time = "2025-11-19T16:53:37.918Z" }, { url = "https://files.pythonhosted.org/packages/d2/f3/a6858d147ed2645c095d11dc2440f94a5f1cd8f4df888e3377e6b5281a0f/fastapi-0.127.1-py3-none-any.whl", hash = "sha256:31d670a4f9373cc6d7994420f98e4dc46ea693145207abc39696746c83a44430", size = 112332, upload-time = "2025-12-26T13:04:45.329Z" },
] ]
[package.optional-dependencies] [package.optional-dependencies]
@@ -4513,8 +4513,8 @@ requires-dist = [
{ name = "docstring-parser", specifier = "~=0.16" }, { name = "docstring-parser", specifier = "~=0.16" },
{ name = "einops", marker = "extra == 'moondream'", specifier = "~=0.8.0" }, { name = "einops", marker = "extra == 'moondream'", specifier = "~=0.8.0" },
{ name = "fal-client", marker = "extra == 'fal'", specifier = "~=0.5.9" }, { name = "fal-client", marker = "extra == 'fal'", specifier = "~=0.5.9" },
{ name = "fastapi", marker = "extra == 'runner'", specifier = ">=0.115.6,<0.122.0" }, { name = "fastapi", marker = "extra == 'runner'", specifier = ">=0.115.6,<0.128.0" },
{ name = "fastapi", marker = "extra == 'websocket'", specifier = ">=0.115.6,<0.122.0" }, { name = "fastapi", marker = "extra == 'websocket'", specifier = ">=0.115.6,<0.128.0" },
{ name = "faster-whisper", marker = "extra == 'whisper'", specifier = "~=1.1.1" }, { name = "faster-whisper", marker = "extra == 'whisper'", specifier = "~=1.1.1" },
{ name = "google-cloud-speech", marker = "extra == 'google'", specifier = ">=2.33.0,<3" }, { name = "google-cloud-speech", marker = "extra == 'google'", specifier = ">=2.33.0,<3" },
{ name = "google-cloud-texttospeech", marker = "extra == 'google'", specifier = ">=2.31.0,<3" }, { name = "google-cloud-texttospeech", marker = "extra == 'google'", specifier = ">=2.31.0,<3" },