registry

Service registry for Pipecat services.

The registry consists of: - service_metadata.py: SOURCE OF TRUTH - All service definitions - service_loader.py: Logic for loading and validating services - _configs.py: AUTO-GENERATED - Service initialization code - _imports.py: AUTO-GENERATED - Import statements

class pipecat.cli.registry.ServiceRegistry[source]

Bases: object

Central registry for all Pipecat services and their configurations.

This class contains only DATA - service definitions, import mappings, and feature configurations. All logic for querying and working with services has been moved to ServiceLoader for better separation of concerns.

For operations like: - Finding services: use ServiceLoader.get_service_by_value() - Getting imports: use ServiceLoader.get_imports_for_services() - Extracting extras: use ServiceLoader.extract_extras_for_services()

SERVICE_CONFIGS = {'anthropic_llm': 'AnthropicLLMService(\n        api_key=os.getenv("ANTHROPIC_API_KEY"),\n        settings=AnthropicLLMService.Settings(\n            model=os.getenv("ANTHROPIC_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'assemblyai_stt': 'AssemblyAISTTService(api_key=os.getenv("ASSEMBLYAI_API_KEY"))', 'asyncai_tts': 'AsyncAITTSService(\n        api_key=os.getenv("ASYNCAI_API_KEY"),\n        settings=AsyncAITTSService.Settings(\n            voice=os.getenv("ASYNCAI_VOICE_ID"),\n        ),\n    )\n', 'aws_bedrock_llm': 'AWSBedrockLLMService(\n    aws_region=os.getenv("AWS_REGION"),\n    settings=AWSBedrockLLMService.Settings(\n        model=os.getenv("AWS_BEDROCK_MODEL"),\n        system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n    ),\n)\n', 'aws_nova_realtime': 'llm = AWSNovaSonicLLMService(\n    secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"),\n    access_key_id=os.getenv("AWS_ACCESS_KEY_ID"),\n    region=os.getenv("AWS_REGION"),\n    session_token=os.getenv("AWS_SESSION_TOKEN"),\n    settings=AWSNovaSonicLLMService.Settings(\n        voice=os.getenv("AWS_VOICE_ID"),\n        system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n    ),\n)\n', 'aws_polly_tts': 'AWSPollyTTSService(\n        region=os.getenv("AWS_REGION"),\n        settings=AWSPollyTTSService.Settings(\n            voice=os.getenv("AWS_VOICE_ID"),\n        ),\n    )\n', 'aws_transcribe_stt': 'AWSTranscribeSTTService(\n        aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID"),\n        aws_session_token=os.getenv("AWS_AWS_SESSION_TOKEN"),\n        region=os.getenv("AWS_REGION")\n    )\n', 'azure_llm': 'AzureLLMService(\n        api_key=os.getenv("AZURE_CHATGPT_API_KEY"),\n        endpoint=os.getenv("AZURE_CHATGPT_ENDPOINT"),\n        settings=AzureLLMService.Settings(\n            model=os.getenv("AZURE_CHATGPT_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'azure_realtime': 'session_properties = SessionProperties(\n    input_audio_transcription=InputAudioTranscription(model="whisper-1"),\n)\nllm = AzureRealtimeLLMService(\n    api_key=os.getenv("AZURE_REALTIME_API_KEY"),\n    base_url=os.getenv("AZURE_REALTIME_BASE_URL"),\n    settings=AzureRealtimeLLMService.Settings(\n        session_properties=session_properties,\n        system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n    ),\n)\n', 'azure_stt': 'AzureSTTService(\n        api_key=os.getenv("AZURE_SPEECH_API_KEY"),\n        region=os.getenv("AZURE_SPEECH_REGION")\n    )\n', 'azure_tts': 'AzureTTSService(\n        api_key=os.getenv("AZURE_SPEECH_API_KEY"),\n        region=os.getenv("AZURE_SPEECH_REGION"),\n        settings=AzureTTSService.Settings(\n            voice=os.getenv("AZURE_SPEECH_VOICE_ID"),\n        ),\n    )\n', 'camb_tts': 'CambTTSService(\n        api_key=os.getenv("CAMB_API_KEY"),\n        settings=CambTTSService.Settings(\n            voice=os.getenv("CAMB_VOICE_ID"),\n        ),\n    )\n', 'cartesia_stt': 'CartesiaSTTService(api_key=os.getenv("CARTESIA_API_KEY"))', 'cartesia_tts': 'CartesiaTTSService(\n        api_key=os.getenv("CARTESIA_API_KEY"),\n        settings=CartesiaTTSService.Settings(\n            voice=os.getenv("CARTESIA_VOICE_ID", "71a7ad14-091c-4e8e-a314-022ece01c121"),\n        ),\n    )\n', 'cartesia_turns_stt': 'CartesiaTurnsSTTService(api_key=os.getenv("CARTESIA_API_KEY"))', 'cerebras_llm': 'CerebrasLLMService(\n        api_key=os.getenv("CEREBRAS_API_KEY"),\n        settings=CerebrasLLMService.Settings(\n            model=os.getenv("CEREBRAS_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'deepgram_flux_sagemaker_stt': 'DeepgramFluxSageMakerSTTService(\n        endpoint_name=os.getenv("DEEPGRAM_FLUX_SAGEMAKER_STT_ENDPOINT_NAME"),\n        region=os.getenv("DEEPGRAM_FLUX_SAGEMAKER_STT_REGION")\n    )\n', 'deepgram_flux_stt': 'DeepgramFluxSTTService(api_key=os.getenv("DEEPGRAM_API_KEY"))', 'deepgram_sagemaker_stt': 'DeepgramSageMakerSTTService(\n        endpoint_name=os.getenv("DEEPGRAM_SAGEMAKER_STT_ENDPOINT_NAME"),\n        region=os.getenv("DEEPGRAM_SAGEMAKER_STT_REGION")\n    )\n', 'deepgram_sagemaker_tts': 'DeepgramSageMakerTTSService(\n        endpoint_name=os.getenv("DEEPGRAM_SAGEMAKER_TTS_ENDPOINT_NAME"),\n        region=os.getenv("DEEPGRAM_SAGEMAKER_TTS_REGION"),\n        settings=DeepgramSageMakerTTSService.Settings(\n            voice=os.getenv("DEEPGRAM_SAGEMAKER_TTS_VOICE_ID"),\n        ),\n    )\n', 'deepgram_stt': 'DeepgramSTTService(api_key=os.getenv("DEEPGRAM_API_KEY"))', 'deepgram_tts': 'DeepgramTTSService(\n        api_key=os.getenv("DEEPGRAM_API_KEY"),\n        settings=DeepgramTTSService.Settings(\n            voice=os.getenv("DEEPGRAM_VOICE_ID"),\n        ),\n    )\n', 'deepseek_llm': 'DeepSeekLLMService(\n        api_key=os.getenv("DEEPSEEK_API_KEY"),\n        settings=DeepSeekLLMService.Settings(\n            model=os.getenv("DEEPSEEK_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'elevenlabs_realtime_stt': 'ElevenLabsRealtimeSTTService(api_key=os.getenv("ELEVENLABS_API_KEY"))', 'elevenlabs_stt': 'ElevenLabsSTTService(\n        api_key=os.getenv("ELEVENLABS_API_KEY"),\n        aiohttp_session=session\n    )\n', 'elevenlabs_tts': 'ElevenLabsTTSService(\n        api_key=os.getenv("ELEVENLABS_API_KEY"),\n        settings=ElevenLabsTTSService.Settings(\n            voice=os.getenv("ELEVENLABS_VOICE_ID"),\n        ),\n    )\n', 'fal_stt': 'FalSTTService(\n        api_key=os.getenv("FAL_API_KEY"),\n        aiohttp_session=session\n    )\n', 'fireworks_llm': 'FireworksLLMService(\n        api_key=os.getenv("FIREWORKS_API_KEY"),\n        settings=FireworksLLMService.Settings(\n            model=os.getenv("FIREWORKS_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'fish_tts': 'FishAudioTTSService(\n        api_key=os.getenv("FISH_API_KEY"),\n        settings=FishAudioTTSService.Settings(\n            voice=os.getenv("FISH_VOICE_ID"),\n        ),\n    )\n', 'gemini_live_realtime': 'llm = GeminiLiveLLMService(\n    api_key=os.getenv("GOOGLE_API_KEY"),\n    settings=GeminiLiveLLMService.Settings(\n        model=os.getenv("GOOGLE_MODEL"),\n        voice=os.getenv("GOOGLE_VOICE_ID"),\n        system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n    ),\n)\n', 'gemini_tts': 'GeminiTTSService(\n        credentials=os.getenv("GOOGLE_APPLICATION_CREDENTIALS"),\n        settings=GeminiTTSService.Settings(\n            voice=os.getenv("GOOGLE_VOICE_ID"),\n        ),\n    )\n', 'gemini_vertex_live_realtime': 'llm = GeminiLiveVertexLLMService(\n        credentials=os.getenv("GOOGLE_APPLICATION_CREDENTIALS"),\n        project_id=os.getenv("GOOGLE_PROJECT_ID"),\n        location=os.getenv("GOOGLE_LOCATION"),\n        settings=GeminiLiveVertexLLMService.Settings(\n            model=os.getenv("GOOGLE_MODEL"),\n            voice=os.getenv("GOOGLE_VOICE_ID"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    ),\n)\n', 'gladia_stt': 'GladiaSTTService(\n        api_key=os.getenv("GLADIA_API_KEY"),\n        region=os.getenv("GLADIA_REGION")\n    )\n', 'google_gemini_llm': 'GoogleLLMService(\n        api_key=os.getenv("GOOGLE_API_KEY"),\n        settings=GoogleLLMService.Settings(\n            model=os.getenv("GOOGLE_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'google_stt': 'GoogleSTTService(\n        credentials=os.getenv("GOOGLE_APPLICATION_CREDENTIALS"),\n        location=os.getenv("GOOGLE_LOCATION")\n    )\n', 'google_tts': 'GoogleTTSService(\n        credentials=os.getenv("GOOGLE_APPLICATION_CREDENTIALS"),\n        settings=GoogleTTSService.Settings(\n            voice=os.getenv("GOOGLE_VOICE_ID"),\n        ),\n    )\n', 'google_vertex_llm': 'GoogleVertexLLMService(\n        credentials=os.getenv("GOOGLE_APPLICATION_CREDENTIALS"),\n        location=os.getenv("GOOGLE_LOCATION"),\n        project_id=os.getenv("GOOGLE_PROJECT_ID"),\n        settings=GoogleVertexLLMService.Settings(\n            model=os.getenv("GOOGLE_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'gradium_stt': 'GradiumSTTService(api_key=os.getenv("GRADIUM_API_KEY"))', 'gradium_tts': 'GradiumTTSService(\n        api_key=os.getenv("GRADIUM_API_KEY"),\n        settings=GradiumTTSService.Settings(\n            voice=os.getenv("GRADIUM_VOICE_ID"),\n        ),\n    )\n', 'groq_llm': 'GroqLLMService(\n        api_key=os.getenv("GROQ_API_KEY"),\n        settings=GroqLLMService.Settings(\n            model=os.getenv("GROQ_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'groq_stt': 'GroqSTTService(api_key=os.getenv("GROQ_API_KEY"))', 'groq_tts': 'GroqTTSService(\n        api_key=os.getenv("GROQ_API_KEY"),\n        settings=GroqTTSService.Settings(\n            voice=os.getenv("GROQ_VOICE_ID"),\n        ),\n    )\n', 'heygen_video': 'HeyGenVideoService(\n    api_key=os.getenv("HEYGEN_API_KEY"),\n    service_type=ServiceType.LIVE_AVATAR,\n    session=session,\n    session_request=LiveAvatarNewSessionRequest(\n        avatar_id="HEYGEN_AVATAR_ID",\n    ),\n)\n', 'hume_tts': 'HumeTTSService(\n        api_key=os.getenv("HUME_API_KEY"),\n        settings=HumeTTSService.Settings(\n            voice=os.getenv("HUME_VOICE_ID"),\n        ),\n    )\n', 'inception_llm': 'InceptionLLMService(\n        api_key=os.getenv("INCEPTION_API_KEY"),\n        settings=InceptionLLMService.Settings(\n            model=os.getenv("INCEPTION_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'inworld_tts': 'InworldTTSService(\n        api_key=os.getenv("INWORLD_API_KEY"),\n        settings=InworldTTSService.Settings(\n            voice=os.getenv("INWORLD_VOICE_ID"),\n        ),\n    )\n', 'kokoro_tts': 'KokoroTTSService(\n        settings=KokoroTTSService.Settings(\n            voice=os.getenv("KOKORO_VOICE_ID"),\n        ),\n    )\n', 'lmnt_tts': 'LmntTTSService(\n        api_key=os.getenv("LMNT_API_KEY"),\n        settings=LmntTTSService.Settings(\n            voice=os.getenv("LMNT_VOICE_ID"),\n        ),\n    )\n', 'minimax_tts': 'MiniMaxHttpTTSService(\n        api_key=os.getenv("MINIMAX_API_KEY"),\n        group_id=os.getenv("MINIMAX_GROUP_ID"),\n        aiohttp_session=session,\n        settings=MiniMaxHttpTTSService.Settings(\n            voice=os.getenv("MINIMAX_VOICE_ID"),\n        ),\n    )\n', 'mistral_llm': 'MistralLLMService(\n        api_key=os.getenv("MISTRAL_API_KEY"),\n        settings=MistralLLMService.Settings(\n            model=os.getenv("MISTRAL_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'mistral_stt': 'MistralSTTService(api_key=os.getenv("MISTRAL_API_KEY"))', 'mistral_tts': 'MistralTTSService(\n        api_key=os.getenv("MISTRAL_API_KEY"),\n        settings=MistralTTSService.Settings(\n            voice=os.getenv("MISTRAL_VOICE_ID"),\n        ),\n    )\n', 'moonshine_stt': 'MoonshineSTTService(\n        settings=MoonshineSTTService.Settings(\n            model=os.getenv("MOONSHINE_STT_MODEL"),\n        ),\n    )\n', 'neuphonic_tts': 'NeuphonicTTSService(\n        api_key=os.getenv("NEUPHONIC_API_KEY"),\n        settings=NeuphonicTTSService.Settings(\n            voice=os.getenv("NEUPHONIC_VOICE_ID"),\n        ),\n    )\n', 'novita_llm': 'NovitaLLMService(\n        api_key=os.getenv("NOVITA_API_KEY"),\n        settings=NovitaLLMService.Settings(\n            model=os.getenv("NOVITA_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'nvidia_llm': 'NvidiaLLMService(\n        api_key=os.getenv("NVIDIA_API_KEY"),\n        settings=NvidiaLLMService.Settings(\n            model=os.getenv("NVIDIA_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'nvidia_sagemaker_stt': 'NvidiaSageMakerSTTService(\n    endpoint_name=os.getenv("NVIDIA_SAGEMAKER_STT_ENDPOINT_NAME"),\n    region=os.getenv("AWS_REGION")\n)\n', 'nvidia_sagemaker_tts': 'NvidiaSageMakerTTSService(\n    endpoint_name=os.getenv("NVIDIA_SAGEMAKER_TTS_ENDPOINT_NAME"),\n    region=os.getenv("AWS_REGION"),\n    settings=NvidiaSageMakerTTSService.Settings(\n        voice=os.getenv("NVIDIA_SAGEMAKER_TTS_VOICE_ID"),\n    ),\n)\n', 'nvidia_stt': 'NvidiaSTTService(api_key=os.getenv("NVIDIA_API_KEY"))', 'nvidia_tts': 'NvidiaTTSService(\n        api_key=os.getenv("NVIDIA_API_KEY"),\n        settings=NvidiaTTSService.Settings(\n            voice=os.getenv("NVIDIA_VOICE_ID"),\n        ),\n    )\n', 'ollama_llm': 'OLLamaLLMService(\n        settings=OLLamaLLMService.Settings(\n            model=os.getenv("OLLAMA_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'openai_llm': 'OpenAILLMService(\n        api_key=os.getenv("OPENAI_API_KEY"),\n        settings=OpenAILLMService.Settings(\n            model=os.getenv("OPENAI_MODEL", "gpt-4.1"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'openai_realtime': 'session_properties = SessionProperties(\n    audio=AudioConfiguration(\n        input=AudioInput(\n            transcription=InputAudioTranscription(),\n            turn_detection=SemanticTurnDetection(),\n            noise_reduction=InputAudioNoiseReduction(type="near_field"),\n        )\n    ),\n)\nllm = OpenAIRealtimeLLMService(\n    api_key=os.getenv("OPENAI_API_KEY"),\n    settings=OpenAIRealtimeLLMService.Settings(\n        session_properties=session_properties,\n        system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n    ),\n)\n', 'openai_realtime_stt': 'OpenAIRealtimeSTTService(api_key=os.getenv("OPENAI_API_KEY"))', 'openai_responses_llm': 'OpenAIResponsesLLMService(\n        api_key=os.getenv("OPENAI_API_KEY"),\n        settings=OpenAIResponsesLLMService.Settings(\n            model=os.getenv("OPENAI_MODEL", "gpt-4.1"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'openai_stt': 'OpenAISTTService(api_key=os.getenv("OPENAI_API_KEY"))', 'openai_tts': 'OpenAITTSService(\n        api_key=os.getenv("OPENAI_API_KEY"),\n        settings=OpenAITTSService.Settings(\n            voice=os.getenv("OPENAI_VOICE_ID"),\n        ),\n    )\n', 'openrouter_llm': 'OpenRouterLLMService(\n        api_key=os.getenv("OPENROUTER_API_KEY"),\n        settings=OpenRouterLLMService.Settings(\n            model=os.getenv("OPENROUTER_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'perplexity_llm': 'PerplexityLLMService(\n        api_key=os.getenv("PERPLEXITY_API_KEY"),\n        settings=PerplexityLLMService.Settings(\n            model=os.getenv("PERPLEXITY_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'piper_tts': 'PiperTTSService(\n        settings=PiperTTSService.Settings(\n            voice=os.getenv("PIPER_VOICE_ID"),\n        ),\n    )\n', 'qwen_llm': 'QwenLLMService(\n        api_key=os.getenv("QWEN_API_KEY"),\n        settings=QwenLLMService.Settings(\n            model=os.getenv("QWEN_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'resemble_tts': 'ResembleAITTSService(\n        api_key=os.getenv("RESEMBLE_API_KEY"),\n        settings=ResembleAITTSService.Settings(\n            voice=os.getenv("RESEMBLE_VOICE_ID"),\n        ),\n    )\n', 'rime_tts': 'RimeTTSService(\n        api_key=os.getenv("RIME_API_KEY"),\n        settings=RimeTTSService.Settings(\n            voice=os.getenv("RIME_VOICE_ID"),\n        ),\n    )\n', 'sambanova_llm': 'SambaNovaLLMService(\n        api_key=os.getenv("SAMBANOVA_API_KEY"),\n        settings=SambaNovaLLMService.Settings(\n            model=os.getenv("SAMBANOVA_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'sarvam_llm': 'SarvamLLMService(\n        api_key=os.getenv("SARVAM_API_KEY"),\n        settings=SarvamLLMService.Settings(\n            model=os.getenv("SARVAM_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'sarvam_stt': 'SarvamSTTService(\n        api_key=os.getenv("SARVAM_API_KEY"),\n        settings=SarvamSTTService.Settings(\n            model=os.getenv("SARVAM_MODEL"),\n        ),\n    )\n', 'sarvam_tts': 'SarvamTTSService(\n        api_key=os.getenv("SARVAM_API_KEY"),\n        settings=SarvamTTSService.Settings(\n            model=os.getenv("SARVAM_MODEL"),\n            voice=os.getenv("SARVAM_VOICE_ID"),\n        ),\n    )\n', 'simli_video': 'SimliVideoService(\n        api_key=os.getenv("SIMLI_API_KEY"),\n        face_id=os.getenv("SIMLI_FACE_ID")\n    )\n', 'smallest_tts': 'SmallestTTSService(\n        api_key=os.getenv("SMALLEST_API_KEY"),\n        settings=SmallestTTSService.Settings(\n            voice=os.getenv("SMALLEST_VOICE_ID"),\n        ),\n    )\n', 'soniox_stt': 'SonioxSTTService(api_key=os.getenv("SONIOX_API_KEY"))', 'soniox_tts': 'SonioxTTSService(\n        api_key=os.getenv("SONIOX_API_KEY"),\n        settings=SonioxTTSService.Settings(\n            voice=os.getenv("SONIOX_VOICE_ID"),\n        ),\n    )\n', 'speechmatics_stt': 'SpeechmaticsSTTService(api_key=os.getenv("SPEECHMATICS_API_KEY"))', 'tavus_video': 'TavusVideoService(\n        api_key=os.getenv("TAVUS_API_KEY"),\n        replica_id=os.getenv("TAVUS_REPLICA_ID"),\n        session=session\n    )\n', 'together_llm': 'TogetherLLMService(\n        api_key=os.getenv("TOGETHER_API_KEY"),\n        settings=TogetherLLMService.Settings(\n            model=os.getenv("TOGETHER_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'ultravox': 'llm =UltravoxRealtimeLLMService(\n    params=OneShotInputParams(\n        api_key=os.getenv("ULTRAVOX_API_KEY"),\n        system_prompt=os.getenv("ULTRAVOX_SYSTEM_PROMPT"),\n        temperature=0.3,\n        max_duration=datetime.timedelta(minutes=3),\n    ),\n)\n', 'whisper_stt': 'WhisperSTTService(\n        settings=WhisperSTTService.Settings(\n            model=os.getenv("OPENAI_MODEL"),\n        ),\n    )\n', 'xai_llm': 'GrokLLMService(\n        api_key=os.getenv("XAI_API_KEY"),\n        settings=GrokLLMService.Settings(\n            model=os.getenv("XAI_MODEL"),\n            system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n        ),\n    )\n', 'xai_realtime': 'session_properties = SessionProperties(\n    voice=os.getenv("XAI_VOICE_ID"),\n)\nllm = GrokRealtimeLLMService(\n    api_key=os.getenv("XAI_API_KEY"),\n    settings=GrokRealtimeLLMService.Settings(\n        session_properties=session_properties,\n        system_instruction="You are a helpful assistant in a voice conversation. Your responses will be spoken aloud, so avoid emojis, bullet points, or other formatting that can\'t be spoken. Respond to what the user said in a creative, helpful, and brief way.",\n    ),\n)\n', 'xai_stt': 'XAISTTService(api_key=os.getenv("XAI_API_KEY"))', 'xai_tts': 'XAITTSService(\n        api_key=os.getenv("XAI_API_KEY"),\n        settings=XAITTSService.Settings(\n            voice=os.getenv("XAI_VOICE_ID"),\n        ),\n    )\n', 'xtts_tts': 'XTTSService(\n        base_url=os.getenv("XTTS_BASE_URL"),\n        aiohttp_session=session,\n        settings=XTTSService.Settings(\n            voice=os.getenv("XTTS_VOICE_ID"),\n        ),\n    )\n'}
IMPORTS = {'anthropic_llm': ['from pipecat.services.anthropic.llm import AnthropicLLMService'], 'assemblyai_stt': ['from pipecat.services.assemblyai.stt import AssemblyAISTTService'], 'asyncai_tts': ['from pipecat.services.asyncai.tts import AsyncAITTSService'], 'aws_bedrock_llm': ['from pipecat.services.aws.llm import AWSBedrockLLMService'], 'aws_nova_realtime': ['from pipecat.services.aws.nova_sonic.llm import AWSNovaSonicLLMService'], 'aws_polly_tts': ['from pipecat.services.aws.tts import AWSPollyTTSService'], 'aws_transcribe_stt': ['from pipecat.services.aws.stt import AWSTranscribeSTTService'], 'azure_llm': ['from pipecat.services.azure.llm import AzureLLMService'], 'azure_realtime': ['from pipecat.services.azure.realtime.llm import AzureRealtimeLLMService', 'from pipecat.services.openai.realtime.events import SessionProperties, InputAudioTranscription'], 'azure_stt': ['from pipecat.services.azure.stt import AzureSTTService'], 'azure_tts': ['from pipecat.services.azure.tts import AzureTTSService'], 'camb_tts': ['from pipecat.services.camb.tts import CambTTSService'], 'cartesia_stt': ['from pipecat.services.cartesia.stt import CartesiaSTTService'], 'cartesia_tts': ['from pipecat.services.cartesia.tts import CartesiaTTSService'], 'cartesia_turns_stt': ['from pipecat.services.cartesia.turns.stt import CartesiaTurnsSTTService'], 'cerebras_llm': ['from pipecat.services.cerebras.llm import CerebrasLLMService'], 'daily': ['from pipecat.transports.daily.transport import DailyParams'], 'daily_pstn_dialin': ['from pipecat.transports.daily.transport import DailyParams', 'from pipecat.runner.types import DailyDialinRequest'], 'daily_pstn_dialout': ['from pipecat.transports.daily.transport import DailyParams, DailyTransport', 'from server_utils import AgentRequest, DialoutSettings', 'from typing import Any'], 'deepgram_flux_sagemaker_stt': ['from pipecat.services.deepgram.flux.sagemaker.stt import DeepgramFluxSageMakerSTTService'], 'deepgram_flux_stt': ['from pipecat.services.deepgram.flux.stt import DeepgramFluxSTTService'], 'deepgram_sagemaker_stt': ['from pipecat.services.deepgram.sagemaker.stt import DeepgramSageMakerSTTService'], 'deepgram_sagemaker_tts': ['from pipecat.services.deepgram.sagemaker.tts import DeepgramSageMakerTTSService'], 'deepgram_stt': ['from pipecat.services.deepgram.stt import DeepgramSTTService'], 'deepgram_tts': ['from pipecat.services.deepgram.tts import DeepgramTTSService'], 'deepseek_llm': ['from pipecat.services.deepseek.llm import DeepSeekLLMService'], 'elevenlabs_realtime_stt': ['from pipecat.services.elevenlabs.stt import ElevenLabsRealtimeSTTService'], 'elevenlabs_stt': ['from pipecat.services.elevenlabs.stt import ElevenLabsSTTService'], 'elevenlabs_tts': ['from pipecat.services.elevenlabs.tts import ElevenLabsTTSService'], 'exotel': ['from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams'], 'fal_stt': ['from pipecat.services.fal.stt import FalSTTService'], 'fireworks_llm': ['from pipecat.services.fireworks.llm import FireworksLLMService'], 'fish_tts': ['from pipecat.services.fish.tts import FishAudioTTSService'], 'gemini_live_realtime': ['from pipecat.services.google.gemini_live.llm import GeminiLiveLLMService'], 'gemini_tts': ['from pipecat.services.google.tts import GeminiTTSService'], 'gemini_vertex_live_realtime': ['from pipecat.services.google.gemini_live.vertex.llm import GeminiLiveVertexLLMService'], 'gladia_stt': ['from pipecat.services.gladia.stt import GladiaSTTService'], 'google_gemini_llm': ['from pipecat.services.google.llm import GoogleLLMService'], 'google_stt': ['from pipecat.services.google.stt import GoogleSTTService'], 'google_tts': ['from pipecat.services.google.tts import GoogleTTSService'], 'google_vertex_llm': ['from pipecat.services.google.vertex.llm import GoogleVertexLLMService'], 'gradium_stt': ['from pipecat.services.gradium.stt import GradiumSTTService'], 'gradium_tts': ['from pipecat.services.gradium.tts import GradiumTTSService'], 'groq_llm': ['from pipecat.services.groq.llm import GroqLLMService'], 'groq_stt': ['from pipecat.services.groq.stt import GroqSTTService'], 'groq_tts': ['from pipecat.services.groq.tts import GroqTTSService'], 'heygen_video': ['from pipecat.services.heygen.video import HeyGenVideoService', 'from pipecat.services.heygen.api_liveavatar import LiveAvatarNewSessionRequest', 'from pipecat.services.heygen.client import ServiceType'], 'hume_tts': ['from pipecat.services.hume.tts import HumeTTSService'], 'inception_llm': ['from pipecat.services.inception.llm import InceptionLLMService'], 'inworld_tts': ['from pipecat.services.inworld.tts import InworldTTSService'], 'kokoro_tts': ['from pipecat.services.kokoro.tts import KokoroTTSService'], 'lmnt_tts': ['from pipecat.services.lmnt.tts import LmntTTSService'], 'minimax_tts': ['from pipecat.services.minimax.tts import MiniMaxHttpTTSService'], 'mistral_llm': ['from pipecat.services.mistral.llm import MistralLLMService'], 'mistral_stt': ['from pipecat.services.mistral.stt import MistralSTTService'], 'mistral_tts': ['from pipecat.services.mistral.tts import MistralTTSService'], 'moonshine_stt': ['from pipecat.services.moonshine.stt import MoonshineSTTService'], 'neuphonic_tts': ['from pipecat.services.neuphonic.tts import NeuphonicTTSService'], 'novita_llm': ['from pipecat.services.novita.llm import NovitaLLMService'], 'nvidia_llm': ['from pipecat.services.nvidia.llm import NvidiaLLMService'], 'nvidia_sagemaker_stt': ['from pipecat.services.nvidia.sagemaker.stt import NvidiaSageMakerSTTService'], 'nvidia_sagemaker_tts': ['from pipecat.services.nvidia.sagemaker.tts import NvidiaSageMakerTTSService'], 'nvidia_stt': ['from pipecat.services.nvidia.stt import NvidiaSTTService'], 'nvidia_tts': ['from pipecat.services.nvidia.tts import NvidiaTTSService'], 'ollama_llm': ['from pipecat.services.ollama.llm import OLLamaLLMService'], 'openai_llm': ['from pipecat.services.openai.llm import OpenAILLMService'], 'openai_realtime': ['from pipecat.services.openai.realtime.events import SessionProperties, AudioConfiguration, AudioInput, InputAudioTranscription, SemanticTurnDetection, InputAudioNoiseReduction', 'from pipecat.services.openai.realtime.llm import OpenAIRealtimeLLMService'], 'openai_realtime_stt': ['from pipecat.services.openai.stt import OpenAIRealtimeSTTService'], 'openai_responses_llm': ['from pipecat.services.openai.responses.llm import OpenAIResponsesLLMService'], 'openai_stt': ['from pipecat.services.openai.stt import OpenAISTTService'], 'openai_tts': ['from pipecat.services.openai.tts import OpenAITTSService'], 'openrouter_llm': ['from pipecat.services.openrouter.llm import OpenRouterLLMService'], 'perplexity_llm': ['from pipecat.services.perplexity.llm import PerplexityLLMService'], 'piper_tts': ['from pipecat.services.piper.tts import PiperTTSService'], 'plivo': ['from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams'], 'qwen_llm': ['from pipecat.services.qwen.llm import QwenLLMService'], 'resemble_tts': ['from pipecat.services.resembleai.tts import ResembleAITTSService'], 'rime_tts': ['from pipecat.services.rime.tts import RimeTTSService'], 'sambanova_llm': ['from pipecat.services.sambanova.llm import SambaNovaLLMService'], 'sarvam_llm': ['from pipecat.services.sarvam.llm import SarvamLLMService'], 'sarvam_stt': ['from pipecat.services.sarvam.stt import SarvamSTTService'], 'sarvam_tts': ['from pipecat.services.sarvam.tts import SarvamTTSService'], 'simli_video': ['from pipecat.services.simli.video import SimliVideoService'], 'smallest_tts': ['from pipecat.services.smallest.tts import SmallestTTSService'], 'smallwebrtc': ['from pipecat.transports.base_transport import TransportParams'], 'soniox_stt': ['from pipecat.services.soniox.stt import SonioxSTTService'], 'soniox_tts': ['from pipecat.services.soniox.tts import SonioxTTSService'], 'speechmatics_stt': ['from pipecat.services.speechmatics.stt import SpeechmaticsSTTService'], 'tavus_video': ['from pipecat.services.tavus.video import TavusVideoService'], 'telnyx': ['from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams'], 'together_llm': ['from pipecat.services.together.llm import TogetherLLMService'], 'twilio': ['from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams', 'import aiohttp', 'from pydantic import BaseModel'], 'twilio_daily_sip_dialin': ['from pipecat.transports.daily.transport import DailyParams, DailyTransport', 'from server_utils import AgentRequest', 'from twilio.rest import Client'], 'twilio_daily_sip_dialout': ['from pipecat.transports.daily.transport import DailyParams, DailyTransport', 'from server_utils import AgentRequest, DialoutSettings', 'from typing import Any'], 'ultravox': ['from pipecat.services.ultravox.llm import UltravoxRealtimeLLMService, OneShotInputParams', 'import datetime'], 'websocket': ['from pipecat.serializers.protobuf import ProtobufFrameSerializer', 'from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams'], 'whisper_stt': ['from pipecat.services.whisper.stt import WhisperSTTService'], 'xai_llm': ['from pipecat.services.xai.llm import GrokLLMService'], 'xai_realtime': ['from pipecat.services.xai.realtime.events import SessionProperties', 'from pipecat.services.xai.realtime.llm import GrokRealtimeLLMService'], 'xai_stt': ['from pipecat.services.xai.stt import XAISTTService'], 'xai_tts': ['from pipecat.services.xai.tts import XAITTSService'], 'xtts_tts': ['from pipecat.services.xtts.tts import XTTSService']}
FEATURE_IMPORTS = {'context': ['from pipecat.processors.aggregators.llm_context import LLMContext', 'from pipecat.processors.aggregators.llm_response_universal import LLMContextAggregatorPair, LLMUserAggregatorParams'], 'create_transport': ['from pipecat.runner.utils import create_transport'], 'eval': ['from pipecat.evals.transport import EvalTransportParams'], 'llm_run_frame': ['from pipecat.frames.frames import LLMRunFrame'], 'observability': ['from pipecat_whisker import WhiskerObserver'], 'pipeline': ['from pipecat.pipeline.pipeline import Pipeline', 'from pipecat.pipeline.worker import PipelineParams, PipelineWorker', 'from pipecat.workers.runner import WorkerRunner'], 'recording': ['import aiofiles', 'import datetime', 'import io', 'from pipecat.processors.audio.audio_buffer_processor import AudioBufferProcessor', 'import wave'], 'runner': ['from dotenv import load_dotenv', 'from pipecat.runner.types import RunnerArguments', 'from pipecat.transports.base_transport import BaseTransport'], 'transcription': ['from pipecat.processors.aggregators.llm_response_universal import AssistantTurnStoppedMessage, UserTurnStoppedMessage'], 'vad': ['from pipecat.audio.vad.silero import SileroVADAnalyzer']}
BASE_IMPORTS = ['import os', 'from loguru import logger']
FEATURE_DEFINITIONS = {'context': ['LLMContext', 'LLMContextAggregatorPair', 'LLMUserAggregatorParams'], 'create_transport': ['create_transport'], 'eval': ['EvalTransportParams'], 'llm_run_frame': ['LLMRunFrame'], 'observability': ['WhiskerObserver'], 'pipeline': ['Pipeline', 'WorkerRunner', 'PipelineParams', 'PipelineWorker'], 'recording': ['AudioBufferProcessor', 'datetime', 'io', 'wave', 'aiofiles'], 'runner': ['load_dotenv', 'RunnerArguments', 'BaseTransport'], 'transcription': ['AssistantTurnStoppedMessage', 'UserTurnStoppedMessage'], 'vad': ['SileroVADAnalyzer']}
WEBRTC_TRANSPORTS: list[ServiceDefinition] = [ServiceDefinition(value='daily', label='Daily (WebRTC)', package='pipecat-ai[daily]', class_name=['DailyParams'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='smallwebrtc', label='SmallWebRTC', package='pipecat-ai[webrtc]', class_name=['TransportParams'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='websocket', label='WebSocket', package='pipecat-ai[websocket]', class_name=['FastAPIWebsocketParams', 'ProtobufFrameSerializer'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None)]
TELEPHONY_TRANSPORTS: list[ServiceDefinition] = [ServiceDefinition(value='twilio', label='Twilio', package='pipecat-ai[websocket]', class_name=['FastAPIWebsocketParams'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=['import aiohttp', 'from pydantic import BaseModel'], param_defaults=None), ServiceDefinition(value='twilio_daily_sip_dialin', label='Twilio + Daily SIP (Dial-in)', package='pipecat-ai[daily]', class_name=['DailyParams', 'DailyTransport'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=['from server_utils import AgentRequest', 'from twilio.rest import Client'], param_defaults=None), ServiceDefinition(value='twilio_daily_sip_dialout', label='Twilio + Daily SIP (Dial-out)', package='pipecat-ai[daily]', class_name=['DailyParams', 'DailyTransport'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=['from server_utils import AgentRequest, DialoutSettings', 'from typing import Any'], param_defaults=None), ServiceDefinition(value='daily_pstn_dialin', label='Daily PSTN (Dial-in)', package='pipecat-ai[daily]', class_name=['DailyParams'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=['from pipecat.runner.types import DailyDialinRequest'], param_defaults=None), ServiceDefinition(value='daily_pstn_dialout', label='Daily PSTN (Dial-out)', package='pipecat-ai[daily]', class_name=['DailyParams', 'DailyTransport'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=['from server_utils import AgentRequest, DialoutSettings', 'from typing import Any'], param_defaults=None), ServiceDefinition(value='telnyx', label='Telnyx', package='pipecat-ai[websocket]', class_name=['FastAPIWebsocketParams'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='plivo', label='Plivo', package='pipecat-ai[websocket]', class_name=['FastAPIWebsocketParams'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='exotel', label='Exotel', package='pipecat-ai[websocket]', class_name=['FastAPIWebsocketParams'], env_prefix=None, include_params=None, settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None)]
STT_SERVICES: list[ServiceDefinition] = [ServiceDefinition(value='assemblyai_stt', label='AssemblyAI', package='pipecat-ai[assemblyai]', class_name=['AssemblyAISTTService'], env_prefix='ASSEMBLYAI', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='aws_transcribe_stt', label='AWS Transcribe', package='pipecat-ai[aws]', class_name=['AWSTranscribeSTTService'], env_prefix='AWS', include_params=['aws_access_key_id', 'aws_session_token', 'region'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='azure_stt', label='Azure Speech', package='pipecat-ai[azure]', class_name=['AzureSTTService'], env_prefix='AZURE_SPEECH', include_params=['api_key', 'region'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='cartesia_stt', label='Cartesia', package='pipecat-ai[cartesia]', class_name=['CartesiaSTTService'], env_prefix='CARTESIA', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='cartesia_turns_stt', label='Cartesia Turns', package='pipecat-ai[cartesia]', class_name=['CartesiaTurnsSTTService'], env_prefix='CARTESIA', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='deepgram_stt', label='Deepgram', package='pipecat-ai[deepgram]', class_name=['DeepgramSTTService'], env_prefix='DEEPGRAM', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='deepgram_flux_stt', label='Deepgram Flux', package='pipecat-ai[deepgram]', class_name=['DeepgramFluxSTTService'], env_prefix='DEEPGRAM', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='deepgram_flux_sagemaker_stt', label='Deepgram Flux SageMaker', package='pipecat-ai[deepgram,sagemaker]', class_name=['DeepgramFluxSageMakerSTTService'], env_prefix='DEEPGRAM_FLUX_SAGEMAKER_STT', include_params=['endpoint_name', 'region'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='deepgram_sagemaker_stt', label='Deepgram SageMaker', package='pipecat-ai[deepgram,sagemaker]', class_name=['DeepgramSageMakerSTTService'], env_prefix='DEEPGRAM_SAGEMAKER_STT', include_params=['endpoint_name', 'region'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='elevenlabs_stt', label='ElevenLabs', package='pipecat-ai[elevenlabs]', class_name=['ElevenLabsSTTService'], env_prefix='ELEVENLABS', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='elevenlabs_realtime_stt', label='ElevenLabs Realtime', package='pipecat-ai[elevenlabs]', class_name=['ElevenLabsRealtimeSTTService'], env_prefix='ELEVENLABS', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='fal_stt', label='Fal (Wizper)', package='pipecat-ai[fal]', class_name=['FalSTTService'], env_prefix='FAL', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='gladia_stt', label='Gladia', package='pipecat-ai[gladia]', class_name=['GladiaSTTService'], env_prefix='GLADIA', include_params=['api_key', 'region'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='google_stt', label='Google Speech-to-Text', package='pipecat-ai[google]', class_name=['GoogleSTTService'], env_prefix='GOOGLE', include_params=['credentials', 'location'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='gradium_stt', label='Gradium', package='pipecat-ai[gradium]', class_name=['GradiumSTTService'], env_prefix='GRADIUM', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='groq_stt', label='Groq (Whisper)', package='pipecat-ai[groq]', class_name=['GroqSTTService'], env_prefix='GROQ', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='mistral_stt', label='Mistral', package='pipecat-ai[mistral]', class_name=['MistralSTTService'], env_prefix='MISTRAL', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='nvidia_stt', label='NVIDIA', package='pipecat-ai[nvidia]', class_name=['NvidiaSTTService'], env_prefix='NVIDIA', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='nvidia_sagemaker_stt', label='NVIDIA SageMaker', package='pipecat-ai[aws,sagemaker]', class_name=['NvidiaSageMakerSTTService'], env_prefix='NVIDIA_SAGEMAKER_STT', include_params=['endpoint_name', 'region'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='openai_stt', label='OpenAI (Whisper)', package='pipecat-ai[openai]', class_name=['OpenAISTTService'], env_prefix='OPENAI', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='openai_realtime_stt', label='OpenAI Realtime', package='pipecat-ai[openai]', class_name=['OpenAIRealtimeSTTService'], env_prefix='OPENAI', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='sarvam_stt', label='Sarvam', package='pipecat-ai[sarvam]', class_name=['SarvamSTTService'], env_prefix='SARVAM', include_params=['api_key'], settings_params=['model'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='soniox_stt', label='Soniox', package='pipecat-ai[soniox]', class_name=['SonioxSTTService'], env_prefix='SONIOX', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='speechmatics_stt', label='Speechmatics', package='pipecat-ai[speechmatics]', class_name=['SpeechmaticsSTTService'], env_prefix='SPEECHMATICS', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='moonshine_stt', label='Moonshine', package='pipecat-ai[moonshine]', class_name=['MoonshineSTTService'], env_prefix=None, include_params=None, settings_params=['model'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='whisper_stt', label='Whisper (Local)', package='pipecat-ai[whisper]', class_name=['WhisperSTTService'], env_prefix='OPENAI', include_params=None, settings_params=['model'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='xai_stt', label='XAI', package='pipecat-ai[xai]', class_name=['XAISTTService'], env_prefix='XAI', include_params=['api_key'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None)]
LLM_SERVICES: list[ServiceDefinition] = [ServiceDefinition(value='anthropic_llm', label='Anthropic Claude', package='pipecat-ai[anthropic]', class_name=['AnthropicLLMService'], env_prefix='ANTHROPIC', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='aws_bedrock_llm', label='AWS Bedrock', package='pipecat-ai[aws]', class_name=['AWSBedrockLLMService'], env_prefix='AWS', include_params=['aws_region'], settings_params=['model', 'system_instruction'], manual_config=True, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='azure_llm', label='Azure OpenAI', package='pipecat-ai[azure]', class_name=['AzureLLMService'], env_prefix='AZURE_CHATGPT', include_params=['api_key', 'endpoint'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='cerebras_llm', label='Cerebras', package='pipecat-ai[cerebras]', class_name=['CerebrasLLMService'], env_prefix='CEREBRAS', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='deepseek_llm', label='DeepSeek', package='pipecat-ai[deepseek]', class_name=['DeepSeekLLMService'], env_prefix='DEEPSEEK', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='fireworks_llm', label='Fireworks AI', package='pipecat-ai[fireworks]', class_name=['FireworksLLMService'], env_prefix='FIREWORKS', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='google_gemini_llm', label='Google Gemini', package='pipecat-ai[google]', class_name=['GoogleLLMService'], env_prefix='GOOGLE', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='google_vertex_llm', label='Google Vertex AI', package='pipecat-ai[google]', class_name=['GoogleVertexLLMService'], env_prefix='GOOGLE', include_params=['credentials', 'location', 'project_id'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='xai_llm', label='Grok', package='pipecat-ai[xai]', class_name=['GrokLLMService'], env_prefix='XAI', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='groq_llm', label='Groq', package='pipecat-ai[groq]', class_name=['GroqLLMService'], env_prefix='GROQ', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='inception_llm', label='Inception', package='pipecat-ai[inception]', class_name=['InceptionLLMService'], env_prefix='INCEPTION', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='mistral_llm', label='Mistral', package='pipecat-ai[mistral]', class_name=['MistralLLMService'], env_prefix='MISTRAL', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='novita_llm', label='Novita', package='pipecat-ai[novita]', class_name=['NovitaLLMService'], env_prefix='NOVITA', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='nvidia_llm', label='NVIDIA', package='pipecat-ai[nvidia]', class_name=['NvidiaLLMService'], env_prefix='NVIDIA', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='ollama_llm', label='Ollama', package='pipecat-ai', class_name=['OLLamaLLMService'], env_prefix='OLLAMA', include_params=None, settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='openai_llm', label='OpenAI', package='pipecat-ai[openai]', class_name=['OpenAILLMService'], env_prefix='OPENAI', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults={'model': 'gpt-4.1'}), ServiceDefinition(value='openai_responses_llm', label='OpenAI Responses', package='pipecat-ai[openai]', class_name=['OpenAIResponsesLLMService'], env_prefix='OPENAI', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults={'model': 'gpt-4.1'}), ServiceDefinition(value='openrouter_llm', label='OpenRouter', package='pipecat-ai[openrouter]', class_name=['OpenRouterLLMService'], env_prefix='OPENROUTER', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='perplexity_llm', label='Perplexity', package='pipecat-ai[perplexity]', class_name=['PerplexityLLMService'], env_prefix='PERPLEXITY', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='qwen_llm', label='Qwen', package='pipecat-ai[qwen]', class_name=['QwenLLMService'], env_prefix='QWEN', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='sambanova_llm', label='SambaNova', package='pipecat-ai[sambanova]', class_name=['SambaNovaLLMService'], env_prefix='SAMBANOVA', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='sarvam_llm', label='Sarvam', package='pipecat-ai[sarvam]', class_name=['SarvamLLMService'], env_prefix='SARVAM', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='together_llm', label='Together AI', package='pipecat-ai[together]', class_name=['TogetherLLMService'], env_prefix='TOGETHER', include_params=['api_key'], settings_params=['model', 'system_instruction'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None)]
TTS_SERVICES: list[ServiceDefinition] = [ServiceDefinition(value='asyncai_tts', label='Async', package='pipecat-ai[asyncai]', class_name=['AsyncAITTSService'], env_prefix='ASYNCAI', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='aws_polly_tts', label='AWS Polly', package='pipecat-ai[aws]', class_name=['AWSPollyTTSService'], env_prefix='AWS', include_params=['region'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='azure_tts', label='Azure TTS', package='pipecat-ai[azure]', class_name=['AzureTTSService'], env_prefix='AZURE_SPEECH', include_params=['api_key', 'region'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='camb_tts', label='Camb', package='pipecat-ai[camb]', class_name=['CambTTSService'], env_prefix='CAMB', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='cartesia_tts', label='Cartesia', package='pipecat-ai[cartesia]', class_name=['CartesiaTTSService'], env_prefix='CARTESIA', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults={'voice': '71a7ad14-091c-4e8e-a314-022ece01c121'}), ServiceDefinition(value='deepgram_tts', label='Deepgram', package='pipecat-ai[deepgram]', class_name=['DeepgramTTSService'], env_prefix='DEEPGRAM', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='deepgram_sagemaker_tts', label='Deepgram SageMaker', package='pipecat-ai[deepgram,sagemaker]', class_name=['DeepgramSageMakerTTSService'], env_prefix='DEEPGRAM_SAGEMAKER_TTS', include_params=['endpoint_name', 'region'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='elevenlabs_tts', label='ElevenLabs', package='pipecat-ai[elevenlabs]', class_name=['ElevenLabsTTSService'], env_prefix='ELEVENLABS', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='fish_tts', label='Fish', package='pipecat-ai[fish]', class_name=['FishAudioTTSService'], env_prefix='FISH', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='gemini_tts', label='Gemini TTS', package='pipecat-ai[google]', class_name=['GeminiTTSService'], env_prefix='GOOGLE', include_params=['credentials'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='google_tts', label='Google TTS', package='pipecat-ai[google]', class_name=['GoogleTTSService'], env_prefix='GOOGLE', include_params=['credentials'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='gradium_tts', label='Gradium TTS', package='pipecat-ai[gradium]', class_name=['GradiumTTSService'], env_prefix='GRADIUM', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='groq_tts', label='Groq TTS', package='pipecat-ai[groq]', class_name=['GroqTTSService'], env_prefix='GROQ', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='hume_tts', label='Hume TTS', package='pipecat-ai[hume]', class_name=['HumeTTSService'], env_prefix='HUME', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='inworld_tts', label='Inworld', package='pipecat-ai', class_name=['InworldTTSService'], env_prefix='INWORLD', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='kokoro_tts', label='Kokoro', package='pipecat-ai[kokoro]', class_name=['KokoroTTSService'], env_prefix='KOKORO', include_params=None, settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='lmnt_tts', label='LMNT', package='pipecat-ai[lmnt]', class_name=['LmntTTSService'], env_prefix='LMNT', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='minimax_tts', label='MiniMax', package='pipecat-ai', class_name=['MiniMaxHttpTTSService'], env_prefix='MINIMAX', include_params=['api_key', 'group_id'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='mistral_tts', label='Mistral', package='pipecat-ai[mistral]', class_name=['MistralTTSService'], env_prefix='MISTRAL', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='neuphonic_tts', label='Neuphonic', package='pipecat-ai[neuphonic]', class_name=['NeuphonicTTSService'], env_prefix='NEUPHONIC', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='nvidia_tts', label='NVIDIA', package='pipecat-ai[nvidia]', class_name=['NvidiaTTSService'], env_prefix='NVIDIA', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='nvidia_sagemaker_tts', label='NVIDIA SageMaker', package='pipecat-ai[aws,sagemaker]', class_name=['NvidiaSageMakerTTSService'], env_prefix='NVIDIA_SAGEMAKER_TTS', include_params=['endpoint_name', 'region'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='openai_tts', label='OpenAI TTS', package='pipecat-ai[openai]', class_name=['OpenAITTSService'], env_prefix='OPENAI', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='piper_tts', label='Piper', package='pipecat-ai[piper]', class_name=['PiperTTSService'], env_prefix='PIPER', include_params=None, settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='resemble_tts', label='Resemble', package='pipecat-ai[resembleai]', class_name=['ResembleAITTSService'], env_prefix='RESEMBLE', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='rime_tts', label='Rime', package='pipecat-ai[rime]', class_name=['RimeTTSService'], env_prefix='RIME', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='sarvam_tts', label='Sarvam', package='pipecat-ai', class_name=['SarvamTTSService'], env_prefix='SARVAM', include_params=['api_key'], settings_params=['model', 'voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='smallest_tts', label='Smallest', package='pipecat-ai[smallest]', class_name=['SmallestTTSService'], env_prefix='SMALLEST', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='soniox_tts', label='Soniox', package='pipecat-ai[soniox]', class_name=['SonioxTTSService'], env_prefix='SONIOX', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='xai_tts', label='XAI', package='pipecat-ai[xai]', class_name=['XAITTSService'], env_prefix='XAI', include_params=['api_key'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='xtts_tts', label='XTTS (Coqui)', package='pipecat-ai[xtts]', class_name=['XTTSService'], env_prefix='XTTS', include_params=['base_url'], settings_params=['voice'], manual_config=False, recommended=False, additional_imports=None, param_defaults=None)]
REALTIME_SERVICES: list[ServiceDefinition] = [ServiceDefinition(value='aws_nova_realtime', label='AWS Nova Sonic', package='pipecat-ai[aws-nova-sonic]', class_name=['AWSNovaSonicLLMService'], env_prefix='AWS', include_params=[], settings_params=None, manual_config=True, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='azure_realtime', label='Azure Realtime', package='pipecat-ai[azure]', class_name=['AzureRealtimeLLMService'], env_prefix='AZURE', include_params=[], settings_params=None, manual_config=True, recommended=False, additional_imports=['from pipecat.services.openai.realtime.events import SessionProperties, InputAudioTranscription'], param_defaults=None), ServiceDefinition(value='gemini_live_realtime', label='Gemini Live', package='pipecat-ai[google]', class_name=['GeminiLiveLLMService'], env_prefix='GOOGLE', include_params=[], settings_params=None, manual_config=True, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='gemini_vertex_live_realtime', label='Gemini Vertex Live', package='pipecat-ai[google]', class_name=['GeminiLiveVertexLLMService'], env_prefix='GOOGLE_VERTEX', include_params=[], settings_params=None, manual_config=True, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='xai_realtime', label='Grok Realtime', package='pipecat-ai[xai]', class_name=['GrokRealtimeLLMService', 'SessionProperties'], env_prefix='XAI', include_params=[], settings_params=None, manual_config=True, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='openai_realtime', label='OpenAI Realtime', package='pipecat-ai[openai]', class_name=['OpenAIRealtimeLLMService', 'SessionProperties', 'AudioConfiguration', 'AudioInput', 'InputAudioTranscription', 'SemanticTurnDetection', 'InputAudioNoiseReduction'], env_prefix='OPENAI', include_params=[], settings_params=None, manual_config=True, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='ultravox', label='Ultravox', package='pipecat-ai[ultravox]', class_name=['UltravoxRealtimeLLMService', 'OneShotInputParams'], env_prefix='ULTRAVOX', include_params=['api_key'], settings_params=None, manual_config=True, recommended=False, additional_imports=['import datetime'], param_defaults=None)]
VIDEO_SERVICES: list[ServiceDefinition] = [ServiceDefinition(value='heygen_video', label='HeyGen', package='pipecat-ai[heygen]', class_name=['HeyGenVideoService'], env_prefix='HEYGEN', include_params=['api_key'], settings_params=None, manual_config=True, recommended=False, additional_imports=['from pipecat.services.heygen.api_liveavatar import LiveAvatarNewSessionRequest', 'from pipecat.services.heygen.client import ServiceType'], param_defaults=None), ServiceDefinition(value='tavus_video', label='Tavus', package='pipecat-ai[tavus]', class_name=['TavusVideoService'], env_prefix='TAVUS', include_params=['api_key', 'replica_id'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None), ServiceDefinition(value='simli_video', label='Simli', package='pipecat-ai[simli]', class_name=['SimliVideoService'], env_prefix='SIMLI', include_params=['api_key', 'face_id'], settings_params=None, manual_config=False, recommended=False, additional_imports=None, param_defaults=None)]
class pipecat.cli.registry.ServiceLoader[source]

Bases: object

Handles loading and validating services from the registry.

static get_service_by_value(service_list: list[ServiceDefinition], value: str) ServiceDefinition | None[source]

Find a service definition by its value.

Parameters:
  • service_list – List of service definitions to search

  • value – Service value to find

Returns:

Service definition or None if not found

static get_all_services_by_type(service_type: Literal['transport', 'stt', 'llm', 'tts', 'realtime']) list[ServiceDefinition][source]

Get all services of a specific type.

Parameters:

service_type – Type of service to retrieve

Returns:

List of service definitions

static get_service_config(service_value: str) str | None[source]

Get the initialization code for a service.

Parameters:

service_value – Service identifier (e.g., “deepgram_stt”)

Returns:

Initialization code string or None if not found

static get_service_import(service_value: str) list[str][source]

Get import statements for a service.

Parameters:

service_value – Service identifier

Returns:

List of import statements

static extract_extras_for_services(services: dict[str, str | list[str]]) set[str][source]

Extract all package extras needed for selected services.

Parameters:

services – Dict mapping service type to service value(s) e.g., {“transports”: [“daily”], “stt”: “deepgram_stt”, …}

Returns:

Set of package extras (e.g., {“daily”, “deepgram”, “openai”})

static validate_service_exists(service_value: str) bool[source]

Check if a service exists in the registry.

Parameters:

service_value – Service identifier to check

Returns:

True if service exists, False otherwise

static get_transport_options(bot_type: Literal['web', 'telephony']) list[ServiceDefinition][source]

Get transport options based on bot type.

Parameters:

bot_type – Type of bot (“web” or “telephony”)

Returns:

List of transport service definitions

static get_imports_for_services(services: dict[str, str | list[str]], features: dict[str, bool], bot_type: str = 'web') list[str][source]

Get all necessary import statements for selected services and features.

Parameters:
  • services – Dict mapping service type to service value(s)

  • features – Dict of enabled features

  • bot_type – Type of bot (“web” or “telephony”)

Returns:

List of import statements

static get_missing_services() dict[str, list[str]][source]

Find services that are defined but missing configs or imports.

Returns:

Dict with ‘missing_configs’ and ‘missing_imports’ lists

class pipecat.cli.registry.ServiceDefinition(value: str, label: str, package: str, class_name: list[str] | None = None, env_prefix: str | None = None, include_params: list[str] | None = None, settings_params: list[str] | None = None, manual_config: bool = False, recommended: bool = False, additional_imports: list[str] | None = None, param_defaults: dict[str, str] | None = None)[source]

Bases: object

Service metadata definition.

Required fields:

value: Service identifier (e.g., “openai_llm”) label: Human-readable name (e.g., “OpenAI”) package: Python package requirement (e.g., “pipecat-ai[openai]”)

Optional fields:

class_name: List of class names to import for this service env_prefix: Prefix for environment variables (e.g., “OPENAI” -> “OPENAI_API_KEY”) include_params: Constructor params that have defaults but should still appear in the

generated config (e.g., “api_key” has a default but we want users to set it via env var). Controls whether a param is generated.

settings_params: Params to wrap in a Service.Settings(…) block instead of passing

as direct constructor args. Controls where a param goes. When set (even if empty), the generator uses the Settings pattern and adds system_instruction. Params listed here are implicitly included (no need to also list in include_params).

manual_config: If True, config must be manually written (not auto-generated) recommended: If True, this service is marked as recommended in prompts additional_imports: List of full import statements that can’t be auto-discovered param_defaults: Default values for settings params. When set, the config generator

produces os.getenv(“ENV_VAR”, “default”) instead of os.getenv(“ENV_VAR”). Use this for params where the quickstart should work without the user setting the env var (e.g., model or voice defaults).

value: str
label: str
package: str
class_name: list[str] | None = None
env_prefix: str | None = None
include_params: list[str] | None = None
settings_params: list[str] | None = None
manual_config: bool = False
recommended: bool = False
additional_imports: list[str] | None = None
param_defaults: dict[str, str] | None = None
pipecat.cli.registry.extract_package_extra(package: str) list[str][source]

Extract the extra names from a package string.

Parameters:

package – Package string like “pipecat-ai[deepgram]”, “pipecat-ai[deepgram,sagemaker]”, or “pipecat-ai”

Returns:

List of extra names (e.g., [“deepgram”] or [“deepgram”, “sagemaker”]), or an empty list if no extras

Examples

>>> extract_package_extra("pipecat-ai[deepgram]")
['deepgram']
>>> extract_package_extra("pipecat-ai[deepgram,sagemaker]")
['deepgram', 'sagemaker']
>>> extract_package_extra("pipecat-ai")
[]

Submodules