121 lines
3.7 KiB
TOML
121 lines
3.7 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=64", "setuptools_scm>=8"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "pipecat-ai"
|
|
dynamic = ["version"]
|
|
description = "An open source framework for voice (and multimodal) assistants"
|
|
license = { text = "BSD 2-Clause License" }
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
keywords = ["webrtc", "audio", "video", "ai"]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: BSD License",
|
|
"Topic :: Communications :: Conferencing",
|
|
"Topic :: Multimedia :: Sound/Audio",
|
|
"Topic :: Multimedia :: Video",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence"
|
|
]
|
|
dependencies = [
|
|
"aiohttp~=3.11.11",
|
|
"audioop-lts~=0.2.1; python_version>='3.13'",
|
|
# We need an older version of `httpx` that doesn't remove the deprecated
|
|
# `proxies` argument. This is necessary for Azure and Anthropic clients.
|
|
"httpx~=0.27.2",
|
|
"loguru~=0.7.3",
|
|
"Markdown~=3.7",
|
|
"numpy~=1.26.4",
|
|
"Pillow~=11.1.0",
|
|
"protobuf~=5.29.3",
|
|
"pydantic~=2.10.5",
|
|
"pyloudnorm~=0.1.1",
|
|
"resampy~=0.4.3",
|
|
"soxr~=0.5.0"
|
|
]
|
|
|
|
[project.urls]
|
|
Source = "https://github.com/pipecat-ai/pipecat"
|
|
Website = "https://pipecat.ai"
|
|
|
|
[project.optional-dependencies]
|
|
anthropic = [ "anthropic~=0.45.2" ]
|
|
assemblyai = [ "assemblyai~=0.36.0" ]
|
|
aws = [ "boto3~=1.35.99" ]
|
|
azure = [ "azure-cognitiveservices-speech~=1.42.0", "openai~=1.59.6" ]
|
|
canonical = [ "aiofiles~=24.1.0" ]
|
|
cartesia = [ "cartesia~=1.3.1", "websockets~=13.1" ]
|
|
cerebras = [ "openai~=1.59.6" ]
|
|
deepseek = [ "openai~=1.59.6" ]
|
|
daily = [ "daily-python~=0.14.2" ]
|
|
deepgram = [ "deepgram-sdk~=3.8.0" ]
|
|
elevenlabs = [ "websockets~=13.1" ]
|
|
fal = [ "fal-client~=0.5.6" ]
|
|
fish = [ "ormsgpack~=1.7.0", "websockets~=13.1" ]
|
|
gladia = [ "websockets~=13.1" ]
|
|
google = [ "google-generativeai~=0.8.3", "google-cloud-texttospeech~=2.24.0", "google-genai~=1.0.0", "google-cloud-speech~=2.30.0" ]
|
|
grok = [ "openai~=1.59.6" ]
|
|
groq = [ "openai~=1.59.6" ]
|
|
gstreamer = [ "pygobject~=3.50.0" ]
|
|
fireworks = [ "openai~=1.59.6" ]
|
|
krisp = [ "pipecat-ai-krisp~=0.3.0" ]
|
|
koala = [ "pvkoala~=2.0.3" ]
|
|
langchain = [ "langchain~=0.3.14", "langchain-community~=0.3.14", "langchain-openai~=0.3.0" ]
|
|
livekit = [ "livekit~=0.19.1", "livekit-api~=0.8.1", "tenacity~=9.0.0" ]
|
|
lmnt = [ "websockets~=13.1" ]
|
|
local = [ "pyaudio~=0.2.14" ]
|
|
moondream = [ "einops~=0.8.0", "timm~=1.0.13", "transformers~=4.48.0" ]
|
|
nim = [ "openai~=1.59.6" ]
|
|
noisereduce = [ "noisereduce~=3.0.3" ]
|
|
openai = [ "openai~=1.59.6", "websockets~=13.1", "python-deepcompare~=2.1.0" ]
|
|
openpipe = [ "openpipe~=4.45.0" ]
|
|
perplexity = [ "openai~=1.59.6" ]
|
|
playht = [ "pyht~=0.1.6", "websockets~=13.1" ]
|
|
rime = [ "websockets~=13.1" ]
|
|
riva = [ "nvidia-riva-client~=2.18.0" ]
|
|
sentry = [ "sentry-sdk~=2.20.0" ]
|
|
silero = [ "onnxruntime~=1.20.1" ]
|
|
simli = [ "simli-ai~=0.1.10"]
|
|
soundfile = [ "soundfile~=0.13.0" ]
|
|
together = [ "openai~=1.59.6" ]
|
|
websocket = [ "websockets~=13.1", "fastapi~=0.115.6" ]
|
|
whisper = [ "faster-whisper~=1.1.1" ]
|
|
openrouter = [ "openai~=1.59.6" ]
|
|
|
|
[tool.setuptools.packages.find]
|
|
# All the following settings are optional:
|
|
where = ["src"]
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "--verbose"
|
|
testpaths = ["tests"]
|
|
pythonpath = ["src"]
|
|
asyncio_default_fixture_loop_scope = "function"
|
|
filterwarnings = [
|
|
"ignore:'audioop' is deprecated:DeprecationWarning",
|
|
]
|
|
|
|
[tool.setuptools_scm]
|
|
local_scheme = "no-local-version"
|
|
fallback_version = "0.0.0-dev"
|
|
|
|
[tool.ruff]
|
|
exclude = [".git", "*_pb2.py"]
|
|
line-length = 100
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"D", # Docstring rules
|
|
"I", # Import rules
|
|
]
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "google"
|
|
|
|
[tool.coverage.run]
|
|
command_line = "--module pytest"
|
|
source = ["src"]
|
|
omit = ["*/tests/*"]
|