From d3021b459067cb1f122acec6598309924c68ec2d Mon Sep 17 00:00:00 2001
From: Mark Backman
Date: Tue, 31 Mar 2026 22:06:01 -0400
Subject: [PATCH 1/4] Rename example files to prepend parent folder name,
preventing package shadowing
Example files like openai.py shadow installed packages when Python adds the
script directory to sys.path. Prepend the parent folder name to each example
file (e.g. openai.py -> function-calling-openai.py). Also split
thinking-and-mcp/ into separate mcp/ and thinking/ directories.
---
README.md | 2 +-
.../{bot-background-sound.py => audio-bot-background-sound.py} | 0
examples/audio/{sound-effects.py => audio-sound-effects.py} | 0
...{dedicated-llm.py => context-summarization-dedicated-llm.py} | 0
.../{google.py => context-summarization-google.py} | 0
...{manual-openai.py => context-summarization-manual-openai.py} | 0
.../{openai.py => context-summarization-openai.py} | 0
...-and-after-events.py => features-before-and-after-events.py} | 0
...-llm-evaluation.py => features-concurrent-llm-evaluation.py} | 0
...urces.py => features-concurrent-llm-rtvi-ignored-sources.py} | 0
...om-frame-processor.py => features-custom-frame-processor.py} | 0
...ntainer-local-bot.py => features-gpu-container-local-bot.py} | 0
.../{live-translation.py => features-live-translation.py} | 0
...ce-switching.py => features-pattern-pair-voice-switching.py} | 0
.../{service-switcher.py => features-service-switcher.py} | 0
.../{switch-languages.py => features-switch-languages.py} | 0
.../features/{switch-voices.py => features-switch-voices.py} | 0
...user-email-gathering.py => features-user-email-gathering.py} | 0
.../{voicemail-detection.py => features-voicemail-detection.py} | 0
examples/features/{wake-phrase.py => features-wake-phrase.py} | 0
.../{anthropic-video.py => function-calling-anthropic-video.py} | 0
.../{anthropic.py => function-calling-anthropic.py} | 0
.../{aws-video.py => function-calling-aws-video.py} | 0
examples/function-calling/{aws.py => function-calling-aws.py} | 0
.../function-calling/{azure.py => function-calling-azure.py} | 0
.../{cerebras.py => function-calling-cerebras.py} | 0
.../{deepseek.py => function-calling-deepseek.py} | 0
.../function-calling/{direct.py => function-calling-direct.py} | 0
.../{fireworks.py => function-calling-fireworks.py} | 0
.../{google-vertex.py => function-calling-google-vertex.py} | 0
.../{google-video.py => function-calling-google-video.py} | 0
.../function-calling/{google.py => function-calling-google.py} | 0
examples/function-calling/{grok.py => function-calling-grok.py} | 0
examples/function-calling/{groq.py => function-calling-groq.py} | 0
.../{mistral.py => function-calling-mistral.py} | 0
.../{moondream-video.py => function-calling-moondream-video.py} | 0
.../function-calling/{nebius.py => function-calling-nebius.py} | 0
.../function-calling/{novita.py => function-calling-novita.py} | 0
.../function-calling/{nvidia.py => function-calling-nvidia.py} | 0
.../function-calling/{ollama.py => function-calling-ollama.py} | 0
...ponses-http.py => function-calling-openai-responses-http.py} | 0
...-http.py => function-calling-openai-responses-video-http.py} | 0
...nses-video.py => function-calling-openai-responses-video.py} | 0
...openai-responses.py => function-calling-openai-responses.py} | 0
.../{openai-video.py => function-calling-openai-video.py} | 0
.../function-calling/{openai.py => function-calling-openai.py} | 0
.../{openrouter.py => function-calling-openrouter.py} | 0
.../{perplexity.py => function-calling-perplexity.py} | 0
examples/function-calling/{qwen.py => function-calling-qwen.py} | 0
.../{sambanova.py => function-calling-sambanova.py} | 0
.../function-calling/{sarvam.py => function-calling-sarvam.py} | 0
.../{together.py => function-calling-together.py} | 0
.../multiple-mcp.py => mcp/mcp-multiple-mcp.py} | 0
examples/{thinking-and-mcp => mcp}/mcp-stdio.py | 0
.../mcp-streamable-http-gemini-live.py | 0
examples/{thinking-and-mcp => mcp}/mcp-streamable-http.py | 0
.../{heartbeats.py => observability-heartbeats.py} | 0
.../observability/{observer.py => observability-observer.py} | 0
.../{sentry-metrics.py => observability-sentry-metrics.py} | 0
.../{anthropic.py => persistent-context-anthropic.py} | 0
.../{aws-nova-sonic.py => persistent-context-aws-nova-sonic.py} | 0
.../{gemini.py => persistent-context-gemini.py} | 0
.../{grok-realtime.py => persistent-context-grok-realtime.py} | 0
...openai-realtime.py => persistent-context-openai-realtime.py} | 0
...nses-http.py => persistent-context-openai-responses-http.py} | 0
...enai-responses.py => persistent-context-openai-responses.py} | 0
.../{openai.py => persistent-context-openai.py} | 0
...i-grounding-metadata.py => rag-gemini-grounding-metadata.py} | 0
examples/rag/{gemini-rag.py => rag-gemini.py} | 0
examples/rag/{mem0.py => rag-mem0.py} | 0
.../realtime/{aws-nova-sonic.py => realtime-aws-nova-sonic.py} | 0
examples/realtime/{azure.py => realtime-azure.py} | 0
...mini-live-files-api.py => realtime-gemini-live-files-api.py} | 0
...tion-calling.py => realtime-gemini-live-function-calling.py} | 0
...e-google-search.py => realtime-gemini-live-google-search.py} | 0
...ive-graceful-end.py => realtime-gemini-live-graceful-end.py} | 0
...g-metadata.py => realtime-gemini-live-grounding-metadata.py} | 0
...mini-live-local-vad.py => realtime-gemini-live-local-vad.py} | 0
...lling.py => realtime-gemini-live-vertex-function-calling.py} | 0
.../{gemini-live-video.py => realtime-gemini-live-video.py} | 0
examples/realtime/{gemini-live.py => realtime-gemini-live.py} | 0
examples/realtime/{grok.py => realtime-grok.py} | 0
.../{openai-live-video.py => realtime-openai-live-video.py} | 0
examples/realtime/{openai-text.py => realtime-openai-text.py} | 0
examples/realtime/{openai.py => realtime-openai.py} | 0
.../realtime/{ultravox-text.py => realtime-ultravox-text.py} | 0
examples/realtime/{ultravox.py => realtime-ultravox.py} | 0
examples/{thinking-and-mcp => thinking}/thinking-anthropic.py | 0
.../thinking-functions-anthropic.py | 0
.../{thinking-and-mcp => thinking}/thinking-functions-google.py | 0
examples/{thinking-and-mcp => thinking}/thinking-google.py | 0
.../{assemblyai.py => transcription-assemblyai.py} | 0
examples/transcription/{azure.py => transcription-azure.py} | 0
.../transcription/{cartesia.py => transcription-cartesia.py} | 0
.../transcription/{deepgram.py => transcription-deepgram.py} | 0
.../{elevenlabs.py => transcription-elevenlabs.py} | 0
...ladia-translation.py => transcription-gladia-translation.py} | 0
.../{gladia-transcription.py => transcription-gladia.py} | 0
.../{google-llm.py => transcription-google-llm.py} | 0
examples/transcription/{gradium.py => transcription-gradium.py} | 0
examples/transcription/{openai.py => transcription-openai.py} | 0
examples/transcription/{soniox.py => transcription-soniox.py} | 0
.../{speechmatics.py => transcription-speechmatics.py} | 0
.../{whisper-local.py => transcription-whisper-local.py} | 0
.../{whisper-mlx.py => transcription-whisper-mlx.py} | 0
examples/transcription/{whisper.py => transcription-whisper.py} | 0
examples/transports/{daily.py => transports-daily.py} | 0
examples/transports/{livekit.py => transports-livekit.py} | 0
.../transports/{small-webrtc.py => transports-small-webrtc.py} | 0
...{detect-user-idle.py => turn-management-detect-user-idle.py} | 0
...lete-turns.py => turn-management-filter-incomplete-turns.py} | 0
...ruption-config.py => turn-management-interruption-config.py} | 0
...cal-coreml.py => turn-management-smart-turn-local-coreml.py} | 0
...{smart-turn-local.py => turn-management-smart-turn-local.py} | 0
...ng-observer.py => turn-management-turn-tracking-observer.py} | 0
...sistant-turns.py => turn-management-user-assistant-turns.py} | 0
...r-mute-strategy.py => turn-management-user-mute-strategy.py} | 0
examples/update-settings/llm/{anthropic.py => llm-anthropic.py} | 0
.../update-settings/llm/{aws-bedrock.py => llm-aws-bedrock.py} | 0
.../llm/{aws-nova-sonic.py => llm-aws-nova-sonic.py} | 0
.../llm/{azure-realtime.py => llm-azure-realtime.py} | 0
examples/update-settings/llm/{azure.py => llm-azure.py} | 0
examples/update-settings/llm/{cerebras.py => llm-cerebras.py} | 0
examples/update-settings/llm/{deepseek.py => llm-deepseek.py} | 0
examples/update-settings/llm/{fireworks.py => llm-fireworks.py} | 0
.../llm/{gemini-live-vertex.py => llm-gemini-live-vertex.py} | 0
.../update-settings/llm/{gemini-live.py => llm-gemini-live.py} | 0
.../llm/{google-vertex.py => llm-google-vertex.py} | 0
examples/update-settings/llm/{google.py => llm-google.py} | 0
.../llm/{grok-realtime.py => llm-grok-realtime.py} | 0
examples/update-settings/llm/{grok.py => llm-grok.py} | 0
examples/update-settings/llm/{groq.py => llm-groq.py} | 0
examples/update-settings/llm/{mistral.py => llm-mistral.py} | 0
examples/update-settings/llm/{nvidia.py => llm-nvidia.py} | 0
examples/update-settings/llm/{ollama.py => llm-ollama.py} | 0
.../llm/{openai-realtime.py => llm-openai-realtime.py} | 0
.../{openai-responses-http.py => llm-openai-responses-http.py} | 0
.../llm/{openai-responses.py => llm-openai-responses.py} | 0
examples/update-settings/llm/{openai.py => llm-openai.py} | 0
.../update-settings/llm/{openrouter.py => llm-openrouter.py} | 0
.../update-settings/llm/{perplexity.py => llm-perplexity.py} | 0
examples/update-settings/llm/{qwen.py => llm-qwen.py} | 0
examples/update-settings/llm/{sambanova.py => llm-sambanova.py} | 0
examples/update-settings/llm/{sarvam.py => llm-sarvam.py} | 0
examples/update-settings/llm/{together.py => llm-together.py} | 0
.../llm/{ultravox-realtime.py => llm-ultravox-realtime.py} | 0
.../update-settings/stt/{assemblyai.py => stt-assemblyai.py} | 0
.../stt/{aws-transcribe.py => stt-aws-transcribe.py} | 0
examples/update-settings/stt/{azure.py => stt-azure.py} | 0
examples/update-settings/stt/{cartesia.py => stt-cartesia.py} | 0
.../stt/{deepgram-flux.py => stt-deepgram-flux.py} | 0
.../stt/{deepgram-sagemaker.py => stt-deepgram-sagemaker.py} | 0
examples/update-settings/stt/{deepgram.py => stt-deepgram.py} | 0
.../stt/{elevenlabs-realtime.py => stt-elevenlabs-realtime.py} | 0
.../update-settings/stt/{elevenlabs.py => stt-elevenlabs.py} | 0
examples/update-settings/stt/{fal.py => stt-fal.py} | 0
examples/update-settings/stt/{gladia.py => stt-gladia.py} | 0
examples/update-settings/stt/{google.py => stt-google.py} | 0
examples/update-settings/stt/{gradium.py => stt-gradium.py} | 0
examples/update-settings/stt/{groq.py => stt-groq.py} | 0
.../stt/{nvidia-segmented.py => stt-nvidia-segmented.py} | 0
examples/update-settings/stt/{nvidia.py => stt-nvidia.py} | 0
.../stt/{openai-realtime.py => stt-openai-realtime.py} | 0
examples/update-settings/stt/{sarvam.py => stt-sarvam.py} | 0
examples/update-settings/stt/{soniox.py => stt-soniox.py} | 0
.../stt/{speechmatics.py => stt-speechmatics.py} | 0
.../update-settings/stt/{whisper-api.py => stt-whisper-api.py} | 0
.../update-settings/stt/{whisper-mlx.py => stt-whisper-mlx.py} | 0
examples/update-settings/stt/{whisper.py => stt-whisper.py} | 0
.../tts/{asyncai-http.py => tts-asyncai-http.py} | 0
examples/update-settings/tts/{asyncai.py => tts-asyncai.py} | 0
examples/update-settings/tts/{aws-polly.py => tts-aws-polly.py} | 0
.../update-settings/tts/{azure-http.py => tts-azure-http.py} | 0
examples/update-settings/tts/{azure.py => tts-azure.py} | 0
examples/update-settings/tts/{camb.py => tts-camb.py} | 0
.../tts/{cartesia-http.py => tts-cartesia-http.py} | 0
examples/update-settings/tts/{cartesia.py => tts-cartesia.py} | 0
.../tts/{deepgram-http.py => tts-deepgram-http.py} | 0
.../tts/{deepgram-sagemaker.py => tts-deepgram-sagemaker.py} | 0
examples/update-settings/tts/{deepgram.py => tts-deepgram.py} | 0
.../tts/{elevenlabs-http.py => tts-elevenlabs-http.py} | 0
.../update-settings/tts/{elevenlabs.py => tts-elevenlabs.py} | 0
examples/update-settings/tts/{fish.py => tts-fish.py} | 0
examples/update-settings/tts/{gemini.py => tts-gemini.py} | 0
.../update-settings/tts/{google-http.py => tts-google-http.py} | 0
.../tts/{google-stream.py => tts-google-stream.py} | 0
examples/update-settings/tts/{gradium.py => tts-gradium.py} | 0
examples/update-settings/tts/{groq.py => tts-groq.py} | 0
examples/update-settings/tts/{hume.py => tts-hume.py} | 0
.../tts/{inworld-http.py => tts-inworld-http.py} | 0
examples/update-settings/tts/{inworld.py => tts-inworld.py} | 0
examples/update-settings/tts/{kokoro.py => tts-kokoro.py} | 0
examples/update-settings/tts/{lmnt.py => tts-lmnt.py} | 0
examples/update-settings/tts/{minimax.py => tts-minimax.py} | 0
.../tts/{neuphonic-http.py => tts-neuphonic-http.py} | 0
examples/update-settings/tts/{neuphonic.py => tts-neuphonic.py} | 0
examples/update-settings/tts/{nvidia.py => tts-nvidia.py} | 0
examples/update-settings/tts/{openai.py => tts-openai.py} | 0
.../update-settings/tts/{piper-http.py => tts-piper-http.py} | 0
examples/update-settings/tts/{piper.py => tts-piper.py} | 0
.../update-settings/tts/{resembleai.py => tts-resembleai.py} | 0
examples/update-settings/tts/{rime-http.py => tts-rime-http.py} | 0
examples/update-settings/tts/{rime.py => tts-rime.py} | 0
.../update-settings/tts/{sarvam-http.py => tts-sarvam-http.py} | 0
examples/update-settings/tts/{sarvam.py => tts-sarvam.py} | 0
.../tts/{speechmatics.py => tts-speechmatics.py} | 0
examples/update-settings/tts/{xtts.py => tts-xtts.py} | 0
.../{heygen-transport.py => video-avatar-heygen-transport.py} | 0
...en-video-service.py => video-avatar-heygen-video-service.py} | 0
...nslice-transport.py => video-avatar-lemonslice-transport.py} | 0
.../{simli-layer.py => video-avatar-simli-layer.py} | 0
.../{tavus-transport.py => video-avatar-tavus-transport.py} | 0
...vus-video-service.py => video-avatar-tavus-video-service.py} | 0
...om-video-track.py => video-processing-custom-video-track.py} | 0
...treamer-filesrc.py => video-processing-gstreamer-filesrc.py} | 0
...deotestsrc.py => video-processing-gstreamer-videotestsrc.py} | 0
.../{local-mirror.py => video-processing-local-mirror.py} | 0
.../video-processing/{mirror.py => video-processing-mirror.py} | 0
examples/vision/{anthropic.py => vision-anthropic.py} | 0
examples/vision/{aws.py => vision-aws.py} | 0
examples/vision/{gemini-flash.py => vision-gemini-flash.py} | 0
examples/vision/{moondream.py => vision-moondream.py} | 0
...openai-responses-http.py => vision-openai-responses-http.py} | 0
.../vision/{openai-responses.py => vision-openai-responses.py} | 0
examples/vision/{openai.py => vision-openai.py} | 0
examples/voice/{aicoustics.py => voice-aicoustics.py} | 0
...yai-turn-detection.py => voice-assemblyai-turn-detection.py} | 0
examples/voice/{assemblyai.py => voice-assemblyai.py} | 0
examples/voice/{asyncai-http.py => voice-asyncai-http.py} | 0
examples/voice/{asyncai.py => voice-asyncai.py} | 0
examples/voice/{aws-strands.py => voice-aws-strands.py} | 0
examples/voice/{aws.py => voice-aws.py} | 0
examples/voice/{azure-http.py => voice-azure-http.py} | 0
examples/voice/{azure.py => voice-azure.py} | 0
examples/voice/{camb.py => voice-camb.py} | 0
examples/voice/{cartesia-http.py => voice-cartesia-http.py} | 0
examples/voice/{cartesia.py => voice-cartesia.py} | 0
...pgram-flux-sagemaker.py => voice-deepgram-flux-sagemaker.py} | 0
examples/voice/{deepgram-flux.py => voice-deepgram-flux.py} | 0
examples/voice/{deepgram-http.py => voice-deepgram-http.py} | 0
.../{deepgram-sagemaker.py => voice-deepgram-sagemaker.py} | 0
examples/voice/{deepgram-vad.py => voice-deepgram-vad.py} | 0
examples/voice/{deepgram.py => voice-deepgram.py} | 0
examples/voice/{elevenlabs-http.py => voice-elevenlabs-http.py} | 0
examples/voice/{elevenlabs.py => voice-elevenlabs.py} | 0
examples/voice/{fal.py => voice-fal.py} | 0
examples/voice/{fish.py => voice-fish.py} | 0
examples/voice/{gladia-vad.py => voice-gladia-vad.py} | 0
examples/voice/{gladia.py => voice-gladia.py} | 0
examples/voice/{google-audio-in.py => voice-google-audio-in.py} | 0
.../voice/{google-gemini-tts.py => voice-google-gemini-tts.py} | 0
examples/voice/{google-http.py => voice-google-http.py} | 0
examples/voice/{google-image.py => voice-google-image.py} | 0
examples/voice/{google.py => voice-google.py} | 0
examples/voice/{gradium.py => voice-gradium.py} | 0
examples/voice/{groq.py => voice-groq.py} | 0
examples/voice/{hume.py => voice-hume.py} | 0
examples/voice/{inworld-http.py => voice-inworld-http.py} | 0
examples/voice/{inworld.py => voice-inworld.py} | 0
examples/voice/{kokoro.py => voice-kokoro.py} | 0
examples/voice/{krisp-viva.py => voice-krisp-viva.py} | 0
examples/voice/{langchain.py => voice-langchain.py} | 0
examples/voice/{lmnt.py => voice-lmnt.py} | 0
examples/voice/{minimax.py => voice-minimax.py} | 0
examples/voice/{neuphonic-http.py => voice-neuphonic-http.py} | 0
examples/voice/{neuphonic.py => voice-neuphonic.py} | 0
examples/voice/{nvidia.py => voice-nvidia.py} | 0
examples/voice/{openai-http.py => voice-openai-http.py} | 0
...{openai-responses-http.py => voice-openai-responses-http.py} | 0
.../voice/{openai-responses.py => voice-openai-responses.py} | 0
examples/voice/{openai.py => voice-openai.py} | 0
examples/voice/{piper.py => voice-piper.py} | 0
examples/voice/{resemble.py => voice-resemble.py} | 0
examples/voice/{rime-http.py => voice-rime-http.py} | 0
examples/voice/{rime.py => voice-rime.py} | 0
examples/voice/{sarvam-http.py => voice-sarvam-http.py} | 0
examples/voice/{sarvam.py => voice-sarvam.py} | 0
examples/voice/{smallest.py => voice-smallest.py} | 0
examples/voice/{soniox.py => voice-soniox.py} | 0
.../voice/{speechmatics-vad.py => voice-speechmatics-vad.py} | 0
examples/voice/{speechmatics.py => voice-speechmatics.py} | 0
examples/voice/{xai.py => voice-xai.py} | 0
examples/voice/{xtts.py => voice-xtts.py} | 0
283 files changed, 1 insertion(+), 1 deletion(-)
rename examples/audio/{bot-background-sound.py => audio-bot-background-sound.py} (100%)
rename examples/audio/{sound-effects.py => audio-sound-effects.py} (100%)
rename examples/context-summarization/{dedicated-llm.py => context-summarization-dedicated-llm.py} (100%)
rename examples/context-summarization/{google.py => context-summarization-google.py} (100%)
rename examples/context-summarization/{manual-openai.py => context-summarization-manual-openai.py} (100%)
rename examples/context-summarization/{openai.py => context-summarization-openai.py} (100%)
rename examples/features/{before-and-after-events.py => features-before-and-after-events.py} (100%)
rename examples/features/{concurrent-llm-evaluation.py => features-concurrent-llm-evaluation.py} (100%)
rename examples/features/{concurrent-llm-rtvi-ignored-sources.py => features-concurrent-llm-rtvi-ignored-sources.py} (100%)
rename examples/features/{custom-frame-processor.py => features-custom-frame-processor.py} (100%)
rename examples/features/{gpu-container-local-bot.py => features-gpu-container-local-bot.py} (100%)
rename examples/features/{live-translation.py => features-live-translation.py} (100%)
rename examples/features/{pattern-pair-voice-switching.py => features-pattern-pair-voice-switching.py} (100%)
rename examples/features/{service-switcher.py => features-service-switcher.py} (100%)
rename examples/features/{switch-languages.py => features-switch-languages.py} (100%)
rename examples/features/{switch-voices.py => features-switch-voices.py} (100%)
rename examples/features/{user-email-gathering.py => features-user-email-gathering.py} (100%)
rename examples/features/{voicemail-detection.py => features-voicemail-detection.py} (100%)
rename examples/features/{wake-phrase.py => features-wake-phrase.py} (100%)
rename examples/function-calling/{anthropic-video.py => function-calling-anthropic-video.py} (100%)
rename examples/function-calling/{anthropic.py => function-calling-anthropic.py} (100%)
rename examples/function-calling/{aws-video.py => function-calling-aws-video.py} (100%)
rename examples/function-calling/{aws.py => function-calling-aws.py} (100%)
rename examples/function-calling/{azure.py => function-calling-azure.py} (100%)
rename examples/function-calling/{cerebras.py => function-calling-cerebras.py} (100%)
rename examples/function-calling/{deepseek.py => function-calling-deepseek.py} (100%)
rename examples/function-calling/{direct.py => function-calling-direct.py} (100%)
rename examples/function-calling/{fireworks.py => function-calling-fireworks.py} (100%)
rename examples/function-calling/{google-vertex.py => function-calling-google-vertex.py} (100%)
rename examples/function-calling/{google-video.py => function-calling-google-video.py} (100%)
rename examples/function-calling/{google.py => function-calling-google.py} (100%)
rename examples/function-calling/{grok.py => function-calling-grok.py} (100%)
rename examples/function-calling/{groq.py => function-calling-groq.py} (100%)
rename examples/function-calling/{mistral.py => function-calling-mistral.py} (100%)
rename examples/function-calling/{moondream-video.py => function-calling-moondream-video.py} (100%)
rename examples/function-calling/{nebius.py => function-calling-nebius.py} (100%)
rename examples/function-calling/{novita.py => function-calling-novita.py} (100%)
rename examples/function-calling/{nvidia.py => function-calling-nvidia.py} (100%)
rename examples/function-calling/{ollama.py => function-calling-ollama.py} (100%)
rename examples/function-calling/{openai-responses-http.py => function-calling-openai-responses-http.py} (100%)
rename examples/function-calling/{openai-responses-video-http.py => function-calling-openai-responses-video-http.py} (100%)
rename examples/function-calling/{openai-responses-video.py => function-calling-openai-responses-video.py} (100%)
rename examples/function-calling/{openai-responses.py => function-calling-openai-responses.py} (100%)
rename examples/function-calling/{openai-video.py => function-calling-openai-video.py} (100%)
rename examples/function-calling/{openai.py => function-calling-openai.py} (100%)
rename examples/function-calling/{openrouter.py => function-calling-openrouter.py} (100%)
rename examples/function-calling/{perplexity.py => function-calling-perplexity.py} (100%)
rename examples/function-calling/{qwen.py => function-calling-qwen.py} (100%)
rename examples/function-calling/{sambanova.py => function-calling-sambanova.py} (100%)
rename examples/function-calling/{sarvam.py => function-calling-sarvam.py} (100%)
rename examples/function-calling/{together.py => function-calling-together.py} (100%)
rename examples/{thinking-and-mcp/multiple-mcp.py => mcp/mcp-multiple-mcp.py} (100%)
rename examples/{thinking-and-mcp => mcp}/mcp-stdio.py (100%)
rename examples/{thinking-and-mcp => mcp}/mcp-streamable-http-gemini-live.py (100%)
rename examples/{thinking-and-mcp => mcp}/mcp-streamable-http.py (100%)
rename examples/observability/{heartbeats.py => observability-heartbeats.py} (100%)
rename examples/observability/{observer.py => observability-observer.py} (100%)
rename examples/observability/{sentry-metrics.py => observability-sentry-metrics.py} (100%)
rename examples/persistent-context/{anthropic.py => persistent-context-anthropic.py} (100%)
rename examples/persistent-context/{aws-nova-sonic.py => persistent-context-aws-nova-sonic.py} (100%)
rename examples/persistent-context/{gemini.py => persistent-context-gemini.py} (100%)
rename examples/persistent-context/{grok-realtime.py => persistent-context-grok-realtime.py} (100%)
rename examples/persistent-context/{openai-realtime.py => persistent-context-openai-realtime.py} (100%)
rename examples/persistent-context/{openai-responses-http.py => persistent-context-openai-responses-http.py} (100%)
rename examples/persistent-context/{openai-responses.py => persistent-context-openai-responses.py} (100%)
rename examples/persistent-context/{openai.py => persistent-context-openai.py} (100%)
rename examples/rag/{gemini-grounding-metadata.py => rag-gemini-grounding-metadata.py} (100%)
rename examples/rag/{gemini-rag.py => rag-gemini.py} (100%)
rename examples/rag/{mem0.py => rag-mem0.py} (100%)
rename examples/realtime/{aws-nova-sonic.py => realtime-aws-nova-sonic.py} (100%)
rename examples/realtime/{azure.py => realtime-azure.py} (100%)
rename examples/realtime/{gemini-live-files-api.py => realtime-gemini-live-files-api.py} (100%)
rename examples/realtime/{gemini-live-function-calling.py => realtime-gemini-live-function-calling.py} (100%)
rename examples/realtime/{gemini-live-google-search.py => realtime-gemini-live-google-search.py} (100%)
rename examples/realtime/{gemini-live-graceful-end.py => realtime-gemini-live-graceful-end.py} (100%)
rename examples/realtime/{gemini-live-grounding-metadata.py => realtime-gemini-live-grounding-metadata.py} (100%)
rename examples/realtime/{gemini-live-local-vad.py => realtime-gemini-live-local-vad.py} (100%)
rename examples/realtime/{gemini-live-vertex-function-calling.py => realtime-gemini-live-vertex-function-calling.py} (100%)
rename examples/realtime/{gemini-live-video.py => realtime-gemini-live-video.py} (100%)
rename examples/realtime/{gemini-live.py => realtime-gemini-live.py} (100%)
rename examples/realtime/{grok.py => realtime-grok.py} (100%)
rename examples/realtime/{openai-live-video.py => realtime-openai-live-video.py} (100%)
rename examples/realtime/{openai-text.py => realtime-openai-text.py} (100%)
rename examples/realtime/{openai.py => realtime-openai.py} (100%)
rename examples/realtime/{ultravox-text.py => realtime-ultravox-text.py} (100%)
rename examples/realtime/{ultravox.py => realtime-ultravox.py} (100%)
rename examples/{thinking-and-mcp => thinking}/thinking-anthropic.py (100%)
rename examples/{thinking-and-mcp => thinking}/thinking-functions-anthropic.py (100%)
rename examples/{thinking-and-mcp => thinking}/thinking-functions-google.py (100%)
rename examples/{thinking-and-mcp => thinking}/thinking-google.py (100%)
rename examples/transcription/{assemblyai.py => transcription-assemblyai.py} (100%)
rename examples/transcription/{azure.py => transcription-azure.py} (100%)
rename examples/transcription/{cartesia.py => transcription-cartesia.py} (100%)
rename examples/transcription/{deepgram.py => transcription-deepgram.py} (100%)
rename examples/transcription/{elevenlabs.py => transcription-elevenlabs.py} (100%)
rename examples/transcription/{gladia-translation.py => transcription-gladia-translation.py} (100%)
rename examples/transcription/{gladia-transcription.py => transcription-gladia.py} (100%)
rename examples/transcription/{google-llm.py => transcription-google-llm.py} (100%)
rename examples/transcription/{gradium.py => transcription-gradium.py} (100%)
rename examples/transcription/{openai.py => transcription-openai.py} (100%)
rename examples/transcription/{soniox.py => transcription-soniox.py} (100%)
rename examples/transcription/{speechmatics.py => transcription-speechmatics.py} (100%)
rename examples/transcription/{whisper-local.py => transcription-whisper-local.py} (100%)
rename examples/transcription/{whisper-mlx.py => transcription-whisper-mlx.py} (100%)
rename examples/transcription/{whisper.py => transcription-whisper.py} (100%)
rename examples/transports/{daily.py => transports-daily.py} (100%)
rename examples/transports/{livekit.py => transports-livekit.py} (100%)
rename examples/transports/{small-webrtc.py => transports-small-webrtc.py} (100%)
rename examples/turn-management/{detect-user-idle.py => turn-management-detect-user-idle.py} (100%)
rename examples/turn-management/{filter-incomplete-turns.py => turn-management-filter-incomplete-turns.py} (100%)
rename examples/turn-management/{interruption-config.py => turn-management-interruption-config.py} (100%)
rename examples/turn-management/{smart-turn-local-coreml.py => turn-management-smart-turn-local-coreml.py} (100%)
rename examples/turn-management/{smart-turn-local.py => turn-management-smart-turn-local.py} (100%)
rename examples/turn-management/{turn-tracking-observer.py => turn-management-turn-tracking-observer.py} (100%)
rename examples/turn-management/{user-assistant-turns.py => turn-management-user-assistant-turns.py} (100%)
rename examples/turn-management/{user-mute-strategy.py => turn-management-user-mute-strategy.py} (100%)
rename examples/update-settings/llm/{anthropic.py => llm-anthropic.py} (100%)
rename examples/update-settings/llm/{aws-bedrock.py => llm-aws-bedrock.py} (100%)
rename examples/update-settings/llm/{aws-nova-sonic.py => llm-aws-nova-sonic.py} (100%)
rename examples/update-settings/llm/{azure-realtime.py => llm-azure-realtime.py} (100%)
rename examples/update-settings/llm/{azure.py => llm-azure.py} (100%)
rename examples/update-settings/llm/{cerebras.py => llm-cerebras.py} (100%)
rename examples/update-settings/llm/{deepseek.py => llm-deepseek.py} (100%)
rename examples/update-settings/llm/{fireworks.py => llm-fireworks.py} (100%)
rename examples/update-settings/llm/{gemini-live-vertex.py => llm-gemini-live-vertex.py} (100%)
rename examples/update-settings/llm/{gemini-live.py => llm-gemini-live.py} (100%)
rename examples/update-settings/llm/{google-vertex.py => llm-google-vertex.py} (100%)
rename examples/update-settings/llm/{google.py => llm-google.py} (100%)
rename examples/update-settings/llm/{grok-realtime.py => llm-grok-realtime.py} (100%)
rename examples/update-settings/llm/{grok.py => llm-grok.py} (100%)
rename examples/update-settings/llm/{groq.py => llm-groq.py} (100%)
rename examples/update-settings/llm/{mistral.py => llm-mistral.py} (100%)
rename examples/update-settings/llm/{nvidia.py => llm-nvidia.py} (100%)
rename examples/update-settings/llm/{ollama.py => llm-ollama.py} (100%)
rename examples/update-settings/llm/{openai-realtime.py => llm-openai-realtime.py} (100%)
rename examples/update-settings/llm/{openai-responses-http.py => llm-openai-responses-http.py} (100%)
rename examples/update-settings/llm/{openai-responses.py => llm-openai-responses.py} (100%)
rename examples/update-settings/llm/{openai.py => llm-openai.py} (100%)
rename examples/update-settings/llm/{openrouter.py => llm-openrouter.py} (100%)
rename examples/update-settings/llm/{perplexity.py => llm-perplexity.py} (100%)
rename examples/update-settings/llm/{qwen.py => llm-qwen.py} (100%)
rename examples/update-settings/llm/{sambanova.py => llm-sambanova.py} (100%)
rename examples/update-settings/llm/{sarvam.py => llm-sarvam.py} (100%)
rename examples/update-settings/llm/{together.py => llm-together.py} (100%)
rename examples/update-settings/llm/{ultravox-realtime.py => llm-ultravox-realtime.py} (100%)
rename examples/update-settings/stt/{assemblyai.py => stt-assemblyai.py} (100%)
rename examples/update-settings/stt/{aws-transcribe.py => stt-aws-transcribe.py} (100%)
rename examples/update-settings/stt/{azure.py => stt-azure.py} (100%)
rename examples/update-settings/stt/{cartesia.py => stt-cartesia.py} (100%)
rename examples/update-settings/stt/{deepgram-flux.py => stt-deepgram-flux.py} (100%)
rename examples/update-settings/stt/{deepgram-sagemaker.py => stt-deepgram-sagemaker.py} (100%)
rename examples/update-settings/stt/{deepgram.py => stt-deepgram.py} (100%)
rename examples/update-settings/stt/{elevenlabs-realtime.py => stt-elevenlabs-realtime.py} (100%)
rename examples/update-settings/stt/{elevenlabs.py => stt-elevenlabs.py} (100%)
rename examples/update-settings/stt/{fal.py => stt-fal.py} (100%)
rename examples/update-settings/stt/{gladia.py => stt-gladia.py} (100%)
rename examples/update-settings/stt/{google.py => stt-google.py} (100%)
rename examples/update-settings/stt/{gradium.py => stt-gradium.py} (100%)
rename examples/update-settings/stt/{groq.py => stt-groq.py} (100%)
rename examples/update-settings/stt/{nvidia-segmented.py => stt-nvidia-segmented.py} (100%)
rename examples/update-settings/stt/{nvidia.py => stt-nvidia.py} (100%)
rename examples/update-settings/stt/{openai-realtime.py => stt-openai-realtime.py} (100%)
rename examples/update-settings/stt/{sarvam.py => stt-sarvam.py} (100%)
rename examples/update-settings/stt/{soniox.py => stt-soniox.py} (100%)
rename examples/update-settings/stt/{speechmatics.py => stt-speechmatics.py} (100%)
rename examples/update-settings/stt/{whisper-api.py => stt-whisper-api.py} (100%)
rename examples/update-settings/stt/{whisper-mlx.py => stt-whisper-mlx.py} (100%)
rename examples/update-settings/stt/{whisper.py => stt-whisper.py} (100%)
rename examples/update-settings/tts/{asyncai-http.py => tts-asyncai-http.py} (100%)
rename examples/update-settings/tts/{asyncai.py => tts-asyncai.py} (100%)
rename examples/update-settings/tts/{aws-polly.py => tts-aws-polly.py} (100%)
rename examples/update-settings/tts/{azure-http.py => tts-azure-http.py} (100%)
rename examples/update-settings/tts/{azure.py => tts-azure.py} (100%)
rename examples/update-settings/tts/{camb.py => tts-camb.py} (100%)
rename examples/update-settings/tts/{cartesia-http.py => tts-cartesia-http.py} (100%)
rename examples/update-settings/tts/{cartesia.py => tts-cartesia.py} (100%)
rename examples/update-settings/tts/{deepgram-http.py => tts-deepgram-http.py} (100%)
rename examples/update-settings/tts/{deepgram-sagemaker.py => tts-deepgram-sagemaker.py} (100%)
rename examples/update-settings/tts/{deepgram.py => tts-deepgram.py} (100%)
rename examples/update-settings/tts/{elevenlabs-http.py => tts-elevenlabs-http.py} (100%)
rename examples/update-settings/tts/{elevenlabs.py => tts-elevenlabs.py} (100%)
rename examples/update-settings/tts/{fish.py => tts-fish.py} (100%)
rename examples/update-settings/tts/{gemini.py => tts-gemini.py} (100%)
rename examples/update-settings/tts/{google-http.py => tts-google-http.py} (100%)
rename examples/update-settings/tts/{google-stream.py => tts-google-stream.py} (100%)
rename examples/update-settings/tts/{gradium.py => tts-gradium.py} (100%)
rename examples/update-settings/tts/{groq.py => tts-groq.py} (100%)
rename examples/update-settings/tts/{hume.py => tts-hume.py} (100%)
rename examples/update-settings/tts/{inworld-http.py => tts-inworld-http.py} (100%)
rename examples/update-settings/tts/{inworld.py => tts-inworld.py} (100%)
rename examples/update-settings/tts/{kokoro.py => tts-kokoro.py} (100%)
rename examples/update-settings/tts/{lmnt.py => tts-lmnt.py} (100%)
rename examples/update-settings/tts/{minimax.py => tts-minimax.py} (100%)
rename examples/update-settings/tts/{neuphonic-http.py => tts-neuphonic-http.py} (100%)
rename examples/update-settings/tts/{neuphonic.py => tts-neuphonic.py} (100%)
rename examples/update-settings/tts/{nvidia.py => tts-nvidia.py} (100%)
rename examples/update-settings/tts/{openai.py => tts-openai.py} (100%)
rename examples/update-settings/tts/{piper-http.py => tts-piper-http.py} (100%)
rename examples/update-settings/tts/{piper.py => tts-piper.py} (100%)
rename examples/update-settings/tts/{resembleai.py => tts-resembleai.py} (100%)
rename examples/update-settings/tts/{rime-http.py => tts-rime-http.py} (100%)
rename examples/update-settings/tts/{rime.py => tts-rime.py} (100%)
rename examples/update-settings/tts/{sarvam-http.py => tts-sarvam-http.py} (100%)
rename examples/update-settings/tts/{sarvam.py => tts-sarvam.py} (100%)
rename examples/update-settings/tts/{speechmatics.py => tts-speechmatics.py} (100%)
rename examples/update-settings/tts/{xtts.py => tts-xtts.py} (100%)
rename examples/video-avatar/{heygen-transport.py => video-avatar-heygen-transport.py} (100%)
rename examples/video-avatar/{heygen-video-service.py => video-avatar-heygen-video-service.py} (100%)
rename examples/video-avatar/{lemonslice-transport.py => video-avatar-lemonslice-transport.py} (100%)
rename examples/video-avatar/{simli-layer.py => video-avatar-simli-layer.py} (100%)
rename examples/video-avatar/{tavus-transport.py => video-avatar-tavus-transport.py} (100%)
rename examples/video-avatar/{tavus-video-service.py => video-avatar-tavus-video-service.py} (100%)
rename examples/video-processing/{custom-video-track.py => video-processing-custom-video-track.py} (100%)
rename examples/video-processing/{gstreamer-filesrc.py => video-processing-gstreamer-filesrc.py} (100%)
rename examples/video-processing/{gstreamer-videotestsrc.py => video-processing-gstreamer-videotestsrc.py} (100%)
rename examples/video-processing/{local-mirror.py => video-processing-local-mirror.py} (100%)
rename examples/video-processing/{mirror.py => video-processing-mirror.py} (100%)
rename examples/vision/{anthropic.py => vision-anthropic.py} (100%)
rename examples/vision/{aws.py => vision-aws.py} (100%)
rename examples/vision/{gemini-flash.py => vision-gemini-flash.py} (100%)
rename examples/vision/{moondream.py => vision-moondream.py} (100%)
rename examples/vision/{openai-responses-http.py => vision-openai-responses-http.py} (100%)
rename examples/vision/{openai-responses.py => vision-openai-responses.py} (100%)
rename examples/vision/{openai.py => vision-openai.py} (100%)
rename examples/voice/{aicoustics.py => voice-aicoustics.py} (100%)
rename examples/voice/{assemblyai-turn-detection.py => voice-assemblyai-turn-detection.py} (100%)
rename examples/voice/{assemblyai.py => voice-assemblyai.py} (100%)
rename examples/voice/{asyncai-http.py => voice-asyncai-http.py} (100%)
rename examples/voice/{asyncai.py => voice-asyncai.py} (100%)
rename examples/voice/{aws-strands.py => voice-aws-strands.py} (100%)
rename examples/voice/{aws.py => voice-aws.py} (100%)
rename examples/voice/{azure-http.py => voice-azure-http.py} (100%)
rename examples/voice/{azure.py => voice-azure.py} (100%)
rename examples/voice/{camb.py => voice-camb.py} (100%)
rename examples/voice/{cartesia-http.py => voice-cartesia-http.py} (100%)
rename examples/voice/{cartesia.py => voice-cartesia.py} (100%)
rename examples/voice/{deepgram-flux-sagemaker.py => voice-deepgram-flux-sagemaker.py} (100%)
rename examples/voice/{deepgram-flux.py => voice-deepgram-flux.py} (100%)
rename examples/voice/{deepgram-http.py => voice-deepgram-http.py} (100%)
rename examples/voice/{deepgram-sagemaker.py => voice-deepgram-sagemaker.py} (100%)
rename examples/voice/{deepgram-vad.py => voice-deepgram-vad.py} (100%)
rename examples/voice/{deepgram.py => voice-deepgram.py} (100%)
rename examples/voice/{elevenlabs-http.py => voice-elevenlabs-http.py} (100%)
rename examples/voice/{elevenlabs.py => voice-elevenlabs.py} (100%)
rename examples/voice/{fal.py => voice-fal.py} (100%)
rename examples/voice/{fish.py => voice-fish.py} (100%)
rename examples/voice/{gladia-vad.py => voice-gladia-vad.py} (100%)
rename examples/voice/{gladia.py => voice-gladia.py} (100%)
rename examples/voice/{google-audio-in.py => voice-google-audio-in.py} (100%)
rename examples/voice/{google-gemini-tts.py => voice-google-gemini-tts.py} (100%)
rename examples/voice/{google-http.py => voice-google-http.py} (100%)
rename examples/voice/{google-image.py => voice-google-image.py} (100%)
rename examples/voice/{google.py => voice-google.py} (100%)
rename examples/voice/{gradium.py => voice-gradium.py} (100%)
rename examples/voice/{groq.py => voice-groq.py} (100%)
rename examples/voice/{hume.py => voice-hume.py} (100%)
rename examples/voice/{inworld-http.py => voice-inworld-http.py} (100%)
rename examples/voice/{inworld.py => voice-inworld.py} (100%)
rename examples/voice/{kokoro.py => voice-kokoro.py} (100%)
rename examples/voice/{krisp-viva.py => voice-krisp-viva.py} (100%)
rename examples/voice/{langchain.py => voice-langchain.py} (100%)
rename examples/voice/{lmnt.py => voice-lmnt.py} (100%)
rename examples/voice/{minimax.py => voice-minimax.py} (100%)
rename examples/voice/{neuphonic-http.py => voice-neuphonic-http.py} (100%)
rename examples/voice/{neuphonic.py => voice-neuphonic.py} (100%)
rename examples/voice/{nvidia.py => voice-nvidia.py} (100%)
rename examples/voice/{openai-http.py => voice-openai-http.py} (100%)
rename examples/voice/{openai-responses-http.py => voice-openai-responses-http.py} (100%)
rename examples/voice/{openai-responses.py => voice-openai-responses.py} (100%)
rename examples/voice/{openai.py => voice-openai.py} (100%)
rename examples/voice/{piper.py => voice-piper.py} (100%)
rename examples/voice/{resemble.py => voice-resemble.py} (100%)
rename examples/voice/{rime-http.py => voice-rime-http.py} (100%)
rename examples/voice/{rime.py => voice-rime.py} (100%)
rename examples/voice/{sarvam-http.py => voice-sarvam-http.py} (100%)
rename examples/voice/{sarvam.py => voice-sarvam.py} (100%)
rename examples/voice/{smallest.py => voice-smallest.py} (100%)
rename examples/voice/{soniox.py => voice-soniox.py} (100%)
rename examples/voice/{speechmatics-vad.py => voice-speechmatics-vad.py} (100%)
rename examples/voice/{speechmatics.py => voice-speechmatics.py} (100%)
rename examples/voice/{xai.py => voice-xai.py} (100%)
rename examples/voice/{xtts.py => voice-xtts.py} (100%)
diff --git a/README.md b/README.md
index af165a94f..f900ff5d4 100644
--- a/README.md
+++ b/README.md
@@ -80,7 +80,7 @@ Catch new features, interviews, and how-tos on our [Pipecat TV](https://www.yout
-
+
## 🧩 Available services
diff --git a/examples/audio/bot-background-sound.py b/examples/audio/audio-bot-background-sound.py
similarity index 100%
rename from examples/audio/bot-background-sound.py
rename to examples/audio/audio-bot-background-sound.py
diff --git a/examples/audio/sound-effects.py b/examples/audio/audio-sound-effects.py
similarity index 100%
rename from examples/audio/sound-effects.py
rename to examples/audio/audio-sound-effects.py
diff --git a/examples/context-summarization/dedicated-llm.py b/examples/context-summarization/context-summarization-dedicated-llm.py
similarity index 100%
rename from examples/context-summarization/dedicated-llm.py
rename to examples/context-summarization/context-summarization-dedicated-llm.py
diff --git a/examples/context-summarization/google.py b/examples/context-summarization/context-summarization-google.py
similarity index 100%
rename from examples/context-summarization/google.py
rename to examples/context-summarization/context-summarization-google.py
diff --git a/examples/context-summarization/manual-openai.py b/examples/context-summarization/context-summarization-manual-openai.py
similarity index 100%
rename from examples/context-summarization/manual-openai.py
rename to examples/context-summarization/context-summarization-manual-openai.py
diff --git a/examples/context-summarization/openai.py b/examples/context-summarization/context-summarization-openai.py
similarity index 100%
rename from examples/context-summarization/openai.py
rename to examples/context-summarization/context-summarization-openai.py
diff --git a/examples/features/before-and-after-events.py b/examples/features/features-before-and-after-events.py
similarity index 100%
rename from examples/features/before-and-after-events.py
rename to examples/features/features-before-and-after-events.py
diff --git a/examples/features/concurrent-llm-evaluation.py b/examples/features/features-concurrent-llm-evaluation.py
similarity index 100%
rename from examples/features/concurrent-llm-evaluation.py
rename to examples/features/features-concurrent-llm-evaluation.py
diff --git a/examples/features/concurrent-llm-rtvi-ignored-sources.py b/examples/features/features-concurrent-llm-rtvi-ignored-sources.py
similarity index 100%
rename from examples/features/concurrent-llm-rtvi-ignored-sources.py
rename to examples/features/features-concurrent-llm-rtvi-ignored-sources.py
diff --git a/examples/features/custom-frame-processor.py b/examples/features/features-custom-frame-processor.py
similarity index 100%
rename from examples/features/custom-frame-processor.py
rename to examples/features/features-custom-frame-processor.py
diff --git a/examples/features/gpu-container-local-bot.py b/examples/features/features-gpu-container-local-bot.py
similarity index 100%
rename from examples/features/gpu-container-local-bot.py
rename to examples/features/features-gpu-container-local-bot.py
diff --git a/examples/features/live-translation.py b/examples/features/features-live-translation.py
similarity index 100%
rename from examples/features/live-translation.py
rename to examples/features/features-live-translation.py
diff --git a/examples/features/pattern-pair-voice-switching.py b/examples/features/features-pattern-pair-voice-switching.py
similarity index 100%
rename from examples/features/pattern-pair-voice-switching.py
rename to examples/features/features-pattern-pair-voice-switching.py
diff --git a/examples/features/service-switcher.py b/examples/features/features-service-switcher.py
similarity index 100%
rename from examples/features/service-switcher.py
rename to examples/features/features-service-switcher.py
diff --git a/examples/features/switch-languages.py b/examples/features/features-switch-languages.py
similarity index 100%
rename from examples/features/switch-languages.py
rename to examples/features/features-switch-languages.py
diff --git a/examples/features/switch-voices.py b/examples/features/features-switch-voices.py
similarity index 100%
rename from examples/features/switch-voices.py
rename to examples/features/features-switch-voices.py
diff --git a/examples/features/user-email-gathering.py b/examples/features/features-user-email-gathering.py
similarity index 100%
rename from examples/features/user-email-gathering.py
rename to examples/features/features-user-email-gathering.py
diff --git a/examples/features/voicemail-detection.py b/examples/features/features-voicemail-detection.py
similarity index 100%
rename from examples/features/voicemail-detection.py
rename to examples/features/features-voicemail-detection.py
diff --git a/examples/features/wake-phrase.py b/examples/features/features-wake-phrase.py
similarity index 100%
rename from examples/features/wake-phrase.py
rename to examples/features/features-wake-phrase.py
diff --git a/examples/function-calling/anthropic-video.py b/examples/function-calling/function-calling-anthropic-video.py
similarity index 100%
rename from examples/function-calling/anthropic-video.py
rename to examples/function-calling/function-calling-anthropic-video.py
diff --git a/examples/function-calling/anthropic.py b/examples/function-calling/function-calling-anthropic.py
similarity index 100%
rename from examples/function-calling/anthropic.py
rename to examples/function-calling/function-calling-anthropic.py
diff --git a/examples/function-calling/aws-video.py b/examples/function-calling/function-calling-aws-video.py
similarity index 100%
rename from examples/function-calling/aws-video.py
rename to examples/function-calling/function-calling-aws-video.py
diff --git a/examples/function-calling/aws.py b/examples/function-calling/function-calling-aws.py
similarity index 100%
rename from examples/function-calling/aws.py
rename to examples/function-calling/function-calling-aws.py
diff --git a/examples/function-calling/azure.py b/examples/function-calling/function-calling-azure.py
similarity index 100%
rename from examples/function-calling/azure.py
rename to examples/function-calling/function-calling-azure.py
diff --git a/examples/function-calling/cerebras.py b/examples/function-calling/function-calling-cerebras.py
similarity index 100%
rename from examples/function-calling/cerebras.py
rename to examples/function-calling/function-calling-cerebras.py
diff --git a/examples/function-calling/deepseek.py b/examples/function-calling/function-calling-deepseek.py
similarity index 100%
rename from examples/function-calling/deepseek.py
rename to examples/function-calling/function-calling-deepseek.py
diff --git a/examples/function-calling/direct.py b/examples/function-calling/function-calling-direct.py
similarity index 100%
rename from examples/function-calling/direct.py
rename to examples/function-calling/function-calling-direct.py
diff --git a/examples/function-calling/fireworks.py b/examples/function-calling/function-calling-fireworks.py
similarity index 100%
rename from examples/function-calling/fireworks.py
rename to examples/function-calling/function-calling-fireworks.py
diff --git a/examples/function-calling/google-vertex.py b/examples/function-calling/function-calling-google-vertex.py
similarity index 100%
rename from examples/function-calling/google-vertex.py
rename to examples/function-calling/function-calling-google-vertex.py
diff --git a/examples/function-calling/google-video.py b/examples/function-calling/function-calling-google-video.py
similarity index 100%
rename from examples/function-calling/google-video.py
rename to examples/function-calling/function-calling-google-video.py
diff --git a/examples/function-calling/google.py b/examples/function-calling/function-calling-google.py
similarity index 100%
rename from examples/function-calling/google.py
rename to examples/function-calling/function-calling-google.py
diff --git a/examples/function-calling/grok.py b/examples/function-calling/function-calling-grok.py
similarity index 100%
rename from examples/function-calling/grok.py
rename to examples/function-calling/function-calling-grok.py
diff --git a/examples/function-calling/groq.py b/examples/function-calling/function-calling-groq.py
similarity index 100%
rename from examples/function-calling/groq.py
rename to examples/function-calling/function-calling-groq.py
diff --git a/examples/function-calling/mistral.py b/examples/function-calling/function-calling-mistral.py
similarity index 100%
rename from examples/function-calling/mistral.py
rename to examples/function-calling/function-calling-mistral.py
diff --git a/examples/function-calling/moondream-video.py b/examples/function-calling/function-calling-moondream-video.py
similarity index 100%
rename from examples/function-calling/moondream-video.py
rename to examples/function-calling/function-calling-moondream-video.py
diff --git a/examples/function-calling/nebius.py b/examples/function-calling/function-calling-nebius.py
similarity index 100%
rename from examples/function-calling/nebius.py
rename to examples/function-calling/function-calling-nebius.py
diff --git a/examples/function-calling/novita.py b/examples/function-calling/function-calling-novita.py
similarity index 100%
rename from examples/function-calling/novita.py
rename to examples/function-calling/function-calling-novita.py
diff --git a/examples/function-calling/nvidia.py b/examples/function-calling/function-calling-nvidia.py
similarity index 100%
rename from examples/function-calling/nvidia.py
rename to examples/function-calling/function-calling-nvidia.py
diff --git a/examples/function-calling/ollama.py b/examples/function-calling/function-calling-ollama.py
similarity index 100%
rename from examples/function-calling/ollama.py
rename to examples/function-calling/function-calling-ollama.py
diff --git a/examples/function-calling/openai-responses-http.py b/examples/function-calling/function-calling-openai-responses-http.py
similarity index 100%
rename from examples/function-calling/openai-responses-http.py
rename to examples/function-calling/function-calling-openai-responses-http.py
diff --git a/examples/function-calling/openai-responses-video-http.py b/examples/function-calling/function-calling-openai-responses-video-http.py
similarity index 100%
rename from examples/function-calling/openai-responses-video-http.py
rename to examples/function-calling/function-calling-openai-responses-video-http.py
diff --git a/examples/function-calling/openai-responses-video.py b/examples/function-calling/function-calling-openai-responses-video.py
similarity index 100%
rename from examples/function-calling/openai-responses-video.py
rename to examples/function-calling/function-calling-openai-responses-video.py
diff --git a/examples/function-calling/openai-responses.py b/examples/function-calling/function-calling-openai-responses.py
similarity index 100%
rename from examples/function-calling/openai-responses.py
rename to examples/function-calling/function-calling-openai-responses.py
diff --git a/examples/function-calling/openai-video.py b/examples/function-calling/function-calling-openai-video.py
similarity index 100%
rename from examples/function-calling/openai-video.py
rename to examples/function-calling/function-calling-openai-video.py
diff --git a/examples/function-calling/openai.py b/examples/function-calling/function-calling-openai.py
similarity index 100%
rename from examples/function-calling/openai.py
rename to examples/function-calling/function-calling-openai.py
diff --git a/examples/function-calling/openrouter.py b/examples/function-calling/function-calling-openrouter.py
similarity index 100%
rename from examples/function-calling/openrouter.py
rename to examples/function-calling/function-calling-openrouter.py
diff --git a/examples/function-calling/perplexity.py b/examples/function-calling/function-calling-perplexity.py
similarity index 100%
rename from examples/function-calling/perplexity.py
rename to examples/function-calling/function-calling-perplexity.py
diff --git a/examples/function-calling/qwen.py b/examples/function-calling/function-calling-qwen.py
similarity index 100%
rename from examples/function-calling/qwen.py
rename to examples/function-calling/function-calling-qwen.py
diff --git a/examples/function-calling/sambanova.py b/examples/function-calling/function-calling-sambanova.py
similarity index 100%
rename from examples/function-calling/sambanova.py
rename to examples/function-calling/function-calling-sambanova.py
diff --git a/examples/function-calling/sarvam.py b/examples/function-calling/function-calling-sarvam.py
similarity index 100%
rename from examples/function-calling/sarvam.py
rename to examples/function-calling/function-calling-sarvam.py
diff --git a/examples/function-calling/together.py b/examples/function-calling/function-calling-together.py
similarity index 100%
rename from examples/function-calling/together.py
rename to examples/function-calling/function-calling-together.py
diff --git a/examples/thinking-and-mcp/multiple-mcp.py b/examples/mcp/mcp-multiple-mcp.py
similarity index 100%
rename from examples/thinking-and-mcp/multiple-mcp.py
rename to examples/mcp/mcp-multiple-mcp.py
diff --git a/examples/thinking-and-mcp/mcp-stdio.py b/examples/mcp/mcp-stdio.py
similarity index 100%
rename from examples/thinking-and-mcp/mcp-stdio.py
rename to examples/mcp/mcp-stdio.py
diff --git a/examples/thinking-and-mcp/mcp-streamable-http-gemini-live.py b/examples/mcp/mcp-streamable-http-gemini-live.py
similarity index 100%
rename from examples/thinking-and-mcp/mcp-streamable-http-gemini-live.py
rename to examples/mcp/mcp-streamable-http-gemini-live.py
diff --git a/examples/thinking-and-mcp/mcp-streamable-http.py b/examples/mcp/mcp-streamable-http.py
similarity index 100%
rename from examples/thinking-and-mcp/mcp-streamable-http.py
rename to examples/mcp/mcp-streamable-http.py
diff --git a/examples/observability/heartbeats.py b/examples/observability/observability-heartbeats.py
similarity index 100%
rename from examples/observability/heartbeats.py
rename to examples/observability/observability-heartbeats.py
diff --git a/examples/observability/observer.py b/examples/observability/observability-observer.py
similarity index 100%
rename from examples/observability/observer.py
rename to examples/observability/observability-observer.py
diff --git a/examples/observability/sentry-metrics.py b/examples/observability/observability-sentry-metrics.py
similarity index 100%
rename from examples/observability/sentry-metrics.py
rename to examples/observability/observability-sentry-metrics.py
diff --git a/examples/persistent-context/anthropic.py b/examples/persistent-context/persistent-context-anthropic.py
similarity index 100%
rename from examples/persistent-context/anthropic.py
rename to examples/persistent-context/persistent-context-anthropic.py
diff --git a/examples/persistent-context/aws-nova-sonic.py b/examples/persistent-context/persistent-context-aws-nova-sonic.py
similarity index 100%
rename from examples/persistent-context/aws-nova-sonic.py
rename to examples/persistent-context/persistent-context-aws-nova-sonic.py
diff --git a/examples/persistent-context/gemini.py b/examples/persistent-context/persistent-context-gemini.py
similarity index 100%
rename from examples/persistent-context/gemini.py
rename to examples/persistent-context/persistent-context-gemini.py
diff --git a/examples/persistent-context/grok-realtime.py b/examples/persistent-context/persistent-context-grok-realtime.py
similarity index 100%
rename from examples/persistent-context/grok-realtime.py
rename to examples/persistent-context/persistent-context-grok-realtime.py
diff --git a/examples/persistent-context/openai-realtime.py b/examples/persistent-context/persistent-context-openai-realtime.py
similarity index 100%
rename from examples/persistent-context/openai-realtime.py
rename to examples/persistent-context/persistent-context-openai-realtime.py
diff --git a/examples/persistent-context/openai-responses-http.py b/examples/persistent-context/persistent-context-openai-responses-http.py
similarity index 100%
rename from examples/persistent-context/openai-responses-http.py
rename to examples/persistent-context/persistent-context-openai-responses-http.py
diff --git a/examples/persistent-context/openai-responses.py b/examples/persistent-context/persistent-context-openai-responses.py
similarity index 100%
rename from examples/persistent-context/openai-responses.py
rename to examples/persistent-context/persistent-context-openai-responses.py
diff --git a/examples/persistent-context/openai.py b/examples/persistent-context/persistent-context-openai.py
similarity index 100%
rename from examples/persistent-context/openai.py
rename to examples/persistent-context/persistent-context-openai.py
diff --git a/examples/rag/gemini-grounding-metadata.py b/examples/rag/rag-gemini-grounding-metadata.py
similarity index 100%
rename from examples/rag/gemini-grounding-metadata.py
rename to examples/rag/rag-gemini-grounding-metadata.py
diff --git a/examples/rag/gemini-rag.py b/examples/rag/rag-gemini.py
similarity index 100%
rename from examples/rag/gemini-rag.py
rename to examples/rag/rag-gemini.py
diff --git a/examples/rag/mem0.py b/examples/rag/rag-mem0.py
similarity index 100%
rename from examples/rag/mem0.py
rename to examples/rag/rag-mem0.py
diff --git a/examples/realtime/aws-nova-sonic.py b/examples/realtime/realtime-aws-nova-sonic.py
similarity index 100%
rename from examples/realtime/aws-nova-sonic.py
rename to examples/realtime/realtime-aws-nova-sonic.py
diff --git a/examples/realtime/azure.py b/examples/realtime/realtime-azure.py
similarity index 100%
rename from examples/realtime/azure.py
rename to examples/realtime/realtime-azure.py
diff --git a/examples/realtime/gemini-live-files-api.py b/examples/realtime/realtime-gemini-live-files-api.py
similarity index 100%
rename from examples/realtime/gemini-live-files-api.py
rename to examples/realtime/realtime-gemini-live-files-api.py
diff --git a/examples/realtime/gemini-live-function-calling.py b/examples/realtime/realtime-gemini-live-function-calling.py
similarity index 100%
rename from examples/realtime/gemini-live-function-calling.py
rename to examples/realtime/realtime-gemini-live-function-calling.py
diff --git a/examples/realtime/gemini-live-google-search.py b/examples/realtime/realtime-gemini-live-google-search.py
similarity index 100%
rename from examples/realtime/gemini-live-google-search.py
rename to examples/realtime/realtime-gemini-live-google-search.py
diff --git a/examples/realtime/gemini-live-graceful-end.py b/examples/realtime/realtime-gemini-live-graceful-end.py
similarity index 100%
rename from examples/realtime/gemini-live-graceful-end.py
rename to examples/realtime/realtime-gemini-live-graceful-end.py
diff --git a/examples/realtime/gemini-live-grounding-metadata.py b/examples/realtime/realtime-gemini-live-grounding-metadata.py
similarity index 100%
rename from examples/realtime/gemini-live-grounding-metadata.py
rename to examples/realtime/realtime-gemini-live-grounding-metadata.py
diff --git a/examples/realtime/gemini-live-local-vad.py b/examples/realtime/realtime-gemini-live-local-vad.py
similarity index 100%
rename from examples/realtime/gemini-live-local-vad.py
rename to examples/realtime/realtime-gemini-live-local-vad.py
diff --git a/examples/realtime/gemini-live-vertex-function-calling.py b/examples/realtime/realtime-gemini-live-vertex-function-calling.py
similarity index 100%
rename from examples/realtime/gemini-live-vertex-function-calling.py
rename to examples/realtime/realtime-gemini-live-vertex-function-calling.py
diff --git a/examples/realtime/gemini-live-video.py b/examples/realtime/realtime-gemini-live-video.py
similarity index 100%
rename from examples/realtime/gemini-live-video.py
rename to examples/realtime/realtime-gemini-live-video.py
diff --git a/examples/realtime/gemini-live.py b/examples/realtime/realtime-gemini-live.py
similarity index 100%
rename from examples/realtime/gemini-live.py
rename to examples/realtime/realtime-gemini-live.py
diff --git a/examples/realtime/grok.py b/examples/realtime/realtime-grok.py
similarity index 100%
rename from examples/realtime/grok.py
rename to examples/realtime/realtime-grok.py
diff --git a/examples/realtime/openai-live-video.py b/examples/realtime/realtime-openai-live-video.py
similarity index 100%
rename from examples/realtime/openai-live-video.py
rename to examples/realtime/realtime-openai-live-video.py
diff --git a/examples/realtime/openai-text.py b/examples/realtime/realtime-openai-text.py
similarity index 100%
rename from examples/realtime/openai-text.py
rename to examples/realtime/realtime-openai-text.py
diff --git a/examples/realtime/openai.py b/examples/realtime/realtime-openai.py
similarity index 100%
rename from examples/realtime/openai.py
rename to examples/realtime/realtime-openai.py
diff --git a/examples/realtime/ultravox-text.py b/examples/realtime/realtime-ultravox-text.py
similarity index 100%
rename from examples/realtime/ultravox-text.py
rename to examples/realtime/realtime-ultravox-text.py
diff --git a/examples/realtime/ultravox.py b/examples/realtime/realtime-ultravox.py
similarity index 100%
rename from examples/realtime/ultravox.py
rename to examples/realtime/realtime-ultravox.py
diff --git a/examples/thinking-and-mcp/thinking-anthropic.py b/examples/thinking/thinking-anthropic.py
similarity index 100%
rename from examples/thinking-and-mcp/thinking-anthropic.py
rename to examples/thinking/thinking-anthropic.py
diff --git a/examples/thinking-and-mcp/thinking-functions-anthropic.py b/examples/thinking/thinking-functions-anthropic.py
similarity index 100%
rename from examples/thinking-and-mcp/thinking-functions-anthropic.py
rename to examples/thinking/thinking-functions-anthropic.py
diff --git a/examples/thinking-and-mcp/thinking-functions-google.py b/examples/thinking/thinking-functions-google.py
similarity index 100%
rename from examples/thinking-and-mcp/thinking-functions-google.py
rename to examples/thinking/thinking-functions-google.py
diff --git a/examples/thinking-and-mcp/thinking-google.py b/examples/thinking/thinking-google.py
similarity index 100%
rename from examples/thinking-and-mcp/thinking-google.py
rename to examples/thinking/thinking-google.py
diff --git a/examples/transcription/assemblyai.py b/examples/transcription/transcription-assemblyai.py
similarity index 100%
rename from examples/transcription/assemblyai.py
rename to examples/transcription/transcription-assemblyai.py
diff --git a/examples/transcription/azure.py b/examples/transcription/transcription-azure.py
similarity index 100%
rename from examples/transcription/azure.py
rename to examples/transcription/transcription-azure.py
diff --git a/examples/transcription/cartesia.py b/examples/transcription/transcription-cartesia.py
similarity index 100%
rename from examples/transcription/cartesia.py
rename to examples/transcription/transcription-cartesia.py
diff --git a/examples/transcription/deepgram.py b/examples/transcription/transcription-deepgram.py
similarity index 100%
rename from examples/transcription/deepgram.py
rename to examples/transcription/transcription-deepgram.py
diff --git a/examples/transcription/elevenlabs.py b/examples/transcription/transcription-elevenlabs.py
similarity index 100%
rename from examples/transcription/elevenlabs.py
rename to examples/transcription/transcription-elevenlabs.py
diff --git a/examples/transcription/gladia-translation.py b/examples/transcription/transcription-gladia-translation.py
similarity index 100%
rename from examples/transcription/gladia-translation.py
rename to examples/transcription/transcription-gladia-translation.py
diff --git a/examples/transcription/gladia-transcription.py b/examples/transcription/transcription-gladia.py
similarity index 100%
rename from examples/transcription/gladia-transcription.py
rename to examples/transcription/transcription-gladia.py
diff --git a/examples/transcription/google-llm.py b/examples/transcription/transcription-google-llm.py
similarity index 100%
rename from examples/transcription/google-llm.py
rename to examples/transcription/transcription-google-llm.py
diff --git a/examples/transcription/gradium.py b/examples/transcription/transcription-gradium.py
similarity index 100%
rename from examples/transcription/gradium.py
rename to examples/transcription/transcription-gradium.py
diff --git a/examples/transcription/openai.py b/examples/transcription/transcription-openai.py
similarity index 100%
rename from examples/transcription/openai.py
rename to examples/transcription/transcription-openai.py
diff --git a/examples/transcription/soniox.py b/examples/transcription/transcription-soniox.py
similarity index 100%
rename from examples/transcription/soniox.py
rename to examples/transcription/transcription-soniox.py
diff --git a/examples/transcription/speechmatics.py b/examples/transcription/transcription-speechmatics.py
similarity index 100%
rename from examples/transcription/speechmatics.py
rename to examples/transcription/transcription-speechmatics.py
diff --git a/examples/transcription/whisper-local.py b/examples/transcription/transcription-whisper-local.py
similarity index 100%
rename from examples/transcription/whisper-local.py
rename to examples/transcription/transcription-whisper-local.py
diff --git a/examples/transcription/whisper-mlx.py b/examples/transcription/transcription-whisper-mlx.py
similarity index 100%
rename from examples/transcription/whisper-mlx.py
rename to examples/transcription/transcription-whisper-mlx.py
diff --git a/examples/transcription/whisper.py b/examples/transcription/transcription-whisper.py
similarity index 100%
rename from examples/transcription/whisper.py
rename to examples/transcription/transcription-whisper.py
diff --git a/examples/transports/daily.py b/examples/transports/transports-daily.py
similarity index 100%
rename from examples/transports/daily.py
rename to examples/transports/transports-daily.py
diff --git a/examples/transports/livekit.py b/examples/transports/transports-livekit.py
similarity index 100%
rename from examples/transports/livekit.py
rename to examples/transports/transports-livekit.py
diff --git a/examples/transports/small-webrtc.py b/examples/transports/transports-small-webrtc.py
similarity index 100%
rename from examples/transports/small-webrtc.py
rename to examples/transports/transports-small-webrtc.py
diff --git a/examples/turn-management/detect-user-idle.py b/examples/turn-management/turn-management-detect-user-idle.py
similarity index 100%
rename from examples/turn-management/detect-user-idle.py
rename to examples/turn-management/turn-management-detect-user-idle.py
diff --git a/examples/turn-management/filter-incomplete-turns.py b/examples/turn-management/turn-management-filter-incomplete-turns.py
similarity index 100%
rename from examples/turn-management/filter-incomplete-turns.py
rename to examples/turn-management/turn-management-filter-incomplete-turns.py
diff --git a/examples/turn-management/interruption-config.py b/examples/turn-management/turn-management-interruption-config.py
similarity index 100%
rename from examples/turn-management/interruption-config.py
rename to examples/turn-management/turn-management-interruption-config.py
diff --git a/examples/turn-management/smart-turn-local-coreml.py b/examples/turn-management/turn-management-smart-turn-local-coreml.py
similarity index 100%
rename from examples/turn-management/smart-turn-local-coreml.py
rename to examples/turn-management/turn-management-smart-turn-local-coreml.py
diff --git a/examples/turn-management/smart-turn-local.py b/examples/turn-management/turn-management-smart-turn-local.py
similarity index 100%
rename from examples/turn-management/smart-turn-local.py
rename to examples/turn-management/turn-management-smart-turn-local.py
diff --git a/examples/turn-management/turn-tracking-observer.py b/examples/turn-management/turn-management-turn-tracking-observer.py
similarity index 100%
rename from examples/turn-management/turn-tracking-observer.py
rename to examples/turn-management/turn-management-turn-tracking-observer.py
diff --git a/examples/turn-management/user-assistant-turns.py b/examples/turn-management/turn-management-user-assistant-turns.py
similarity index 100%
rename from examples/turn-management/user-assistant-turns.py
rename to examples/turn-management/turn-management-user-assistant-turns.py
diff --git a/examples/turn-management/user-mute-strategy.py b/examples/turn-management/turn-management-user-mute-strategy.py
similarity index 100%
rename from examples/turn-management/user-mute-strategy.py
rename to examples/turn-management/turn-management-user-mute-strategy.py
diff --git a/examples/update-settings/llm/anthropic.py b/examples/update-settings/llm/llm-anthropic.py
similarity index 100%
rename from examples/update-settings/llm/anthropic.py
rename to examples/update-settings/llm/llm-anthropic.py
diff --git a/examples/update-settings/llm/aws-bedrock.py b/examples/update-settings/llm/llm-aws-bedrock.py
similarity index 100%
rename from examples/update-settings/llm/aws-bedrock.py
rename to examples/update-settings/llm/llm-aws-bedrock.py
diff --git a/examples/update-settings/llm/aws-nova-sonic.py b/examples/update-settings/llm/llm-aws-nova-sonic.py
similarity index 100%
rename from examples/update-settings/llm/aws-nova-sonic.py
rename to examples/update-settings/llm/llm-aws-nova-sonic.py
diff --git a/examples/update-settings/llm/azure-realtime.py b/examples/update-settings/llm/llm-azure-realtime.py
similarity index 100%
rename from examples/update-settings/llm/azure-realtime.py
rename to examples/update-settings/llm/llm-azure-realtime.py
diff --git a/examples/update-settings/llm/azure.py b/examples/update-settings/llm/llm-azure.py
similarity index 100%
rename from examples/update-settings/llm/azure.py
rename to examples/update-settings/llm/llm-azure.py
diff --git a/examples/update-settings/llm/cerebras.py b/examples/update-settings/llm/llm-cerebras.py
similarity index 100%
rename from examples/update-settings/llm/cerebras.py
rename to examples/update-settings/llm/llm-cerebras.py
diff --git a/examples/update-settings/llm/deepseek.py b/examples/update-settings/llm/llm-deepseek.py
similarity index 100%
rename from examples/update-settings/llm/deepseek.py
rename to examples/update-settings/llm/llm-deepseek.py
diff --git a/examples/update-settings/llm/fireworks.py b/examples/update-settings/llm/llm-fireworks.py
similarity index 100%
rename from examples/update-settings/llm/fireworks.py
rename to examples/update-settings/llm/llm-fireworks.py
diff --git a/examples/update-settings/llm/gemini-live-vertex.py b/examples/update-settings/llm/llm-gemini-live-vertex.py
similarity index 100%
rename from examples/update-settings/llm/gemini-live-vertex.py
rename to examples/update-settings/llm/llm-gemini-live-vertex.py
diff --git a/examples/update-settings/llm/gemini-live.py b/examples/update-settings/llm/llm-gemini-live.py
similarity index 100%
rename from examples/update-settings/llm/gemini-live.py
rename to examples/update-settings/llm/llm-gemini-live.py
diff --git a/examples/update-settings/llm/google-vertex.py b/examples/update-settings/llm/llm-google-vertex.py
similarity index 100%
rename from examples/update-settings/llm/google-vertex.py
rename to examples/update-settings/llm/llm-google-vertex.py
diff --git a/examples/update-settings/llm/google.py b/examples/update-settings/llm/llm-google.py
similarity index 100%
rename from examples/update-settings/llm/google.py
rename to examples/update-settings/llm/llm-google.py
diff --git a/examples/update-settings/llm/grok-realtime.py b/examples/update-settings/llm/llm-grok-realtime.py
similarity index 100%
rename from examples/update-settings/llm/grok-realtime.py
rename to examples/update-settings/llm/llm-grok-realtime.py
diff --git a/examples/update-settings/llm/grok.py b/examples/update-settings/llm/llm-grok.py
similarity index 100%
rename from examples/update-settings/llm/grok.py
rename to examples/update-settings/llm/llm-grok.py
diff --git a/examples/update-settings/llm/groq.py b/examples/update-settings/llm/llm-groq.py
similarity index 100%
rename from examples/update-settings/llm/groq.py
rename to examples/update-settings/llm/llm-groq.py
diff --git a/examples/update-settings/llm/mistral.py b/examples/update-settings/llm/llm-mistral.py
similarity index 100%
rename from examples/update-settings/llm/mistral.py
rename to examples/update-settings/llm/llm-mistral.py
diff --git a/examples/update-settings/llm/nvidia.py b/examples/update-settings/llm/llm-nvidia.py
similarity index 100%
rename from examples/update-settings/llm/nvidia.py
rename to examples/update-settings/llm/llm-nvidia.py
diff --git a/examples/update-settings/llm/ollama.py b/examples/update-settings/llm/llm-ollama.py
similarity index 100%
rename from examples/update-settings/llm/ollama.py
rename to examples/update-settings/llm/llm-ollama.py
diff --git a/examples/update-settings/llm/openai-realtime.py b/examples/update-settings/llm/llm-openai-realtime.py
similarity index 100%
rename from examples/update-settings/llm/openai-realtime.py
rename to examples/update-settings/llm/llm-openai-realtime.py
diff --git a/examples/update-settings/llm/openai-responses-http.py b/examples/update-settings/llm/llm-openai-responses-http.py
similarity index 100%
rename from examples/update-settings/llm/openai-responses-http.py
rename to examples/update-settings/llm/llm-openai-responses-http.py
diff --git a/examples/update-settings/llm/openai-responses.py b/examples/update-settings/llm/llm-openai-responses.py
similarity index 100%
rename from examples/update-settings/llm/openai-responses.py
rename to examples/update-settings/llm/llm-openai-responses.py
diff --git a/examples/update-settings/llm/openai.py b/examples/update-settings/llm/llm-openai.py
similarity index 100%
rename from examples/update-settings/llm/openai.py
rename to examples/update-settings/llm/llm-openai.py
diff --git a/examples/update-settings/llm/openrouter.py b/examples/update-settings/llm/llm-openrouter.py
similarity index 100%
rename from examples/update-settings/llm/openrouter.py
rename to examples/update-settings/llm/llm-openrouter.py
diff --git a/examples/update-settings/llm/perplexity.py b/examples/update-settings/llm/llm-perplexity.py
similarity index 100%
rename from examples/update-settings/llm/perplexity.py
rename to examples/update-settings/llm/llm-perplexity.py
diff --git a/examples/update-settings/llm/qwen.py b/examples/update-settings/llm/llm-qwen.py
similarity index 100%
rename from examples/update-settings/llm/qwen.py
rename to examples/update-settings/llm/llm-qwen.py
diff --git a/examples/update-settings/llm/sambanova.py b/examples/update-settings/llm/llm-sambanova.py
similarity index 100%
rename from examples/update-settings/llm/sambanova.py
rename to examples/update-settings/llm/llm-sambanova.py
diff --git a/examples/update-settings/llm/sarvam.py b/examples/update-settings/llm/llm-sarvam.py
similarity index 100%
rename from examples/update-settings/llm/sarvam.py
rename to examples/update-settings/llm/llm-sarvam.py
diff --git a/examples/update-settings/llm/together.py b/examples/update-settings/llm/llm-together.py
similarity index 100%
rename from examples/update-settings/llm/together.py
rename to examples/update-settings/llm/llm-together.py
diff --git a/examples/update-settings/llm/ultravox-realtime.py b/examples/update-settings/llm/llm-ultravox-realtime.py
similarity index 100%
rename from examples/update-settings/llm/ultravox-realtime.py
rename to examples/update-settings/llm/llm-ultravox-realtime.py
diff --git a/examples/update-settings/stt/assemblyai.py b/examples/update-settings/stt/stt-assemblyai.py
similarity index 100%
rename from examples/update-settings/stt/assemblyai.py
rename to examples/update-settings/stt/stt-assemblyai.py
diff --git a/examples/update-settings/stt/aws-transcribe.py b/examples/update-settings/stt/stt-aws-transcribe.py
similarity index 100%
rename from examples/update-settings/stt/aws-transcribe.py
rename to examples/update-settings/stt/stt-aws-transcribe.py
diff --git a/examples/update-settings/stt/azure.py b/examples/update-settings/stt/stt-azure.py
similarity index 100%
rename from examples/update-settings/stt/azure.py
rename to examples/update-settings/stt/stt-azure.py
diff --git a/examples/update-settings/stt/cartesia.py b/examples/update-settings/stt/stt-cartesia.py
similarity index 100%
rename from examples/update-settings/stt/cartesia.py
rename to examples/update-settings/stt/stt-cartesia.py
diff --git a/examples/update-settings/stt/deepgram-flux.py b/examples/update-settings/stt/stt-deepgram-flux.py
similarity index 100%
rename from examples/update-settings/stt/deepgram-flux.py
rename to examples/update-settings/stt/stt-deepgram-flux.py
diff --git a/examples/update-settings/stt/deepgram-sagemaker.py b/examples/update-settings/stt/stt-deepgram-sagemaker.py
similarity index 100%
rename from examples/update-settings/stt/deepgram-sagemaker.py
rename to examples/update-settings/stt/stt-deepgram-sagemaker.py
diff --git a/examples/update-settings/stt/deepgram.py b/examples/update-settings/stt/stt-deepgram.py
similarity index 100%
rename from examples/update-settings/stt/deepgram.py
rename to examples/update-settings/stt/stt-deepgram.py
diff --git a/examples/update-settings/stt/elevenlabs-realtime.py b/examples/update-settings/stt/stt-elevenlabs-realtime.py
similarity index 100%
rename from examples/update-settings/stt/elevenlabs-realtime.py
rename to examples/update-settings/stt/stt-elevenlabs-realtime.py
diff --git a/examples/update-settings/stt/elevenlabs.py b/examples/update-settings/stt/stt-elevenlabs.py
similarity index 100%
rename from examples/update-settings/stt/elevenlabs.py
rename to examples/update-settings/stt/stt-elevenlabs.py
diff --git a/examples/update-settings/stt/fal.py b/examples/update-settings/stt/stt-fal.py
similarity index 100%
rename from examples/update-settings/stt/fal.py
rename to examples/update-settings/stt/stt-fal.py
diff --git a/examples/update-settings/stt/gladia.py b/examples/update-settings/stt/stt-gladia.py
similarity index 100%
rename from examples/update-settings/stt/gladia.py
rename to examples/update-settings/stt/stt-gladia.py
diff --git a/examples/update-settings/stt/google.py b/examples/update-settings/stt/stt-google.py
similarity index 100%
rename from examples/update-settings/stt/google.py
rename to examples/update-settings/stt/stt-google.py
diff --git a/examples/update-settings/stt/gradium.py b/examples/update-settings/stt/stt-gradium.py
similarity index 100%
rename from examples/update-settings/stt/gradium.py
rename to examples/update-settings/stt/stt-gradium.py
diff --git a/examples/update-settings/stt/groq.py b/examples/update-settings/stt/stt-groq.py
similarity index 100%
rename from examples/update-settings/stt/groq.py
rename to examples/update-settings/stt/stt-groq.py
diff --git a/examples/update-settings/stt/nvidia-segmented.py b/examples/update-settings/stt/stt-nvidia-segmented.py
similarity index 100%
rename from examples/update-settings/stt/nvidia-segmented.py
rename to examples/update-settings/stt/stt-nvidia-segmented.py
diff --git a/examples/update-settings/stt/nvidia.py b/examples/update-settings/stt/stt-nvidia.py
similarity index 100%
rename from examples/update-settings/stt/nvidia.py
rename to examples/update-settings/stt/stt-nvidia.py
diff --git a/examples/update-settings/stt/openai-realtime.py b/examples/update-settings/stt/stt-openai-realtime.py
similarity index 100%
rename from examples/update-settings/stt/openai-realtime.py
rename to examples/update-settings/stt/stt-openai-realtime.py
diff --git a/examples/update-settings/stt/sarvam.py b/examples/update-settings/stt/stt-sarvam.py
similarity index 100%
rename from examples/update-settings/stt/sarvam.py
rename to examples/update-settings/stt/stt-sarvam.py
diff --git a/examples/update-settings/stt/soniox.py b/examples/update-settings/stt/stt-soniox.py
similarity index 100%
rename from examples/update-settings/stt/soniox.py
rename to examples/update-settings/stt/stt-soniox.py
diff --git a/examples/update-settings/stt/speechmatics.py b/examples/update-settings/stt/stt-speechmatics.py
similarity index 100%
rename from examples/update-settings/stt/speechmatics.py
rename to examples/update-settings/stt/stt-speechmatics.py
diff --git a/examples/update-settings/stt/whisper-api.py b/examples/update-settings/stt/stt-whisper-api.py
similarity index 100%
rename from examples/update-settings/stt/whisper-api.py
rename to examples/update-settings/stt/stt-whisper-api.py
diff --git a/examples/update-settings/stt/whisper-mlx.py b/examples/update-settings/stt/stt-whisper-mlx.py
similarity index 100%
rename from examples/update-settings/stt/whisper-mlx.py
rename to examples/update-settings/stt/stt-whisper-mlx.py
diff --git a/examples/update-settings/stt/whisper.py b/examples/update-settings/stt/stt-whisper.py
similarity index 100%
rename from examples/update-settings/stt/whisper.py
rename to examples/update-settings/stt/stt-whisper.py
diff --git a/examples/update-settings/tts/asyncai-http.py b/examples/update-settings/tts/tts-asyncai-http.py
similarity index 100%
rename from examples/update-settings/tts/asyncai-http.py
rename to examples/update-settings/tts/tts-asyncai-http.py
diff --git a/examples/update-settings/tts/asyncai.py b/examples/update-settings/tts/tts-asyncai.py
similarity index 100%
rename from examples/update-settings/tts/asyncai.py
rename to examples/update-settings/tts/tts-asyncai.py
diff --git a/examples/update-settings/tts/aws-polly.py b/examples/update-settings/tts/tts-aws-polly.py
similarity index 100%
rename from examples/update-settings/tts/aws-polly.py
rename to examples/update-settings/tts/tts-aws-polly.py
diff --git a/examples/update-settings/tts/azure-http.py b/examples/update-settings/tts/tts-azure-http.py
similarity index 100%
rename from examples/update-settings/tts/azure-http.py
rename to examples/update-settings/tts/tts-azure-http.py
diff --git a/examples/update-settings/tts/azure.py b/examples/update-settings/tts/tts-azure.py
similarity index 100%
rename from examples/update-settings/tts/azure.py
rename to examples/update-settings/tts/tts-azure.py
diff --git a/examples/update-settings/tts/camb.py b/examples/update-settings/tts/tts-camb.py
similarity index 100%
rename from examples/update-settings/tts/camb.py
rename to examples/update-settings/tts/tts-camb.py
diff --git a/examples/update-settings/tts/cartesia-http.py b/examples/update-settings/tts/tts-cartesia-http.py
similarity index 100%
rename from examples/update-settings/tts/cartesia-http.py
rename to examples/update-settings/tts/tts-cartesia-http.py
diff --git a/examples/update-settings/tts/cartesia.py b/examples/update-settings/tts/tts-cartesia.py
similarity index 100%
rename from examples/update-settings/tts/cartesia.py
rename to examples/update-settings/tts/tts-cartesia.py
diff --git a/examples/update-settings/tts/deepgram-http.py b/examples/update-settings/tts/tts-deepgram-http.py
similarity index 100%
rename from examples/update-settings/tts/deepgram-http.py
rename to examples/update-settings/tts/tts-deepgram-http.py
diff --git a/examples/update-settings/tts/deepgram-sagemaker.py b/examples/update-settings/tts/tts-deepgram-sagemaker.py
similarity index 100%
rename from examples/update-settings/tts/deepgram-sagemaker.py
rename to examples/update-settings/tts/tts-deepgram-sagemaker.py
diff --git a/examples/update-settings/tts/deepgram.py b/examples/update-settings/tts/tts-deepgram.py
similarity index 100%
rename from examples/update-settings/tts/deepgram.py
rename to examples/update-settings/tts/tts-deepgram.py
diff --git a/examples/update-settings/tts/elevenlabs-http.py b/examples/update-settings/tts/tts-elevenlabs-http.py
similarity index 100%
rename from examples/update-settings/tts/elevenlabs-http.py
rename to examples/update-settings/tts/tts-elevenlabs-http.py
diff --git a/examples/update-settings/tts/elevenlabs.py b/examples/update-settings/tts/tts-elevenlabs.py
similarity index 100%
rename from examples/update-settings/tts/elevenlabs.py
rename to examples/update-settings/tts/tts-elevenlabs.py
diff --git a/examples/update-settings/tts/fish.py b/examples/update-settings/tts/tts-fish.py
similarity index 100%
rename from examples/update-settings/tts/fish.py
rename to examples/update-settings/tts/tts-fish.py
diff --git a/examples/update-settings/tts/gemini.py b/examples/update-settings/tts/tts-gemini.py
similarity index 100%
rename from examples/update-settings/tts/gemini.py
rename to examples/update-settings/tts/tts-gemini.py
diff --git a/examples/update-settings/tts/google-http.py b/examples/update-settings/tts/tts-google-http.py
similarity index 100%
rename from examples/update-settings/tts/google-http.py
rename to examples/update-settings/tts/tts-google-http.py
diff --git a/examples/update-settings/tts/google-stream.py b/examples/update-settings/tts/tts-google-stream.py
similarity index 100%
rename from examples/update-settings/tts/google-stream.py
rename to examples/update-settings/tts/tts-google-stream.py
diff --git a/examples/update-settings/tts/gradium.py b/examples/update-settings/tts/tts-gradium.py
similarity index 100%
rename from examples/update-settings/tts/gradium.py
rename to examples/update-settings/tts/tts-gradium.py
diff --git a/examples/update-settings/tts/groq.py b/examples/update-settings/tts/tts-groq.py
similarity index 100%
rename from examples/update-settings/tts/groq.py
rename to examples/update-settings/tts/tts-groq.py
diff --git a/examples/update-settings/tts/hume.py b/examples/update-settings/tts/tts-hume.py
similarity index 100%
rename from examples/update-settings/tts/hume.py
rename to examples/update-settings/tts/tts-hume.py
diff --git a/examples/update-settings/tts/inworld-http.py b/examples/update-settings/tts/tts-inworld-http.py
similarity index 100%
rename from examples/update-settings/tts/inworld-http.py
rename to examples/update-settings/tts/tts-inworld-http.py
diff --git a/examples/update-settings/tts/inworld.py b/examples/update-settings/tts/tts-inworld.py
similarity index 100%
rename from examples/update-settings/tts/inworld.py
rename to examples/update-settings/tts/tts-inworld.py
diff --git a/examples/update-settings/tts/kokoro.py b/examples/update-settings/tts/tts-kokoro.py
similarity index 100%
rename from examples/update-settings/tts/kokoro.py
rename to examples/update-settings/tts/tts-kokoro.py
diff --git a/examples/update-settings/tts/lmnt.py b/examples/update-settings/tts/tts-lmnt.py
similarity index 100%
rename from examples/update-settings/tts/lmnt.py
rename to examples/update-settings/tts/tts-lmnt.py
diff --git a/examples/update-settings/tts/minimax.py b/examples/update-settings/tts/tts-minimax.py
similarity index 100%
rename from examples/update-settings/tts/minimax.py
rename to examples/update-settings/tts/tts-minimax.py
diff --git a/examples/update-settings/tts/neuphonic-http.py b/examples/update-settings/tts/tts-neuphonic-http.py
similarity index 100%
rename from examples/update-settings/tts/neuphonic-http.py
rename to examples/update-settings/tts/tts-neuphonic-http.py
diff --git a/examples/update-settings/tts/neuphonic.py b/examples/update-settings/tts/tts-neuphonic.py
similarity index 100%
rename from examples/update-settings/tts/neuphonic.py
rename to examples/update-settings/tts/tts-neuphonic.py
diff --git a/examples/update-settings/tts/nvidia.py b/examples/update-settings/tts/tts-nvidia.py
similarity index 100%
rename from examples/update-settings/tts/nvidia.py
rename to examples/update-settings/tts/tts-nvidia.py
diff --git a/examples/update-settings/tts/openai.py b/examples/update-settings/tts/tts-openai.py
similarity index 100%
rename from examples/update-settings/tts/openai.py
rename to examples/update-settings/tts/tts-openai.py
diff --git a/examples/update-settings/tts/piper-http.py b/examples/update-settings/tts/tts-piper-http.py
similarity index 100%
rename from examples/update-settings/tts/piper-http.py
rename to examples/update-settings/tts/tts-piper-http.py
diff --git a/examples/update-settings/tts/piper.py b/examples/update-settings/tts/tts-piper.py
similarity index 100%
rename from examples/update-settings/tts/piper.py
rename to examples/update-settings/tts/tts-piper.py
diff --git a/examples/update-settings/tts/resembleai.py b/examples/update-settings/tts/tts-resembleai.py
similarity index 100%
rename from examples/update-settings/tts/resembleai.py
rename to examples/update-settings/tts/tts-resembleai.py
diff --git a/examples/update-settings/tts/rime-http.py b/examples/update-settings/tts/tts-rime-http.py
similarity index 100%
rename from examples/update-settings/tts/rime-http.py
rename to examples/update-settings/tts/tts-rime-http.py
diff --git a/examples/update-settings/tts/rime.py b/examples/update-settings/tts/tts-rime.py
similarity index 100%
rename from examples/update-settings/tts/rime.py
rename to examples/update-settings/tts/tts-rime.py
diff --git a/examples/update-settings/tts/sarvam-http.py b/examples/update-settings/tts/tts-sarvam-http.py
similarity index 100%
rename from examples/update-settings/tts/sarvam-http.py
rename to examples/update-settings/tts/tts-sarvam-http.py
diff --git a/examples/update-settings/tts/sarvam.py b/examples/update-settings/tts/tts-sarvam.py
similarity index 100%
rename from examples/update-settings/tts/sarvam.py
rename to examples/update-settings/tts/tts-sarvam.py
diff --git a/examples/update-settings/tts/speechmatics.py b/examples/update-settings/tts/tts-speechmatics.py
similarity index 100%
rename from examples/update-settings/tts/speechmatics.py
rename to examples/update-settings/tts/tts-speechmatics.py
diff --git a/examples/update-settings/tts/xtts.py b/examples/update-settings/tts/tts-xtts.py
similarity index 100%
rename from examples/update-settings/tts/xtts.py
rename to examples/update-settings/tts/tts-xtts.py
diff --git a/examples/video-avatar/heygen-transport.py b/examples/video-avatar/video-avatar-heygen-transport.py
similarity index 100%
rename from examples/video-avatar/heygen-transport.py
rename to examples/video-avatar/video-avatar-heygen-transport.py
diff --git a/examples/video-avatar/heygen-video-service.py b/examples/video-avatar/video-avatar-heygen-video-service.py
similarity index 100%
rename from examples/video-avatar/heygen-video-service.py
rename to examples/video-avatar/video-avatar-heygen-video-service.py
diff --git a/examples/video-avatar/lemonslice-transport.py b/examples/video-avatar/video-avatar-lemonslice-transport.py
similarity index 100%
rename from examples/video-avatar/lemonslice-transport.py
rename to examples/video-avatar/video-avatar-lemonslice-transport.py
diff --git a/examples/video-avatar/simli-layer.py b/examples/video-avatar/video-avatar-simli-layer.py
similarity index 100%
rename from examples/video-avatar/simli-layer.py
rename to examples/video-avatar/video-avatar-simli-layer.py
diff --git a/examples/video-avatar/tavus-transport.py b/examples/video-avatar/video-avatar-tavus-transport.py
similarity index 100%
rename from examples/video-avatar/tavus-transport.py
rename to examples/video-avatar/video-avatar-tavus-transport.py
diff --git a/examples/video-avatar/tavus-video-service.py b/examples/video-avatar/video-avatar-tavus-video-service.py
similarity index 100%
rename from examples/video-avatar/tavus-video-service.py
rename to examples/video-avatar/video-avatar-tavus-video-service.py
diff --git a/examples/video-processing/custom-video-track.py b/examples/video-processing/video-processing-custom-video-track.py
similarity index 100%
rename from examples/video-processing/custom-video-track.py
rename to examples/video-processing/video-processing-custom-video-track.py
diff --git a/examples/video-processing/gstreamer-filesrc.py b/examples/video-processing/video-processing-gstreamer-filesrc.py
similarity index 100%
rename from examples/video-processing/gstreamer-filesrc.py
rename to examples/video-processing/video-processing-gstreamer-filesrc.py
diff --git a/examples/video-processing/gstreamer-videotestsrc.py b/examples/video-processing/video-processing-gstreamer-videotestsrc.py
similarity index 100%
rename from examples/video-processing/gstreamer-videotestsrc.py
rename to examples/video-processing/video-processing-gstreamer-videotestsrc.py
diff --git a/examples/video-processing/local-mirror.py b/examples/video-processing/video-processing-local-mirror.py
similarity index 100%
rename from examples/video-processing/local-mirror.py
rename to examples/video-processing/video-processing-local-mirror.py
diff --git a/examples/video-processing/mirror.py b/examples/video-processing/video-processing-mirror.py
similarity index 100%
rename from examples/video-processing/mirror.py
rename to examples/video-processing/video-processing-mirror.py
diff --git a/examples/vision/anthropic.py b/examples/vision/vision-anthropic.py
similarity index 100%
rename from examples/vision/anthropic.py
rename to examples/vision/vision-anthropic.py
diff --git a/examples/vision/aws.py b/examples/vision/vision-aws.py
similarity index 100%
rename from examples/vision/aws.py
rename to examples/vision/vision-aws.py
diff --git a/examples/vision/gemini-flash.py b/examples/vision/vision-gemini-flash.py
similarity index 100%
rename from examples/vision/gemini-flash.py
rename to examples/vision/vision-gemini-flash.py
diff --git a/examples/vision/moondream.py b/examples/vision/vision-moondream.py
similarity index 100%
rename from examples/vision/moondream.py
rename to examples/vision/vision-moondream.py
diff --git a/examples/vision/openai-responses-http.py b/examples/vision/vision-openai-responses-http.py
similarity index 100%
rename from examples/vision/openai-responses-http.py
rename to examples/vision/vision-openai-responses-http.py
diff --git a/examples/vision/openai-responses.py b/examples/vision/vision-openai-responses.py
similarity index 100%
rename from examples/vision/openai-responses.py
rename to examples/vision/vision-openai-responses.py
diff --git a/examples/vision/openai.py b/examples/vision/vision-openai.py
similarity index 100%
rename from examples/vision/openai.py
rename to examples/vision/vision-openai.py
diff --git a/examples/voice/aicoustics.py b/examples/voice/voice-aicoustics.py
similarity index 100%
rename from examples/voice/aicoustics.py
rename to examples/voice/voice-aicoustics.py
diff --git a/examples/voice/assemblyai-turn-detection.py b/examples/voice/voice-assemblyai-turn-detection.py
similarity index 100%
rename from examples/voice/assemblyai-turn-detection.py
rename to examples/voice/voice-assemblyai-turn-detection.py
diff --git a/examples/voice/assemblyai.py b/examples/voice/voice-assemblyai.py
similarity index 100%
rename from examples/voice/assemblyai.py
rename to examples/voice/voice-assemblyai.py
diff --git a/examples/voice/asyncai-http.py b/examples/voice/voice-asyncai-http.py
similarity index 100%
rename from examples/voice/asyncai-http.py
rename to examples/voice/voice-asyncai-http.py
diff --git a/examples/voice/asyncai.py b/examples/voice/voice-asyncai.py
similarity index 100%
rename from examples/voice/asyncai.py
rename to examples/voice/voice-asyncai.py
diff --git a/examples/voice/aws-strands.py b/examples/voice/voice-aws-strands.py
similarity index 100%
rename from examples/voice/aws-strands.py
rename to examples/voice/voice-aws-strands.py
diff --git a/examples/voice/aws.py b/examples/voice/voice-aws.py
similarity index 100%
rename from examples/voice/aws.py
rename to examples/voice/voice-aws.py
diff --git a/examples/voice/azure-http.py b/examples/voice/voice-azure-http.py
similarity index 100%
rename from examples/voice/azure-http.py
rename to examples/voice/voice-azure-http.py
diff --git a/examples/voice/azure.py b/examples/voice/voice-azure.py
similarity index 100%
rename from examples/voice/azure.py
rename to examples/voice/voice-azure.py
diff --git a/examples/voice/camb.py b/examples/voice/voice-camb.py
similarity index 100%
rename from examples/voice/camb.py
rename to examples/voice/voice-camb.py
diff --git a/examples/voice/cartesia-http.py b/examples/voice/voice-cartesia-http.py
similarity index 100%
rename from examples/voice/cartesia-http.py
rename to examples/voice/voice-cartesia-http.py
diff --git a/examples/voice/cartesia.py b/examples/voice/voice-cartesia.py
similarity index 100%
rename from examples/voice/cartesia.py
rename to examples/voice/voice-cartesia.py
diff --git a/examples/voice/deepgram-flux-sagemaker.py b/examples/voice/voice-deepgram-flux-sagemaker.py
similarity index 100%
rename from examples/voice/deepgram-flux-sagemaker.py
rename to examples/voice/voice-deepgram-flux-sagemaker.py
diff --git a/examples/voice/deepgram-flux.py b/examples/voice/voice-deepgram-flux.py
similarity index 100%
rename from examples/voice/deepgram-flux.py
rename to examples/voice/voice-deepgram-flux.py
diff --git a/examples/voice/deepgram-http.py b/examples/voice/voice-deepgram-http.py
similarity index 100%
rename from examples/voice/deepgram-http.py
rename to examples/voice/voice-deepgram-http.py
diff --git a/examples/voice/deepgram-sagemaker.py b/examples/voice/voice-deepgram-sagemaker.py
similarity index 100%
rename from examples/voice/deepgram-sagemaker.py
rename to examples/voice/voice-deepgram-sagemaker.py
diff --git a/examples/voice/deepgram-vad.py b/examples/voice/voice-deepgram-vad.py
similarity index 100%
rename from examples/voice/deepgram-vad.py
rename to examples/voice/voice-deepgram-vad.py
diff --git a/examples/voice/deepgram.py b/examples/voice/voice-deepgram.py
similarity index 100%
rename from examples/voice/deepgram.py
rename to examples/voice/voice-deepgram.py
diff --git a/examples/voice/elevenlabs-http.py b/examples/voice/voice-elevenlabs-http.py
similarity index 100%
rename from examples/voice/elevenlabs-http.py
rename to examples/voice/voice-elevenlabs-http.py
diff --git a/examples/voice/elevenlabs.py b/examples/voice/voice-elevenlabs.py
similarity index 100%
rename from examples/voice/elevenlabs.py
rename to examples/voice/voice-elevenlabs.py
diff --git a/examples/voice/fal.py b/examples/voice/voice-fal.py
similarity index 100%
rename from examples/voice/fal.py
rename to examples/voice/voice-fal.py
diff --git a/examples/voice/fish.py b/examples/voice/voice-fish.py
similarity index 100%
rename from examples/voice/fish.py
rename to examples/voice/voice-fish.py
diff --git a/examples/voice/gladia-vad.py b/examples/voice/voice-gladia-vad.py
similarity index 100%
rename from examples/voice/gladia-vad.py
rename to examples/voice/voice-gladia-vad.py
diff --git a/examples/voice/gladia.py b/examples/voice/voice-gladia.py
similarity index 100%
rename from examples/voice/gladia.py
rename to examples/voice/voice-gladia.py
diff --git a/examples/voice/google-audio-in.py b/examples/voice/voice-google-audio-in.py
similarity index 100%
rename from examples/voice/google-audio-in.py
rename to examples/voice/voice-google-audio-in.py
diff --git a/examples/voice/google-gemini-tts.py b/examples/voice/voice-google-gemini-tts.py
similarity index 100%
rename from examples/voice/google-gemini-tts.py
rename to examples/voice/voice-google-gemini-tts.py
diff --git a/examples/voice/google-http.py b/examples/voice/voice-google-http.py
similarity index 100%
rename from examples/voice/google-http.py
rename to examples/voice/voice-google-http.py
diff --git a/examples/voice/google-image.py b/examples/voice/voice-google-image.py
similarity index 100%
rename from examples/voice/google-image.py
rename to examples/voice/voice-google-image.py
diff --git a/examples/voice/google.py b/examples/voice/voice-google.py
similarity index 100%
rename from examples/voice/google.py
rename to examples/voice/voice-google.py
diff --git a/examples/voice/gradium.py b/examples/voice/voice-gradium.py
similarity index 100%
rename from examples/voice/gradium.py
rename to examples/voice/voice-gradium.py
diff --git a/examples/voice/groq.py b/examples/voice/voice-groq.py
similarity index 100%
rename from examples/voice/groq.py
rename to examples/voice/voice-groq.py
diff --git a/examples/voice/hume.py b/examples/voice/voice-hume.py
similarity index 100%
rename from examples/voice/hume.py
rename to examples/voice/voice-hume.py
diff --git a/examples/voice/inworld-http.py b/examples/voice/voice-inworld-http.py
similarity index 100%
rename from examples/voice/inworld-http.py
rename to examples/voice/voice-inworld-http.py
diff --git a/examples/voice/inworld.py b/examples/voice/voice-inworld.py
similarity index 100%
rename from examples/voice/inworld.py
rename to examples/voice/voice-inworld.py
diff --git a/examples/voice/kokoro.py b/examples/voice/voice-kokoro.py
similarity index 100%
rename from examples/voice/kokoro.py
rename to examples/voice/voice-kokoro.py
diff --git a/examples/voice/krisp-viva.py b/examples/voice/voice-krisp-viva.py
similarity index 100%
rename from examples/voice/krisp-viva.py
rename to examples/voice/voice-krisp-viva.py
diff --git a/examples/voice/langchain.py b/examples/voice/voice-langchain.py
similarity index 100%
rename from examples/voice/langchain.py
rename to examples/voice/voice-langchain.py
diff --git a/examples/voice/lmnt.py b/examples/voice/voice-lmnt.py
similarity index 100%
rename from examples/voice/lmnt.py
rename to examples/voice/voice-lmnt.py
diff --git a/examples/voice/minimax.py b/examples/voice/voice-minimax.py
similarity index 100%
rename from examples/voice/minimax.py
rename to examples/voice/voice-minimax.py
diff --git a/examples/voice/neuphonic-http.py b/examples/voice/voice-neuphonic-http.py
similarity index 100%
rename from examples/voice/neuphonic-http.py
rename to examples/voice/voice-neuphonic-http.py
diff --git a/examples/voice/neuphonic.py b/examples/voice/voice-neuphonic.py
similarity index 100%
rename from examples/voice/neuphonic.py
rename to examples/voice/voice-neuphonic.py
diff --git a/examples/voice/nvidia.py b/examples/voice/voice-nvidia.py
similarity index 100%
rename from examples/voice/nvidia.py
rename to examples/voice/voice-nvidia.py
diff --git a/examples/voice/openai-http.py b/examples/voice/voice-openai-http.py
similarity index 100%
rename from examples/voice/openai-http.py
rename to examples/voice/voice-openai-http.py
diff --git a/examples/voice/openai-responses-http.py b/examples/voice/voice-openai-responses-http.py
similarity index 100%
rename from examples/voice/openai-responses-http.py
rename to examples/voice/voice-openai-responses-http.py
diff --git a/examples/voice/openai-responses.py b/examples/voice/voice-openai-responses.py
similarity index 100%
rename from examples/voice/openai-responses.py
rename to examples/voice/voice-openai-responses.py
diff --git a/examples/voice/openai.py b/examples/voice/voice-openai.py
similarity index 100%
rename from examples/voice/openai.py
rename to examples/voice/voice-openai.py
diff --git a/examples/voice/piper.py b/examples/voice/voice-piper.py
similarity index 100%
rename from examples/voice/piper.py
rename to examples/voice/voice-piper.py
diff --git a/examples/voice/resemble.py b/examples/voice/voice-resemble.py
similarity index 100%
rename from examples/voice/resemble.py
rename to examples/voice/voice-resemble.py
diff --git a/examples/voice/rime-http.py b/examples/voice/voice-rime-http.py
similarity index 100%
rename from examples/voice/rime-http.py
rename to examples/voice/voice-rime-http.py
diff --git a/examples/voice/rime.py b/examples/voice/voice-rime.py
similarity index 100%
rename from examples/voice/rime.py
rename to examples/voice/voice-rime.py
diff --git a/examples/voice/sarvam-http.py b/examples/voice/voice-sarvam-http.py
similarity index 100%
rename from examples/voice/sarvam-http.py
rename to examples/voice/voice-sarvam-http.py
diff --git a/examples/voice/sarvam.py b/examples/voice/voice-sarvam.py
similarity index 100%
rename from examples/voice/sarvam.py
rename to examples/voice/voice-sarvam.py
diff --git a/examples/voice/smallest.py b/examples/voice/voice-smallest.py
similarity index 100%
rename from examples/voice/smallest.py
rename to examples/voice/voice-smallest.py
diff --git a/examples/voice/soniox.py b/examples/voice/voice-soniox.py
similarity index 100%
rename from examples/voice/soniox.py
rename to examples/voice/voice-soniox.py
diff --git a/examples/voice/speechmatics-vad.py b/examples/voice/voice-speechmatics-vad.py
similarity index 100%
rename from examples/voice/speechmatics-vad.py
rename to examples/voice/voice-speechmatics-vad.py
diff --git a/examples/voice/speechmatics.py b/examples/voice/voice-speechmatics.py
similarity index 100%
rename from examples/voice/speechmatics.py
rename to examples/voice/voice-speechmatics.py
diff --git a/examples/voice/xai.py b/examples/voice/voice-xai.py
similarity index 100%
rename from examples/voice/xai.py
rename to examples/voice/voice-xai.py
diff --git a/examples/voice/xtts.py b/examples/voice/voice-xtts.py
similarity index 100%
rename from examples/voice/xtts.py
rename to examples/voice/voice-xtts.py
From 080da8b94cb9ce5c96d444240068274ed14893ad Mon Sep 17 00:00:00 2001
From: Mark Backman
Date: Tue, 31 Mar 2026 22:09:42 -0400
Subject: [PATCH 2/4] Update eval script paths to match renamed example files
---
scripts/evals/run-release-evals.py | 256 ++++++++++++++---------------
1 file changed, 128 insertions(+), 128 deletions(-)
diff --git a/scripts/evals/run-release-evals.py b/scripts/evals/run-release-evals.py
index be3bd1295..3a6055772 100644
--- a/scripts/evals/run-release-evals.py
+++ b/scripts/evals/run-release-evals.py
@@ -97,70 +97,70 @@ EVAL_COMPLETE_TURN = EvalConfig(
TESTS_VOICE = [
- ("voice/cartesia.py", EVAL_SIMPLE_MATH),
- ("voice/cartesia-http.py", EVAL_SIMPLE_MATH),
- ("voice/speechmatics.py", EVAL_SIMPLE_MATH),
- ("voice/speechmatics-vad.py", EVAL_SIMPLE_MATH),
- ("voice/langchain.py", EVAL_SIMPLE_MATH),
- ("voice/deepgram.py", EVAL_SIMPLE_MATH),
- ("voice/deepgram-flux.py", EVAL_SIMPLE_MATH),
- ("voice/deepgram-http.py", EVAL_SIMPLE_MATH),
- ("voice/elevenlabs.py", EVAL_SIMPLE_MATH),
- ("voice/elevenlabs-http.py", EVAL_SIMPLE_MATH),
- ("voice/xai.py", EVAL_SIMPLE_MATH),
- ("voice/azure.py", EVAL_SIMPLE_MATH),
- ("voice/azure-http.py", EVAL_SIMPLE_MATH),
- ("voice/openai.py", EVAL_SIMPLE_MATH),
- ("voice/openai-http.py", EVAL_SIMPLE_MATH),
- ("voice/gladia.py", EVAL_SIMPLE_MATH),
- ("voice/gladia-vad.py", EVAL_SIMPLE_MATH),
- ("voice/lmnt.py", EVAL_SIMPLE_MATH),
- ("voice/groq.py", EVAL_SIMPLE_MATH),
- ("voice/aws.py", EVAL_SIMPLE_MATH),
- ("voice/aws-strands.py", EVAL_WEATHER),
- ("voice/google-gemini-tts.py", EVAL_SIMPLE_MATH),
- ("voice/google.py", EVAL_SIMPLE_MATH),
- ("voice/google-http.py", EVAL_SIMPLE_MATH),
- ("voice/assemblyai.py", EVAL_SIMPLE_MATH),
- ("voice/krisp-viva.py", EVAL_SIMPLE_MATH),
- ("voice/rime.py", EVAL_SIMPLE_MATH),
- ("voice/rime-http.py", EVAL_SIMPLE_MATH),
- ("voice/nvidia.py", EVAL_SIMPLE_MATH),
- ("voice/google-audio-in.py", EVAL_SIMPLE_MATH),
- ("voice/fish.py", EVAL_SIMPLE_MATH),
- ("voice/neuphonic.py", EVAL_SIMPLE_MATH),
- ("voice/neuphonic-http.py", EVAL_SIMPLE_MATH),
- ("voice/fal.py", EVAL_SIMPLE_MATH),
- ("voice/minimax.py", EVAL_SIMPLE_MATH),
- ("voice/sarvam.py", EVAL_SIMPLE_MATH),
- ("voice/sarvam-http.py", EVAL_SIMPLE_MATH),
- ("voice/soniox.py", EVAL_SIMPLE_MATH),
- ("voice/inworld.py", EVAL_SIMPLE_MATH),
- ("voice/inworld-http.py", EVAL_SIMPLE_MATH),
- ("voice/asyncai.py", EVAL_SIMPLE_MATH),
- ("voice/asyncai-http.py", EVAL_SIMPLE_MATH),
- ("voice/aicoustics.py", EVAL_SIMPLE_MATH),
- ("voice/hume.py", EVAL_SIMPLE_MATH),
- ("voice/gradium.py", EVAL_SIMPLE_MATH),
- ("voice/camb.py", EVAL_SIMPLE_MATH),
- ("voice/piper.py", EVAL_SIMPLE_MATH),
- ("voice/kokoro.py", EVAL_SIMPLE_MATH),
- ("voice/resemble.py", EVAL_SIMPLE_MATH),
- ("voice/smallest.py", EVAL_SIMPLE_MATH),
- ("voice/openai-responses.py", EVAL_SIMPLE_MATH),
- ("voice/openai-responses-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-cartesia.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-cartesia-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-speechmatics.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-speechmatics-vad.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-langchain.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-deepgram.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-deepgram-flux.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-deepgram-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-elevenlabs.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-elevenlabs-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-xai.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-azure.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-azure-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-openai.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-openai-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-gladia.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-gladia-vad.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-lmnt.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-groq.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-aws.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-aws-strands.py", EVAL_WEATHER),
+ ("voice/voice-google-gemini-tts.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-google.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-google-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-assemblyai.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-krisp-viva.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-rime.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-rime-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-nvidia.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-google-audio-in.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-fish.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-neuphonic.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-neuphonic-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-fal.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-minimax.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-sarvam.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-sarvam-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-soniox.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-inworld.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-inworld-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-asyncai.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-asyncai-http.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-aicoustics.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-hume.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-gradium.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-camb.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-piper.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-kokoro.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-resemble.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-smallest.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-openai-responses.py", EVAL_SIMPLE_MATH),
+ ("voice/voice-openai-responses-http.py", EVAL_SIMPLE_MATH),
# Needs a local XTTS docker instance running.
- # ("voice/xtts.py", EVAL_SIMPLE_MATH),
+ # ("voice/voice-xtts.py", EVAL_SIMPLE_MATH),
]
TESTS_VISION = [
- ("vision/openai.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
- ("vision/openai-responses.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
- ("vision/openai-responses-http.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
- ("vision/anthropic.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
- ("vision/aws.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
- ("vision/gemini-flash.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
- ("vision/moondream.py", EVAL_VISION_IMAGE()),
+ ("vision/vision-openai.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
+ ("vision/vision-openai-responses.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
+ ("vision/vision-openai-responses-http.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
+ ("vision/vision-anthropic.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
+ ("vision/vision-aws.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
+ ("vision/vision-gemini-flash.py", EVAL_VISION_IMAGE(eval_speaks_first=True)),
+ ("vision/vision-moondream.py", EVAL_VISION_IMAGE()),
]
# For a few major services, we also test parallel function calling.
@@ -169,91 +169,91 @@ TESTS_VISION = [
TESTS_FUNCTION_CALLING = [
("getting-started/07-function-calling.py", EVAL_WEATHER),
("getting-started/07-function-calling.py", EVAL_WEATHER_AND_RESTAURANT),
- ("function-calling/openai-responses.py", EVAL_WEATHER),
- ("function-calling/openai-responses.py", EVAL_WEATHER_AND_RESTAURANT),
- ("function-calling/openai-responses-http.py", EVAL_WEATHER),
- ("function-calling/openai-responses-http.py", EVAL_WEATHER_AND_RESTAURANT),
- ("function-calling/anthropic.py", EVAL_WEATHER),
- ("function-calling/anthropic.py", EVAL_WEATHER_AND_RESTAURANT),
- ("function-calling/openai.py", EVAL_WEATHER),
- ("function-calling/google.py", EVAL_WEATHER),
- ("function-calling/google.py", EVAL_WEATHER_AND_RESTAURANT),
- ("function-calling/groq.py", EVAL_WEATHER),
- ("function-calling/grok.py", EVAL_WEATHER),
- ("function-calling/azure.py", EVAL_WEATHER),
- ("function-calling/fireworks.py", EVAL_WEATHER),
- ("function-calling/nvidia.py", EVAL_WEATHER),
- ("function-calling/cerebras.py", EVAL_WEATHER),
- ("function-calling/openrouter.py", EVAL_WEATHER),
- ("function-calling/perplexity.py", EVAL_WEATHER),
- ("function-calling/google-vertex.py", EVAL_WEATHER),
- ("function-calling/qwen.py", EVAL_WEATHER),
- ("function-calling/aws.py", EVAL_WEATHER),
- ("function-calling/sambanova.py", EVAL_WEATHER),
- ("function-calling/aws.py", EVAL_WEATHER_AND_RESTAURANT),
- ("function-calling/nebius.py", EVAL_WEATHER),
- ("function-calling/mistral.py", EVAL_WEATHER),
- ("function-calling/sarvam.py", EVAL_WEATHER),
- ("function-calling/novita.py", EVAL_WEATHER),
+ ("function-calling/function-calling-openai-responses.py", EVAL_WEATHER),
+ ("function-calling/function-calling-openai-responses.py", EVAL_WEATHER_AND_RESTAURANT),
+ ("function-calling/function-calling-openai-responses-http.py", EVAL_WEATHER),
+ ("function-calling/function-calling-openai-responses-http.py", EVAL_WEATHER_AND_RESTAURANT),
+ ("function-calling/function-calling-anthropic.py", EVAL_WEATHER),
+ ("function-calling/function-calling-anthropic.py", EVAL_WEATHER_AND_RESTAURANT),
+ ("function-calling/function-calling-openai.py", EVAL_WEATHER),
+ ("function-calling/function-calling-google.py", EVAL_WEATHER),
+ ("function-calling/function-calling-google.py", EVAL_WEATHER_AND_RESTAURANT),
+ ("function-calling/function-calling-groq.py", EVAL_WEATHER),
+ ("function-calling/function-calling-grok.py", EVAL_WEATHER),
+ ("function-calling/function-calling-azure.py", EVAL_WEATHER),
+ ("function-calling/function-calling-fireworks.py", EVAL_WEATHER),
+ ("function-calling/function-calling-nvidia.py", EVAL_WEATHER),
+ ("function-calling/function-calling-cerebras.py", EVAL_WEATHER),
+ ("function-calling/function-calling-openrouter.py", EVAL_WEATHER),
+ ("function-calling/function-calling-perplexity.py", EVAL_WEATHER),
+ ("function-calling/function-calling-google-vertex.py", EVAL_WEATHER),
+ ("function-calling/function-calling-qwen.py", EVAL_WEATHER),
+ ("function-calling/function-calling-aws.py", EVAL_WEATHER),
+ ("function-calling/function-calling-sambanova.py", EVAL_WEATHER),
+ ("function-calling/function-calling-aws.py", EVAL_WEATHER_AND_RESTAURANT),
+ ("function-calling/function-calling-nebius.py", EVAL_WEATHER),
+ ("function-calling/function-calling-mistral.py", EVAL_WEATHER),
+ ("function-calling/function-calling-sarvam.py", EVAL_WEATHER),
+ ("function-calling/function-calling-novita.py", EVAL_WEATHER),
# Video
- ("function-calling/anthropic-video.py", EVAL_VISION_CAMERA),
- ("function-calling/aws-video.py", EVAL_VISION_CAMERA),
- ("function-calling/google-video.py", EVAL_VISION_CAMERA),
- ("function-calling/moondream-video.py", EVAL_VISION_CAMERA),
- ("function-calling/openai-video.py", EVAL_VISION_CAMERA),
- ("function-calling/openai-responses-video.py", EVAL_VISION_CAMERA),
- ("function-calling/openai-responses-video-http.py", EVAL_VISION_CAMERA),
+ ("function-calling/function-calling-anthropic-video.py", EVAL_VISION_CAMERA),
+ ("function-calling/function-calling-aws-video.py", EVAL_VISION_CAMERA),
+ ("function-calling/function-calling-google-video.py", EVAL_VISION_CAMERA),
+ ("function-calling/function-calling-moondream-video.py", EVAL_VISION_CAMERA),
+ ("function-calling/function-calling-openai-video.py", EVAL_VISION_CAMERA),
+ ("function-calling/function-calling-openai-responses-video.py", EVAL_VISION_CAMERA),
+ ("function-calling/function-calling-openai-responses-video-http.py", EVAL_VISION_CAMERA),
# Currently not working.
- # ("function-calling/together.py", EVAL_WEATHER),
- # ("function-calling/deepseek.py", EVAL_WEATHER),
- # ("function-calling/gemini-openai-format.py", EVAL_WEATHER),
+ # ("function-calling/function-calling-together.py", EVAL_WEATHER),
+ # ("function-calling/function-calling-deepseek.py", EVAL_WEATHER),
+ # ("function-calling/function-calling-gemini-openai-format.py", EVAL_WEATHER),
]
TESTS_FEATURES = [
- ("features/switch-languages.py", EVAL_SWITCH_LANGUAGE),
- ("features/voicemail-detection.py", EVAL_VOICEMAIL),
- ("features/voicemail-detection.py", EVAL_CONVERSATION),
- ("features/concurrent-llm-evaluation.py", EVAL_SIMPLE_MATH),
+ ("features/features-switch-languages.py", EVAL_SWITCH_LANGUAGE),
+ ("features/features-voicemail-detection.py", EVAL_VOICEMAIL),
+ ("features/features-voicemail-detection.py", EVAL_CONVERSATION),
+ ("features/features-concurrent-llm-evaluation.py", EVAL_SIMPLE_MATH),
]
TESTS_REALTIME = [
- ("realtime/openai.py", EVAL_WEATHER),
- ("realtime/openai-beta.py", EVAL_WEATHER),
+ ("realtime/realtime-openai.py", EVAL_WEATHER),
+ ("realtime/realtime-openai-beta.py", EVAL_WEATHER),
# OpenAI Realtime not released on Azure yet
- # ("realtime/azure.py", EVAL_WEATHER),
- ("realtime/azure-beta.py", EVAL_WEATHER),
- ("realtime/openai-text.py", EVAL_WEATHER),
- ("realtime/openai-beta-text.py", EVAL_WEATHER),
- ("realtime/openai-live-video.py", EVAL_VISION_CAMERA),
- ("realtime/gemini-live.py", EVAL_SIMPLE_MATH),
- ("realtime/gemini-live-local-vad.py", EVAL_SIMPLE_MATH),
- ("realtime/gemini-live-function-calling.py", EVAL_WEATHER),
- ("realtime/gemini-live-video.py", EVAL_VISION_CAMERA),
- ("realtime/gemini-live-google-search.py", EVAL_ONLINE_SEARCH),
- ("realtime/gemini-live-vertex-function-calling.py", EVAL_WEATHER),
+ # ("realtime/realtime-azure.py", EVAL_WEATHER),
+ ("realtime/realtime-azure-beta.py", EVAL_WEATHER),
+ ("realtime/realtime-openai-text.py", EVAL_WEATHER),
+ ("realtime/realtime-openai-beta-text.py", EVAL_WEATHER),
+ ("realtime/realtime-openai-live-video.py", EVAL_VISION_CAMERA),
+ ("realtime/realtime-gemini-live.py", EVAL_SIMPLE_MATH),
+ ("realtime/realtime-gemini-live-local-vad.py", EVAL_SIMPLE_MATH),
+ ("realtime/realtime-gemini-live-function-calling.py", EVAL_WEATHER),
+ ("realtime/realtime-gemini-live-video.py", EVAL_VISION_CAMERA),
+ ("realtime/realtime-gemini-live-google-search.py", EVAL_ONLINE_SEARCH),
+ ("realtime/realtime-gemini-live-vertex-function-calling.py", EVAL_WEATHER),
# Currently not working.
- # ("realtime/gemini-live-text.py", EVAL_SIMPLE_MATH),
- ("realtime/aws-nova-sonic.py", EVAL_SIMPLE_MATH),
- ("realtime/ultravox.py", EVAL_ORDER),
- ("realtime/grok.py", EVAL_WEATHER),
+ # ("realtime/realtime-gemini-live-text.py", EVAL_SIMPLE_MATH),
+ ("realtime/realtime-aws-nova-sonic.py", EVAL_SIMPLE_MATH),
+ ("realtime/realtime-ultravox.py", EVAL_ORDER),
+ ("realtime/realtime-grok.py", EVAL_WEATHER),
]
TESTS_VIDEO_AVATAR = [
- ("video-avatar/tavus-video-service.py", EVAL_SIMPLE_MATH),
- ("video-avatar/heygen-video-service.py", EVAL_SIMPLE_MATH),
- ("video-avatar/simli-layer.py", EVAL_SIMPLE_MATH),
- ("video-avatar/lemonslice-transport.py", EVAL_SIMPLE_MATH),
+ ("video-avatar/video-avatar-tavus-video-service.py", EVAL_SIMPLE_MATH),
+ ("video-avatar/video-avatar-heygen-video-service.py", EVAL_SIMPLE_MATH),
+ ("video-avatar/video-avatar-simli-layer.py", EVAL_SIMPLE_MATH),
+ ("video-avatar/video-avatar-lemonslice-transport.py", EVAL_SIMPLE_MATH),
]
TESTS_TURN_MANAGEMENT = [
- ("turn-management/filter-incomplete-turns.py", EVAL_COMPLETE_TURN),
+ ("turn-management/turn-management-filter-incomplete-turns.py", EVAL_COMPLETE_TURN),
]
-TESTS_THINKING_AND_MCP = [
- ("thinking-and-mcp/thinking-anthropic.py", EVAL_SIMPLE_MATH),
- ("thinking-and-mcp/thinking-google.py", EVAL_SIMPLE_MATH),
- ("thinking-and-mcp/thinking-functions-anthropic.py", EVAL_FLIGHT_STATUS),
- ("thinking-and-mcp/thinking-functions-google.py", EVAL_FLIGHT_STATUS),
+TESTS_THINKING = [
+ ("thinking/thinking-anthropic.py", EVAL_SIMPLE_MATH),
+ ("thinking/thinking-google.py", EVAL_SIMPLE_MATH),
+ ("thinking/thinking-functions-anthropic.py", EVAL_FLIGHT_STATUS),
+ ("thinking/thinking-functions-google.py", EVAL_FLIGHT_STATUS),
]
TESTS = [
@@ -264,7 +264,7 @@ TESTS = [
*TESTS_REALTIME,
*TESTS_VIDEO_AVATAR,
*TESTS_TURN_MANAGEMENT,
- *TESTS_THINKING_AND_MCP,
+ *TESTS_THINKING,
]
From 6a84d021564262a1221a7f652780329d0d6757ea Mon Sep 17 00:00:00 2001
From: Mark Backman
Date: Tue, 31 Mar 2026 22:13:52 -0400
Subject: [PATCH 3/4] Update evals
- Removed evals for removed services
- Added eval for function-calling-deepseek.py
---
scripts/evals/run-release-evals.py | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/scripts/evals/run-release-evals.py b/scripts/evals/run-release-evals.py
index 3a6055772..aae89650f 100644
--- a/scripts/evals/run-release-evals.py
+++ b/scripts/evals/run-release-evals.py
@@ -195,6 +195,7 @@ TESTS_FUNCTION_CALLING = [
("function-calling/function-calling-mistral.py", EVAL_WEATHER),
("function-calling/function-calling-sarvam.py", EVAL_WEATHER),
("function-calling/function-calling-novita.py", EVAL_WEATHER),
+ ("function-calling/function-calling-deepseek.py", EVAL_WEATHER),
# Video
("function-calling/function-calling-anthropic-video.py", EVAL_VISION_CAMERA),
("function-calling/function-calling-aws-video.py", EVAL_VISION_CAMERA),
@@ -205,8 +206,6 @@ TESTS_FUNCTION_CALLING = [
("function-calling/function-calling-openai-responses-video-http.py", EVAL_VISION_CAMERA),
# Currently not working.
# ("function-calling/function-calling-together.py", EVAL_WEATHER),
- # ("function-calling/function-calling-deepseek.py", EVAL_WEATHER),
- # ("function-calling/function-calling-gemini-openai-format.py", EVAL_WEATHER),
]
TESTS_FEATURES = [
@@ -218,12 +217,9 @@ TESTS_FEATURES = [
TESTS_REALTIME = [
("realtime/realtime-openai.py", EVAL_WEATHER),
- ("realtime/realtime-openai-beta.py", EVAL_WEATHER),
# OpenAI Realtime not released on Azure yet
# ("realtime/realtime-azure.py", EVAL_WEATHER),
- ("realtime/realtime-azure-beta.py", EVAL_WEATHER),
("realtime/realtime-openai-text.py", EVAL_WEATHER),
- ("realtime/realtime-openai-beta-text.py", EVAL_WEATHER),
("realtime/realtime-openai-live-video.py", EVAL_VISION_CAMERA),
("realtime/realtime-gemini-live.py", EVAL_SIMPLE_MATH),
("realtime/realtime-gemini-live-local-vad.py", EVAL_SIMPLE_MATH),
@@ -231,8 +227,6 @@ TESTS_REALTIME = [
("realtime/realtime-gemini-live-video.py", EVAL_VISION_CAMERA),
("realtime/realtime-gemini-live-google-search.py", EVAL_ONLINE_SEARCH),
("realtime/realtime-gemini-live-vertex-function-calling.py", EVAL_WEATHER),
- # Currently not working.
- # ("realtime/realtime-gemini-live-text.py", EVAL_SIMPLE_MATH),
("realtime/realtime-aws-nova-sonic.py", EVAL_SIMPLE_MATH),
("realtime/realtime-ultravox.py", EVAL_ORDER),
("realtime/realtime-grok.py", EVAL_WEATHER),
From 3ca656cae5b6babd152f68a4408abc7e87a9c4c0 Mon Sep 17 00:00:00 2001
From: Mark Backman
Date: Tue, 31 Mar 2026 22:20:31 -0400
Subject: [PATCH 4/4] Update simli name to match others
---
...vatar-simli-layer.py => video-avatar-simli-video-service.py} | 0
scripts/evals/run-release-evals.py | 2 +-
2 files changed, 1 insertion(+), 1 deletion(-)
rename examples/video-avatar/{video-avatar-simli-layer.py => video-avatar-simli-video-service.py} (100%)
diff --git a/examples/video-avatar/video-avatar-simli-layer.py b/examples/video-avatar/video-avatar-simli-video-service.py
similarity index 100%
rename from examples/video-avatar/video-avatar-simli-layer.py
rename to examples/video-avatar/video-avatar-simli-video-service.py
diff --git a/scripts/evals/run-release-evals.py b/scripts/evals/run-release-evals.py
index aae89650f..4924828c7 100644
--- a/scripts/evals/run-release-evals.py
+++ b/scripts/evals/run-release-evals.py
@@ -235,7 +235,7 @@ TESTS_REALTIME = [
TESTS_VIDEO_AVATAR = [
("video-avatar/video-avatar-tavus-video-service.py", EVAL_SIMPLE_MATH),
("video-avatar/video-avatar-heygen-video-service.py", EVAL_SIMPLE_MATH),
- ("video-avatar/video-avatar-simli-layer.py", EVAL_SIMPLE_MATH),
+ ("video-avatar/video-avatar-simli-video-service.py", EVAL_SIMPLE_MATH),
("video-avatar/video-avatar-lemonslice-transport.py", EVAL_SIMPLE_MATH),
]