diff --git a/.claude/skills/cleanup/SKILL.md b/.claude/skills/cleanup/SKILL.md index 91a61db39..106aac6ac 100644 --- a/.claude/skills/cleanup/SKILL.md +++ b/.claude/skills/cleanup/SKILL.md @@ -144,7 +144,7 @@ class InputParams(BaseModel): #### Examples -Validated against `examples/foundational/07-interruptible.py`: +Validated against `examples/07-interruptible.py`: - Proper `create_transport()` usage - Correct pipeline structure diff --git a/COMMUNITY_INTEGRATIONS.md b/COMMUNITY_INTEGRATIONS.md index ab45171d7..8163e3052 100644 --- a/COMMUNITY_INTEGRATIONS.md +++ b/COMMUNITY_INTEGRATIONS.md @@ -23,7 +23,7 @@ Create your integration following the patterns and examples shown in the "Integr Your repository must contain these components: - **Source code** - Complete implementation following Pipecat patterns -- **Foundational example** - Single file example showing basic usage (see [Pipecat examples](https://github.com/pipecat-ai/pipecat/tree/main/examples/foundational)) +- **Foundational example** - Single file example showing basic usage (see [Pipecat examples](https://github.com/pipecat-ai/pipecat/tree/main/examples)) - **README.md** - Must include: - Introduction and explanation of your integration - Installation instructions diff --git a/README.md b/README.md index 696e836b4..78b359d07 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 @@ -142,7 +142,7 @@ You can get started with Pipecat running on your local machine, then move your a ## ๐Ÿงช Code examples -- [Foundational](https://github.com/pipecat-ai/pipecat/tree/main/examples/foundational) โ€” small snippets that build on each other, introducing one or two concepts at a time +- [Foundational](https://github.com/pipecat-ai/pipecat/tree/main/examples) โ€” small snippets that build on each other, introducing one or two concepts at a time - [Example apps](https://github.com/pipecat-ai/pipecat-examples) โ€” complete applications that you can use as starting points for development ## ๐Ÿ› ๏ธ Contributing to the framework diff --git a/examples/foundational/01-say-one-thing-piper.py b/examples/01-say-one-thing-piper.py similarity index 100% rename from examples/foundational/01-say-one-thing-piper.py rename to examples/01-say-one-thing-piper.py diff --git a/examples/foundational/01-say-one-thing-rime.py b/examples/01-say-one-thing-rime.py similarity index 100% rename from examples/foundational/01-say-one-thing-rime.py rename to examples/01-say-one-thing-rime.py diff --git a/examples/foundational/01-say-one-thing.py b/examples/01-say-one-thing.py similarity index 100% rename from examples/foundational/01-say-one-thing.py rename to examples/01-say-one-thing.py diff --git a/examples/foundational/01a-local-audio.py b/examples/01a-local-audio.py similarity index 100% rename from examples/foundational/01a-local-audio.py rename to examples/01a-local-audio.py diff --git a/examples/foundational/01b-livekit-audio.py b/examples/01b-livekit-audio.py similarity index 100% rename from examples/foundational/01b-livekit-audio.py rename to examples/01b-livekit-audio.py diff --git a/examples/foundational/01c-nvidia-riva-tts.py b/examples/01c-nvidia-riva-tts.py similarity index 100% rename from examples/foundational/01c-nvidia-riva-tts.py rename to examples/01c-nvidia-riva-tts.py diff --git a/examples/foundational/02-llm-say-one-thing.py b/examples/02-llm-say-one-thing.py similarity index 100% rename from examples/foundational/02-llm-say-one-thing.py rename to examples/02-llm-say-one-thing.py diff --git a/examples/foundational/03-still-frame.py b/examples/03-still-frame.py similarity index 100% rename from examples/foundational/03-still-frame.py rename to examples/03-still-frame.py diff --git a/examples/foundational/03a-local-still-frame.py b/examples/03a-local-still-frame.py similarity index 100% rename from examples/foundational/03a-local-still-frame.py rename to examples/03a-local-still-frame.py diff --git a/examples/foundational/03b-still-frame-imagen.py b/examples/03b-still-frame-imagen.py similarity index 100% rename from examples/foundational/03b-still-frame-imagen.py rename to examples/03b-still-frame-imagen.py diff --git a/examples/foundational/04-transports-small-webrtc.py b/examples/04-transports-small-webrtc.py similarity index 100% rename from examples/foundational/04-transports-small-webrtc.py rename to examples/04-transports-small-webrtc.py diff --git a/examples/foundational/04a-transports-daily.py b/examples/04a-transports-daily.py similarity index 100% rename from examples/foundational/04a-transports-daily.py rename to examples/04a-transports-daily.py diff --git a/examples/foundational/04b-transports-livekit.py b/examples/04b-transports-livekit.py similarity index 100% rename from examples/foundational/04b-transports-livekit.py rename to examples/04b-transports-livekit.py diff --git a/examples/foundational/05-sync-speech-and-image.py b/examples/05-sync-speech-and-image.py similarity index 100% rename from examples/foundational/05-sync-speech-and-image.py rename to examples/05-sync-speech-and-image.py diff --git a/examples/foundational/06-listen-and-respond.py b/examples/06-listen-and-respond.py similarity index 100% rename from examples/foundational/06-listen-and-respond.py rename to examples/06-listen-and-respond.py diff --git a/examples/foundational/06a-image-sync.py b/examples/06a-image-sync.py similarity index 100% rename from examples/foundational/06a-image-sync.py rename to examples/06a-image-sync.py diff --git a/examples/foundational/07-interruptible-cartesia-http.py b/examples/07-interruptible-cartesia-http.py similarity index 100% rename from examples/foundational/07-interruptible-cartesia-http.py rename to examples/07-interruptible-cartesia-http.py diff --git a/examples/foundational/07-interruptible-openai-responses-http.py b/examples/07-interruptible-openai-responses-http.py similarity index 100% rename from examples/foundational/07-interruptible-openai-responses-http.py rename to examples/07-interruptible-openai-responses-http.py diff --git a/examples/foundational/07-interruptible-openai-responses.py b/examples/07-interruptible-openai-responses.py similarity index 100% rename from examples/foundational/07-interruptible-openai-responses.py rename to examples/07-interruptible-openai-responses.py diff --git a/examples/foundational/07-interruptible.py b/examples/07-interruptible.py similarity index 100% rename from examples/foundational/07-interruptible.py rename to examples/07-interruptible.py diff --git a/examples/foundational/07a-interruptible-speechmatics-vad.py b/examples/07a-interruptible-speechmatics-vad.py similarity index 100% rename from examples/foundational/07a-interruptible-speechmatics-vad.py rename to examples/07a-interruptible-speechmatics-vad.py diff --git a/examples/foundational/07a-interruptible-speechmatics.py b/examples/07a-interruptible-speechmatics.py similarity index 100% rename from examples/foundational/07a-interruptible-speechmatics.py rename to examples/07a-interruptible-speechmatics.py diff --git a/examples/foundational/07b-interruptible-langchain.py b/examples/07b-interruptible-langchain.py similarity index 100% rename from examples/foundational/07b-interruptible-langchain.py rename to examples/07b-interruptible-langchain.py diff --git a/examples/foundational/07c-interruptible-deepgram-flux-sagemaker.py b/examples/07c-interruptible-deepgram-flux-sagemaker.py similarity index 100% rename from examples/foundational/07c-interruptible-deepgram-flux-sagemaker.py rename to examples/07c-interruptible-deepgram-flux-sagemaker.py diff --git a/examples/foundational/07c-interruptible-deepgram-flux.py b/examples/07c-interruptible-deepgram-flux.py similarity index 100% rename from examples/foundational/07c-interruptible-deepgram-flux.py rename to examples/07c-interruptible-deepgram-flux.py diff --git a/examples/foundational/07c-interruptible-deepgram-http.py b/examples/07c-interruptible-deepgram-http.py similarity index 100% rename from examples/foundational/07c-interruptible-deepgram-http.py rename to examples/07c-interruptible-deepgram-http.py diff --git a/examples/foundational/07c-interruptible-deepgram-sagemaker.py b/examples/07c-interruptible-deepgram-sagemaker.py similarity index 100% rename from examples/foundational/07c-interruptible-deepgram-sagemaker.py rename to examples/07c-interruptible-deepgram-sagemaker.py diff --git a/examples/foundational/07c-interruptible-deepgram-vad.py b/examples/07c-interruptible-deepgram-vad.py similarity index 100% rename from examples/foundational/07c-interruptible-deepgram-vad.py rename to examples/07c-interruptible-deepgram-vad.py diff --git a/examples/foundational/07c-interruptible-deepgram.py b/examples/07c-interruptible-deepgram.py similarity index 100% rename from examples/foundational/07c-interruptible-deepgram.py rename to examples/07c-interruptible-deepgram.py diff --git a/examples/foundational/07d-interruptible-elevenlabs-http.py b/examples/07d-interruptible-elevenlabs-http.py similarity index 100% rename from examples/foundational/07d-interruptible-elevenlabs-http.py rename to examples/07d-interruptible-elevenlabs-http.py diff --git a/examples/foundational/07d-interruptible-elevenlabs.py b/examples/07d-interruptible-elevenlabs.py similarity index 100% rename from examples/foundational/07d-interruptible-elevenlabs.py rename to examples/07d-interruptible-elevenlabs.py diff --git a/examples/foundational/07e-interruptible-xai.py b/examples/07e-interruptible-xai.py similarity index 100% rename from examples/foundational/07e-interruptible-xai.py rename to examples/07e-interruptible-xai.py diff --git a/examples/foundational/07f-interruptible-azure-http.py b/examples/07f-interruptible-azure-http.py similarity index 100% rename from examples/foundational/07f-interruptible-azure-http.py rename to examples/07f-interruptible-azure-http.py diff --git a/examples/foundational/07f-interruptible-azure.py b/examples/07f-interruptible-azure.py similarity index 100% rename from examples/foundational/07f-interruptible-azure.py rename to examples/07f-interruptible-azure.py diff --git a/examples/foundational/07g-interruptible-openai-http.py b/examples/07g-interruptible-openai-http.py similarity index 100% rename from examples/foundational/07g-interruptible-openai-http.py rename to examples/07g-interruptible-openai-http.py diff --git a/examples/foundational/07g-interruptible-openai.py b/examples/07g-interruptible-openai.py similarity index 100% rename from examples/foundational/07g-interruptible-openai.py rename to examples/07g-interruptible-openai.py diff --git a/examples/foundational/07i-interruptible-xtts.py b/examples/07i-interruptible-xtts.py similarity index 100% rename from examples/foundational/07i-interruptible-xtts.py rename to examples/07i-interruptible-xtts.py diff --git a/examples/foundational/07j-interruptible-gladia-vad.py b/examples/07j-interruptible-gladia-vad.py similarity index 100% rename from examples/foundational/07j-interruptible-gladia-vad.py rename to examples/07j-interruptible-gladia-vad.py diff --git a/examples/foundational/07j-interruptible-gladia.py b/examples/07j-interruptible-gladia.py similarity index 100% rename from examples/foundational/07j-interruptible-gladia.py rename to examples/07j-interruptible-gladia.py diff --git a/examples/foundational/07k-interruptible-lmnt.py b/examples/07k-interruptible-lmnt.py similarity index 100% rename from examples/foundational/07k-interruptible-lmnt.py rename to examples/07k-interruptible-lmnt.py diff --git a/examples/foundational/07l-interruptible-groq.py b/examples/07l-interruptible-groq.py similarity index 100% rename from examples/foundational/07l-interruptible-groq.py rename to examples/07l-interruptible-groq.py diff --git a/examples/foundational/07m-interruptible-aws-strands.py b/examples/07m-interruptible-aws-strands.py similarity index 100% rename from examples/foundational/07m-interruptible-aws-strands.py rename to examples/07m-interruptible-aws-strands.py diff --git a/examples/foundational/07m-interruptible-aws.py b/examples/07m-interruptible-aws.py similarity index 100% rename from examples/foundational/07m-interruptible-aws.py rename to examples/07m-interruptible-aws.py diff --git a/examples/foundational/07n-interruptible-gemini-image.py b/examples/07n-interruptible-gemini-image.py similarity index 98% rename from examples/foundational/07n-interruptible-gemini-image.py rename to examples/07n-interruptible-gemini-image.py index cb20178c5..80f115390 100644 --- a/examples/foundational/07n-interruptible-gemini-image.py +++ b/examples/07n-interruptible-gemini-image.py @@ -13,9 +13,6 @@ Features showcased: - Gemini LLM for conversation and image generation - Google TTS and STT -Run with: - python examples/foundational/07n-interruptible-gemini-image.py - Make sure to set your environment variables: export GOOGLE_API_KEY=your_api_key_here """ diff --git a/examples/foundational/07n-interruptible-gemini.py b/examples/07n-interruptible-gemini.py similarity index 100% rename from examples/foundational/07n-interruptible-gemini.py rename to examples/07n-interruptible-gemini.py diff --git a/examples/foundational/07n-interruptible-google-http.py b/examples/07n-interruptible-google-http.py similarity index 100% rename from examples/foundational/07n-interruptible-google-http.py rename to examples/07n-interruptible-google-http.py diff --git a/examples/foundational/07n-interruptible-google.py b/examples/07n-interruptible-google.py similarity index 100% rename from examples/foundational/07n-interruptible-google.py rename to examples/07n-interruptible-google.py diff --git a/examples/foundational/07o-interruptible-assemblyai-turn-detection.py b/examples/07o-interruptible-assemblyai-turn-detection.py similarity index 100% rename from examples/foundational/07o-interruptible-assemblyai-turn-detection.py rename to examples/07o-interruptible-assemblyai-turn-detection.py diff --git a/examples/foundational/07o-interruptible-assemblyai.py b/examples/07o-interruptible-assemblyai.py similarity index 100% rename from examples/foundational/07o-interruptible-assemblyai.py rename to examples/07o-interruptible-assemblyai.py diff --git a/examples/foundational/07p-interruptible-krisp-viva.py b/examples/07p-interruptible-krisp-viva.py similarity index 100% rename from examples/foundational/07p-interruptible-krisp-viva.py rename to examples/07p-interruptible-krisp-viva.py diff --git a/examples/foundational/07q-interruptible-rime-http.py b/examples/07q-interruptible-rime-http.py similarity index 100% rename from examples/foundational/07q-interruptible-rime-http.py rename to examples/07q-interruptible-rime-http.py diff --git a/examples/foundational/07q-interruptible-rime.py b/examples/07q-interruptible-rime.py similarity index 100% rename from examples/foundational/07q-interruptible-rime.py rename to examples/07q-interruptible-rime.py diff --git a/examples/foundational/07r-interruptible-nvidia.py b/examples/07r-interruptible-nvidia.py similarity index 100% rename from examples/foundational/07r-interruptible-nvidia.py rename to examples/07r-interruptible-nvidia.py diff --git a/examples/foundational/07s-interruptible-google-audio-in.py b/examples/07s-interruptible-google-audio-in.py similarity index 100% rename from examples/foundational/07s-interruptible-google-audio-in.py rename to examples/07s-interruptible-google-audio-in.py diff --git a/examples/foundational/07t-interruptible-fish.py b/examples/07t-interruptible-fish.py similarity index 100% rename from examples/foundational/07t-interruptible-fish.py rename to examples/07t-interruptible-fish.py diff --git a/examples/foundational/07v-interruptible-neuphonic-http.py b/examples/07v-interruptible-neuphonic-http.py similarity index 100% rename from examples/foundational/07v-interruptible-neuphonic-http.py rename to examples/07v-interruptible-neuphonic-http.py diff --git a/examples/foundational/07v-interruptible-neuphonic.py b/examples/07v-interruptible-neuphonic.py similarity index 100% rename from examples/foundational/07v-interruptible-neuphonic.py rename to examples/07v-interruptible-neuphonic.py diff --git a/examples/foundational/07w-interruptible-fal.py b/examples/07w-interruptible-fal.py similarity index 100% rename from examples/foundational/07w-interruptible-fal.py rename to examples/07w-interruptible-fal.py diff --git a/examples/foundational/07x-interruptible-local.py b/examples/07x-interruptible-local.py similarity index 100% rename from examples/foundational/07x-interruptible-local.py rename to examples/07x-interruptible-local.py diff --git a/examples/foundational/07y-interruptible-minimax.py b/examples/07y-interruptible-minimax.py similarity index 100% rename from examples/foundational/07y-interruptible-minimax.py rename to examples/07y-interruptible-minimax.py diff --git a/examples/foundational/07z-interruptible-sarvam-http.py b/examples/07z-interruptible-sarvam-http.py similarity index 100% rename from examples/foundational/07z-interruptible-sarvam-http.py rename to examples/07z-interruptible-sarvam-http.py diff --git a/examples/foundational/07z-interruptible-sarvam.py b/examples/07z-interruptible-sarvam.py similarity index 100% rename from examples/foundational/07z-interruptible-sarvam.py rename to examples/07z-interruptible-sarvam.py diff --git a/examples/foundational/07za-interruptible-soniox.py b/examples/07za-interruptible-soniox.py similarity index 100% rename from examples/foundational/07za-interruptible-soniox.py rename to examples/07za-interruptible-soniox.py diff --git a/examples/foundational/07zb-interruptible-inworld-http.py b/examples/07zb-interruptible-inworld-http.py similarity index 100% rename from examples/foundational/07zb-interruptible-inworld-http.py rename to examples/07zb-interruptible-inworld-http.py diff --git a/examples/foundational/07zb-interruptible-inworld.py b/examples/07zb-interruptible-inworld.py similarity index 100% rename from examples/foundational/07zb-interruptible-inworld.py rename to examples/07zb-interruptible-inworld.py diff --git a/examples/foundational/07zc-interruptible-asyncai-http.py b/examples/07zc-interruptible-asyncai-http.py similarity index 100% rename from examples/foundational/07zc-interruptible-asyncai-http.py rename to examples/07zc-interruptible-asyncai-http.py diff --git a/examples/foundational/07zc-interruptible-asyncai.py b/examples/07zc-interruptible-asyncai.py similarity index 100% rename from examples/foundational/07zc-interruptible-asyncai.py rename to examples/07zc-interruptible-asyncai.py diff --git a/examples/foundational/07zd-interruptible-aicoustics.py b/examples/07zd-interruptible-aicoustics.py similarity index 100% rename from examples/foundational/07zd-interruptible-aicoustics.py rename to examples/07zd-interruptible-aicoustics.py diff --git a/examples/foundational/07ze-interruptible-hume.py b/examples/07ze-interruptible-hume.py similarity index 100% rename from examples/foundational/07ze-interruptible-hume.py rename to examples/07ze-interruptible-hume.py diff --git a/examples/foundational/07zf-interruptible-gradium.py b/examples/07zf-interruptible-gradium.py similarity index 100% rename from examples/foundational/07zf-interruptible-gradium.py rename to examples/07zf-interruptible-gradium.py diff --git a/examples/foundational/07zg-interruptible-camb.py b/examples/07zg-interruptible-camb.py similarity index 100% rename from examples/foundational/07zg-interruptible-camb.py rename to examples/07zg-interruptible-camb.py diff --git a/examples/foundational/07zi-interruptible-piper.py b/examples/07zi-interruptible-piper.py similarity index 100% rename from examples/foundational/07zi-interruptible-piper.py rename to examples/07zi-interruptible-piper.py diff --git a/examples/foundational/07zj-interruptible-kokoro.py b/examples/07zj-interruptible-kokoro.py similarity index 100% rename from examples/foundational/07zj-interruptible-kokoro.py rename to examples/07zj-interruptible-kokoro.py diff --git a/examples/foundational/07zk-interruptible-resemble.py b/examples/07zk-interruptible-resemble.py similarity index 100% rename from examples/foundational/07zk-interruptible-resemble.py rename to examples/07zk-interruptible-resemble.py diff --git a/examples/foundational/07zl-interruptible-smallest.py b/examples/07zl-interruptible-smallest.py similarity index 100% rename from examples/foundational/07zl-interruptible-smallest.py rename to examples/07zl-interruptible-smallest.py diff --git a/examples/foundational/08-custom-frame-processor.py b/examples/08-custom-frame-processor.py similarity index 100% rename from examples/foundational/08-custom-frame-processor.py rename to examples/08-custom-frame-processor.py diff --git a/examples/foundational/09-mirror.py b/examples/09-mirror.py similarity index 100% rename from examples/foundational/09-mirror.py rename to examples/09-mirror.py diff --git a/examples/foundational/09a-local-mirror.py b/examples/09a-local-mirror.py similarity index 100% rename from examples/foundational/09a-local-mirror.py rename to examples/09a-local-mirror.py diff --git a/examples/foundational/10-wake-phrase.py b/examples/10-wake-phrase.py similarity index 100% rename from examples/foundational/10-wake-phrase.py rename to examples/10-wake-phrase.py diff --git a/examples/foundational/11-sound-effects.py b/examples/11-sound-effects.py similarity index 100% rename from examples/foundational/11-sound-effects.py rename to examples/11-sound-effects.py diff --git a/examples/foundational/12-describe-image-openai-responses-http.py b/examples/12-describe-image-openai-responses-http.py similarity index 100% rename from examples/foundational/12-describe-image-openai-responses-http.py rename to examples/12-describe-image-openai-responses-http.py diff --git a/examples/foundational/12-describe-image-openai-responses.py b/examples/12-describe-image-openai-responses.py similarity index 100% rename from examples/foundational/12-describe-image-openai-responses.py rename to examples/12-describe-image-openai-responses.py diff --git a/examples/foundational/12-describe-image-openai.py b/examples/12-describe-image-openai.py similarity index 100% rename from examples/foundational/12-describe-image-openai.py rename to examples/12-describe-image-openai.py diff --git a/examples/foundational/12a-describe-image-anthropic.py b/examples/12a-describe-image-anthropic.py similarity index 100% rename from examples/foundational/12a-describe-image-anthropic.py rename to examples/12a-describe-image-anthropic.py diff --git a/examples/foundational/12b-describe-image-aws.py b/examples/12b-describe-image-aws.py similarity index 100% rename from examples/foundational/12b-describe-image-aws.py rename to examples/12b-describe-image-aws.py diff --git a/examples/foundational/12c-describe-image-gemini-flash.py b/examples/12c-describe-image-gemini-flash.py similarity index 100% rename from examples/foundational/12c-describe-image-gemini-flash.py rename to examples/12c-describe-image-gemini-flash.py diff --git a/examples/foundational/12d-describe-image-moondream.py b/examples/12d-describe-image-moondream.py similarity index 100% rename from examples/foundational/12d-describe-image-moondream.py rename to examples/12d-describe-image-moondream.py diff --git a/examples/foundational/13-whisper-transcription.py b/examples/13-whisper-transcription.py similarity index 100% rename from examples/foundational/13-whisper-transcription.py rename to examples/13-whisper-transcription.py diff --git a/examples/foundational/13a-whisper-local.py b/examples/13a-whisper-local.py similarity index 100% rename from examples/foundational/13a-whisper-local.py rename to examples/13a-whisper-local.py diff --git a/examples/foundational/13b-deepgram-transcription.py b/examples/13b-deepgram-transcription.py similarity index 100% rename from examples/foundational/13b-deepgram-transcription.py rename to examples/13b-deepgram-transcription.py diff --git a/examples/foundational/13c-gladia-transcription.py b/examples/13c-gladia-transcription.py similarity index 100% rename from examples/foundational/13c-gladia-transcription.py rename to examples/13c-gladia-transcription.py diff --git a/examples/foundational/13c-gladia-translation.py b/examples/13c-gladia-translation.py similarity index 100% rename from examples/foundational/13c-gladia-translation.py rename to examples/13c-gladia-translation.py diff --git a/examples/foundational/13d-assemblyai-transcription.py b/examples/13d-assemblyai-transcription.py similarity index 100% rename from examples/foundational/13d-assemblyai-transcription.py rename to examples/13d-assemblyai-transcription.py diff --git a/examples/foundational/13e-whisper-mlx.py b/examples/13e-whisper-mlx.py similarity index 100% rename from examples/foundational/13e-whisper-mlx.py rename to examples/13e-whisper-mlx.py diff --git a/examples/foundational/13f-cartesia-transcription.py b/examples/13f-cartesia-transcription.py similarity index 100% rename from examples/foundational/13f-cartesia-transcription.py rename to examples/13f-cartesia-transcription.py diff --git a/examples/foundational/13h-speechmatics-transcription.py b/examples/13h-speechmatics-transcription.py similarity index 100% rename from examples/foundational/13h-speechmatics-transcription.py rename to examples/13h-speechmatics-transcription.py diff --git a/examples/foundational/13i-soniox-transcription.py b/examples/13i-soniox-transcription.py similarity index 100% rename from examples/foundational/13i-soniox-transcription.py rename to examples/13i-soniox-transcription.py diff --git a/examples/foundational/13j-azure-transcription.py b/examples/13j-azure-transcription.py similarity index 100% rename from examples/foundational/13j-azure-transcription.py rename to examples/13j-azure-transcription.py diff --git a/examples/foundational/13k-elevenlabs-transcription.py b/examples/13k-elevenlabs-transcription.py similarity index 100% rename from examples/foundational/13k-elevenlabs-transcription.py rename to examples/13k-elevenlabs-transcription.py diff --git a/examples/foundational/13l-gradium-transcription.py b/examples/13l-gradium-transcription.py similarity index 100% rename from examples/foundational/13l-gradium-transcription.py rename to examples/13l-gradium-transcription.py diff --git a/examples/foundational/13m-openai-transcription.py b/examples/13m-openai-transcription.py similarity index 100% rename from examples/foundational/13m-openai-transcription.py rename to examples/13m-openai-transcription.py diff --git a/examples/foundational/14-function-calling-openai-responses-http.py b/examples/14-function-calling-openai-responses-http.py similarity index 100% rename from examples/foundational/14-function-calling-openai-responses-http.py rename to examples/14-function-calling-openai-responses-http.py diff --git a/examples/foundational/14-function-calling-openai-responses.py b/examples/14-function-calling-openai-responses.py similarity index 100% rename from examples/foundational/14-function-calling-openai-responses.py rename to examples/14-function-calling-openai-responses.py diff --git a/examples/foundational/14-function-calling.py b/examples/14-function-calling.py similarity index 100% rename from examples/foundational/14-function-calling.py rename to examples/14-function-calling.py diff --git a/examples/foundational/14a-function-calling-anthropic.py b/examples/14a-function-calling-anthropic.py similarity index 100% rename from examples/foundational/14a-function-calling-anthropic.py rename to examples/14a-function-calling-anthropic.py diff --git a/examples/foundational/14b-function-calling-openai.py b/examples/14b-function-calling-openai.py similarity index 100% rename from examples/foundational/14b-function-calling-openai.py rename to examples/14b-function-calling-openai.py diff --git a/examples/foundational/14c-function-calling-together.py b/examples/14c-function-calling-together.py similarity index 100% rename from examples/foundational/14c-function-calling-together.py rename to examples/14c-function-calling-together.py diff --git a/examples/foundational/14d-function-calling-anthropic-video.py b/examples/14d-function-calling-anthropic-video.py similarity index 100% rename from examples/foundational/14d-function-calling-anthropic-video.py rename to examples/14d-function-calling-anthropic-video.py diff --git a/examples/foundational/14d-function-calling-aws-video.py b/examples/14d-function-calling-aws-video.py similarity index 100% rename from examples/foundational/14d-function-calling-aws-video.py rename to examples/14d-function-calling-aws-video.py diff --git a/examples/foundational/14d-function-calling-gemini-flash-video.py b/examples/14d-function-calling-gemini-flash-video.py similarity index 100% rename from examples/foundational/14d-function-calling-gemini-flash-video.py rename to examples/14d-function-calling-gemini-flash-video.py diff --git a/examples/foundational/14d-function-calling-moondream-video.py b/examples/14d-function-calling-moondream-video.py similarity index 100% rename from examples/foundational/14d-function-calling-moondream-video.py rename to examples/14d-function-calling-moondream-video.py diff --git a/examples/foundational/14d-function-calling-openai-responses-video-http.py b/examples/14d-function-calling-openai-responses-video-http.py similarity index 100% rename from examples/foundational/14d-function-calling-openai-responses-video-http.py rename to examples/14d-function-calling-openai-responses-video-http.py diff --git a/examples/foundational/14d-function-calling-openai-responses-video.py b/examples/14d-function-calling-openai-responses-video.py similarity index 100% rename from examples/foundational/14d-function-calling-openai-responses-video.py rename to examples/14d-function-calling-openai-responses-video.py diff --git a/examples/foundational/14d-function-calling-openai-video.py b/examples/14d-function-calling-openai-video.py similarity index 100% rename from examples/foundational/14d-function-calling-openai-video.py rename to examples/14d-function-calling-openai-video.py diff --git a/examples/foundational/14e-function-calling-google.py b/examples/14e-function-calling-google.py similarity index 100% rename from examples/foundational/14e-function-calling-google.py rename to examples/14e-function-calling-google.py diff --git a/examples/foundational/14f-function-calling-groq.py b/examples/14f-function-calling-groq.py similarity index 100% rename from examples/foundational/14f-function-calling-groq.py rename to examples/14f-function-calling-groq.py diff --git a/examples/foundational/14g-function-calling-grok.py b/examples/14g-function-calling-grok.py similarity index 100% rename from examples/foundational/14g-function-calling-grok.py rename to examples/14g-function-calling-grok.py diff --git a/examples/foundational/14h-function-calling-azure.py b/examples/14h-function-calling-azure.py similarity index 100% rename from examples/foundational/14h-function-calling-azure.py rename to examples/14h-function-calling-azure.py diff --git a/examples/foundational/14i-function-calling-fireworks.py b/examples/14i-function-calling-fireworks.py similarity index 100% rename from examples/foundational/14i-function-calling-fireworks.py rename to examples/14i-function-calling-fireworks.py diff --git a/examples/foundational/14j-function-calling-nvidia.py b/examples/14j-function-calling-nvidia.py similarity index 100% rename from examples/foundational/14j-function-calling-nvidia.py rename to examples/14j-function-calling-nvidia.py diff --git a/examples/foundational/14k-function-calling-cerebras.py b/examples/14k-function-calling-cerebras.py similarity index 100% rename from examples/foundational/14k-function-calling-cerebras.py rename to examples/14k-function-calling-cerebras.py diff --git a/examples/foundational/14l-function-calling-deepseek.py b/examples/14l-function-calling-deepseek.py similarity index 100% rename from examples/foundational/14l-function-calling-deepseek.py rename to examples/14l-function-calling-deepseek.py diff --git a/examples/foundational/14m-function-calling-openrouter.py b/examples/14m-function-calling-openrouter.py similarity index 100% rename from examples/foundational/14m-function-calling-openrouter.py rename to examples/14m-function-calling-openrouter.py diff --git a/examples/foundational/14n-function-calling-perplexity.py b/examples/14n-function-calling-perplexity.py similarity index 100% rename from examples/foundational/14n-function-calling-perplexity.py rename to examples/14n-function-calling-perplexity.py diff --git a/examples/foundational/14o-function-calling-gemini-openai-format.py b/examples/14o-function-calling-gemini-openai-format.py similarity index 100% rename from examples/foundational/14o-function-calling-gemini-openai-format.py rename to examples/14o-function-calling-gemini-openai-format.py diff --git a/examples/foundational/14p-function-calling-gemini-vertex-ai.py b/examples/14p-function-calling-gemini-vertex-ai.py similarity index 100% rename from examples/foundational/14p-function-calling-gemini-vertex-ai.py rename to examples/14p-function-calling-gemini-vertex-ai.py diff --git a/examples/foundational/14q-function-calling-qwen.py b/examples/14q-function-calling-qwen.py similarity index 100% rename from examples/foundational/14q-function-calling-qwen.py rename to examples/14q-function-calling-qwen.py diff --git a/examples/foundational/14r-function-calling-aws.py b/examples/14r-function-calling-aws.py similarity index 100% rename from examples/foundational/14r-function-calling-aws.py rename to examples/14r-function-calling-aws.py diff --git a/examples/foundational/14s-function-calling-sambanova.py b/examples/14s-function-calling-sambanova.py similarity index 100% rename from examples/foundational/14s-function-calling-sambanova.py rename to examples/14s-function-calling-sambanova.py diff --git a/examples/foundational/14t-function-calling-direct.py b/examples/14t-function-calling-direct.py similarity index 100% rename from examples/foundational/14t-function-calling-direct.py rename to examples/14t-function-calling-direct.py diff --git a/examples/foundational/14u-function-calling-ollama.py b/examples/14u-function-calling-ollama.py similarity index 100% rename from examples/foundational/14u-function-calling-ollama.py rename to examples/14u-function-calling-ollama.py diff --git a/examples/foundational/14v-function-calling-nebius.py b/examples/14v-function-calling-nebius.py similarity index 100% rename from examples/foundational/14v-function-calling-nebius.py rename to examples/14v-function-calling-nebius.py diff --git a/examples/foundational/14w-function-calling-mistral.py b/examples/14w-function-calling-mistral.py similarity index 100% rename from examples/foundational/14w-function-calling-mistral.py rename to examples/14w-function-calling-mistral.py diff --git a/examples/foundational/14y-function-calling-sarvam.py b/examples/14y-function-calling-sarvam.py similarity index 100% rename from examples/foundational/14y-function-calling-sarvam.py rename to examples/14y-function-calling-sarvam.py diff --git a/examples/foundational/14z-function-calling-novita.py b/examples/14z-function-calling-novita.py similarity index 100% rename from examples/foundational/14z-function-calling-novita.py rename to examples/14z-function-calling-novita.py diff --git a/examples/foundational/15-switch-voices.py b/examples/15-switch-voices.py similarity index 100% rename from examples/foundational/15-switch-voices.py rename to examples/15-switch-voices.py diff --git a/examples/foundational/15a-switch-languages.py b/examples/15a-switch-languages.py similarity index 100% rename from examples/foundational/15a-switch-languages.py rename to examples/15a-switch-languages.py diff --git a/examples/foundational/16-gpu-container-local-bot.py b/examples/16-gpu-container-local-bot.py similarity index 100% rename from examples/foundational/16-gpu-container-local-bot.py rename to examples/16-gpu-container-local-bot.py diff --git a/examples/foundational/17-detect-user-idle.py b/examples/17-detect-user-idle.py similarity index 100% rename from examples/foundational/17-detect-user-idle.py rename to examples/17-detect-user-idle.py diff --git a/examples/foundational/18-gstreamer-filesrc.py b/examples/18-gstreamer-filesrc.py similarity index 100% rename from examples/foundational/18-gstreamer-filesrc.py rename to examples/18-gstreamer-filesrc.py diff --git a/examples/foundational/18a-gstreamer-videotestsrc.py b/examples/18a-gstreamer-videotestsrc.py similarity index 100% rename from examples/foundational/18a-gstreamer-videotestsrc.py rename to examples/18a-gstreamer-videotestsrc.py diff --git a/examples/foundational/19-openai-realtime-beta.py b/examples/19-openai-realtime-beta.py similarity index 100% rename from examples/foundational/19-openai-realtime-beta.py rename to examples/19-openai-realtime-beta.py diff --git a/examples/foundational/19-openai-realtime.py b/examples/19-openai-realtime.py similarity index 100% rename from examples/foundational/19-openai-realtime.py rename to examples/19-openai-realtime.py diff --git a/examples/foundational/19a-azure-realtime-beta.py b/examples/19a-azure-realtime-beta.py similarity index 100% rename from examples/foundational/19a-azure-realtime-beta.py rename to examples/19a-azure-realtime-beta.py diff --git a/examples/foundational/19a-azure-realtime.py b/examples/19a-azure-realtime.py similarity index 100% rename from examples/foundational/19a-azure-realtime.py rename to examples/19a-azure-realtime.py diff --git a/examples/foundational/19b-openai-realtime-beta-text.py b/examples/19b-openai-realtime-beta-text.py similarity index 100% rename from examples/foundational/19b-openai-realtime-beta-text.py rename to examples/19b-openai-realtime-beta-text.py diff --git a/examples/foundational/19b-openai-realtime-text.py b/examples/19b-openai-realtime-text.py similarity index 100% rename from examples/foundational/19b-openai-realtime-text.py rename to examples/19b-openai-realtime-text.py diff --git a/examples/foundational/19c-openai-realtime-live-video.py b/examples/19c-openai-realtime-live-video.py similarity index 100% rename from examples/foundational/19c-openai-realtime-live-video.py rename to examples/19c-openai-realtime-live-video.py diff --git a/examples/foundational/20a-persistent-context-openai-responses-http.py b/examples/20a-persistent-context-openai-responses-http.py similarity index 100% rename from examples/foundational/20a-persistent-context-openai-responses-http.py rename to examples/20a-persistent-context-openai-responses-http.py diff --git a/examples/foundational/20a-persistent-context-openai-responses.py b/examples/20a-persistent-context-openai-responses.py similarity index 100% rename from examples/foundational/20a-persistent-context-openai-responses.py rename to examples/20a-persistent-context-openai-responses.py diff --git a/examples/foundational/20a-persistent-context-openai.py b/examples/20a-persistent-context-openai.py similarity index 100% rename from examples/foundational/20a-persistent-context-openai.py rename to examples/20a-persistent-context-openai.py diff --git a/examples/foundational/20b-persistent-context-openai-realtime-beta.py b/examples/20b-persistent-context-openai-realtime-beta.py similarity index 100% rename from examples/foundational/20b-persistent-context-openai-realtime-beta.py rename to examples/20b-persistent-context-openai-realtime-beta.py diff --git a/examples/foundational/20b-persistent-context-openai-realtime.py b/examples/20b-persistent-context-openai-realtime.py similarity index 100% rename from examples/foundational/20b-persistent-context-openai-realtime.py rename to examples/20b-persistent-context-openai-realtime.py diff --git a/examples/foundational/20c-persistent-context-anthropic.py b/examples/20c-persistent-context-anthropic.py similarity index 100% rename from examples/foundational/20c-persistent-context-anthropic.py rename to examples/20c-persistent-context-anthropic.py diff --git a/examples/foundational/20d-persistent-context-gemini.py b/examples/20d-persistent-context-gemini.py similarity index 100% rename from examples/foundational/20d-persistent-context-gemini.py rename to examples/20d-persistent-context-gemini.py diff --git a/examples/foundational/20e-persistent-context-aws-nova-sonic.py b/examples/20e-persistent-context-aws-nova-sonic.py similarity index 100% rename from examples/foundational/20e-persistent-context-aws-nova-sonic.py rename to examples/20e-persistent-context-aws-nova-sonic.py diff --git a/examples/foundational/20f-persistent-context-grok-realtime.py b/examples/20f-persistent-context-grok-realtime.py similarity index 100% rename from examples/foundational/20f-persistent-context-grok-realtime.py rename to examples/20f-persistent-context-grok-realtime.py diff --git a/examples/foundational/21-tavus-transport.py b/examples/21-tavus-transport.py similarity index 100% rename from examples/foundational/21-tavus-transport.py rename to examples/21-tavus-transport.py diff --git a/examples/foundational/21a-tavus-video-service.py b/examples/21a-tavus-video-service.py similarity index 100% rename from examples/foundational/21a-tavus-video-service.py rename to examples/21a-tavus-video-service.py diff --git a/examples/foundational/22-filter-incomplete-turns.py b/examples/22-filter-incomplete-turns.py similarity index 100% rename from examples/foundational/22-filter-incomplete-turns.py rename to examples/22-filter-incomplete-turns.py diff --git a/examples/foundational/23-bot-background-sound.py b/examples/23-bot-background-sound.py similarity index 100% rename from examples/foundational/23-bot-background-sound.py rename to examples/23-bot-background-sound.py diff --git a/examples/foundational/24-user-mute-strategy.py b/examples/24-user-mute-strategy.py similarity index 100% rename from examples/foundational/24-user-mute-strategy.py rename to examples/24-user-mute-strategy.py diff --git a/examples/foundational/25-google-audio-in.py b/examples/25-google-audio-in.py similarity index 100% rename from examples/foundational/25-google-audio-in.py rename to examples/25-google-audio-in.py diff --git a/examples/foundational/26-gemini-live.py b/examples/26-gemini-live.py similarity index 100% rename from examples/foundational/26-gemini-live.py rename to examples/26-gemini-live.py diff --git a/examples/foundational/26a-gemini-live-local-vad.py b/examples/26a-gemini-live-local-vad.py similarity index 100% rename from examples/foundational/26a-gemini-live-local-vad.py rename to examples/26a-gemini-live-local-vad.py diff --git a/examples/foundational/26b-gemini-live-function-calling.py b/examples/26b-gemini-live-function-calling.py similarity index 100% rename from examples/foundational/26b-gemini-live-function-calling.py rename to examples/26b-gemini-live-function-calling.py diff --git a/examples/foundational/26c-gemini-live-video.py b/examples/26c-gemini-live-video.py similarity index 100% rename from examples/foundational/26c-gemini-live-video.py rename to examples/26c-gemini-live-video.py diff --git a/examples/foundational/26e-gemini-live-google-search.py b/examples/26e-gemini-live-google-search.py similarity index 100% rename from examples/foundational/26e-gemini-live-google-search.py rename to examples/26e-gemini-live-google-search.py diff --git a/examples/foundational/26f-gemini-live-files-api.py b/examples/26f-gemini-live-files-api.py similarity index 100% rename from examples/foundational/26f-gemini-live-files-api.py rename to examples/26f-gemini-live-files-api.py diff --git a/examples/foundational/26g-gemini-live-groundingMetadata.py b/examples/26g-gemini-live-groundingMetadata.py similarity index 100% rename from examples/foundational/26g-gemini-live-groundingMetadata.py rename to examples/26g-gemini-live-groundingMetadata.py diff --git a/examples/foundational/26h-gemini-live-vertex-function-calling.py b/examples/26h-gemini-live-vertex-function-calling.py similarity index 100% rename from examples/foundational/26h-gemini-live-vertex-function-calling.py rename to examples/26h-gemini-live-vertex-function-calling.py diff --git a/examples/foundational/26i-gemini-live-graceful-end.py b/examples/26i-gemini-live-graceful-end.py similarity index 100% rename from examples/foundational/26i-gemini-live-graceful-end.py rename to examples/26i-gemini-live-graceful-end.py diff --git a/examples/foundational/27-simli-layer.py b/examples/27-simli-layer.py similarity index 100% rename from examples/foundational/27-simli-layer.py rename to examples/27-simli-layer.py diff --git a/examples/foundational/28-user-assistant-turns.py b/examples/28-user-assistant-turns.py similarity index 100% rename from examples/foundational/28-user-assistant-turns.py rename to examples/28-user-assistant-turns.py diff --git a/examples/foundational/29-turn-tracking-observer.py b/examples/29-turn-tracking-observer.py similarity index 100% rename from examples/foundational/29-turn-tracking-observer.py rename to examples/29-turn-tracking-observer.py diff --git a/examples/foundational/30-observer.py b/examples/30-observer.py similarity index 100% rename from examples/foundational/30-observer.py rename to examples/30-observer.py diff --git a/examples/foundational/31-heartbeats.py b/examples/31-heartbeats.py similarity index 100% rename from examples/foundational/31-heartbeats.py rename to examples/31-heartbeats.py diff --git a/examples/foundational/32-gemini-grounding-metadata.py b/examples/32-gemini-grounding-metadata.py similarity index 100% rename from examples/foundational/32-gemini-grounding-metadata.py rename to examples/32-gemini-grounding-metadata.py diff --git a/examples/foundational/33-gemini-rag.py b/examples/33-gemini-rag.py similarity index 100% rename from examples/foundational/33-gemini-rag.py rename to examples/33-gemini-rag.py diff --git a/examples/foundational/34-audio-recording.py b/examples/34-audio-recording.py similarity index 100% rename from examples/foundational/34-audio-recording.py rename to examples/34-audio-recording.py diff --git a/examples/foundational/35-pattern-pair-voice-switching.py b/examples/35-pattern-pair-voice-switching.py similarity index 100% rename from examples/foundational/35-pattern-pair-voice-switching.py rename to examples/35-pattern-pair-voice-switching.py diff --git a/examples/foundational/36-user-email-gathering.py b/examples/36-user-email-gathering.py similarity index 100% rename from examples/foundational/36-user-email-gathering.py rename to examples/36-user-email-gathering.py diff --git a/examples/foundational/37-mem0.py b/examples/37-mem0.py similarity index 98% rename from examples/foundational/37-mem0.py rename to examples/37-mem0.py index a3116df24..c7c0f13bd 100644 --- a/examples/foundational/37-mem0.py +++ b/examples/37-mem0.py @@ -19,10 +19,6 @@ The example: - Using Mem0 API (cloud-based memory storage) - Using local configuration with custom LLM (self-hosted memory) -Example usage (run from pipecat root directory): - $ pip install "pipecat-ai[daily,openai,elevenlabs,silero,mem0]" - $ python examples/foundational/37-mem0.py - Requirements: - OpenAI API key - ElevenLabs API key (for text-to-speech) diff --git a/examples/foundational/38a-smart-turn-local-coreml.py b/examples/38a-smart-turn-local-coreml.py similarity index 100% rename from examples/foundational/38a-smart-turn-local-coreml.py rename to examples/38a-smart-turn-local-coreml.py diff --git a/examples/foundational/38b-smart-turn-local.py b/examples/38b-smart-turn-local.py similarity index 100% rename from examples/foundational/38b-smart-turn-local.py rename to examples/38b-smart-turn-local.py diff --git a/examples/foundational/39-mcp-stdio.py b/examples/39-mcp-stdio.py similarity index 100% rename from examples/foundational/39-mcp-stdio.py rename to examples/39-mcp-stdio.py diff --git a/examples/foundational/39a-mcp-streamable-http.py b/examples/39a-mcp-streamable-http.py similarity index 100% rename from examples/foundational/39a-mcp-streamable-http.py rename to examples/39a-mcp-streamable-http.py diff --git a/examples/foundational/39b-mcp-streamable-http-gemini-live.py b/examples/39b-mcp-streamable-http-gemini-live.py similarity index 100% rename from examples/foundational/39b-mcp-streamable-http-gemini-live.py rename to examples/39b-mcp-streamable-http-gemini-live.py diff --git a/examples/foundational/39c-multiple-mcp.py b/examples/39c-multiple-mcp.py similarity index 100% rename from examples/foundational/39c-multiple-mcp.py rename to examples/39c-multiple-mcp.py diff --git a/examples/foundational/40-aws-nova-sonic.py b/examples/40-aws-nova-sonic.py similarity index 100% rename from examples/foundational/40-aws-nova-sonic.py rename to examples/40-aws-nova-sonic.py diff --git a/examples/foundational/42-interruption-config.py b/examples/42-interruption-config.py similarity index 100% rename from examples/foundational/42-interruption-config.py rename to examples/42-interruption-config.py diff --git a/examples/foundational/43-heygen-transport.py b/examples/43-heygen-transport.py similarity index 100% rename from examples/foundational/43-heygen-transport.py rename to examples/43-heygen-transport.py diff --git a/examples/foundational/43a-heygen-video-service.py b/examples/43a-heygen-video-service.py similarity index 100% rename from examples/foundational/43a-heygen-video-service.py rename to examples/43a-heygen-video-service.py diff --git a/examples/foundational/44-voicemail-detection.py b/examples/44-voicemail-detection.py similarity index 100% rename from examples/foundational/44-voicemail-detection.py rename to examples/44-voicemail-detection.py diff --git a/examples/foundational/45-before-and-after-events.py b/examples/45-before-and-after-events.py similarity index 100% rename from examples/foundational/45-before-and-after-events.py rename to examples/45-before-and-after-events.py diff --git a/examples/foundational/46-video-processing.py b/examples/46-video-processing.py similarity index 100% rename from examples/foundational/46-video-processing.py rename to examples/46-video-processing.py diff --git a/examples/foundational/47-sentry-metrics.py b/examples/47-sentry-metrics.py similarity index 100% rename from examples/foundational/47-sentry-metrics.py rename to examples/47-sentry-metrics.py diff --git a/examples/foundational/48-service-switcher.py b/examples/48-service-switcher.py similarity index 100% rename from examples/foundational/48-service-switcher.py rename to examples/48-service-switcher.py diff --git a/examples/foundational/49a-thinking-anthropic.py b/examples/49a-thinking-anthropic.py similarity index 100% rename from examples/foundational/49a-thinking-anthropic.py rename to examples/49a-thinking-anthropic.py diff --git a/examples/foundational/49b-thinking-google.py b/examples/49b-thinking-google.py similarity index 100% rename from examples/foundational/49b-thinking-google.py rename to examples/49b-thinking-google.py diff --git a/examples/foundational/49c-thinking-functions-anthropic.py b/examples/49c-thinking-functions-anthropic.py similarity index 100% rename from examples/foundational/49c-thinking-functions-anthropic.py rename to examples/49c-thinking-functions-anthropic.py diff --git a/examples/foundational/49d-thinking-functions-google.py b/examples/49d-thinking-functions-google.py similarity index 100% rename from examples/foundational/49d-thinking-functions-google.py rename to examples/49d-thinking-functions-google.py diff --git a/examples/foundational/50-ultravox-realtime.py b/examples/50-ultravox-realtime.py similarity index 100% rename from examples/foundational/50-ultravox-realtime.py rename to examples/50-ultravox-realtime.py diff --git a/examples/foundational/50a-ultravox-realtime-text.py b/examples/50a-ultravox-realtime-text.py similarity index 100% rename from examples/foundational/50a-ultravox-realtime-text.py rename to examples/50a-ultravox-realtime-text.py diff --git a/examples/foundational/51-grok-realtime.py b/examples/51-grok-realtime.py similarity index 100% rename from examples/foundational/51-grok-realtime.py rename to examples/51-grok-realtime.py diff --git a/examples/foundational/52-live-translation.py b/examples/52-live-translation.py similarity index 100% rename from examples/foundational/52-live-translation.py rename to examples/52-live-translation.py diff --git a/examples/foundational/53-concurrent-llm-evaluation.py b/examples/53-concurrent-llm-evaluation.py similarity index 100% rename from examples/foundational/53-concurrent-llm-evaluation.py rename to examples/53-concurrent-llm-evaluation.py diff --git a/examples/foundational/53-concurrent-llm-rtvi-ignored-sources.py b/examples/53-concurrent-llm-rtvi-ignored-sources.py similarity index 100% rename from examples/foundational/53-concurrent-llm-rtvi-ignored-sources.py rename to examples/53-concurrent-llm-rtvi-ignored-sources.py diff --git a/examples/foundational/54-context-summarization-openai.py b/examples/54-context-summarization-openai.py similarity index 100% rename from examples/foundational/54-context-summarization-openai.py rename to examples/54-context-summarization-openai.py diff --git a/examples/foundational/54a-context-summarization-google.py b/examples/54a-context-summarization-google.py similarity index 100% rename from examples/foundational/54a-context-summarization-google.py rename to examples/54a-context-summarization-google.py diff --git a/examples/foundational/54b-context-summarization-manual-openai.py b/examples/54b-context-summarization-manual-openai.py similarity index 100% rename from examples/foundational/54b-context-summarization-manual-openai.py rename to examples/54b-context-summarization-manual-openai.py diff --git a/examples/foundational/54c-context-summarization-dedicated-llm.py b/examples/54c-context-summarization-dedicated-llm.py similarity index 100% rename from examples/foundational/54c-context-summarization-dedicated-llm.py rename to examples/54c-context-summarization-dedicated-llm.py diff --git a/examples/foundational/55a-update-settings-deepgram-flux-stt.py b/examples/55a-update-settings-deepgram-flux-stt.py similarity index 100% rename from examples/foundational/55a-update-settings-deepgram-flux-stt.py rename to examples/55a-update-settings-deepgram-flux-stt.py diff --git a/examples/foundational/55a-update-settings-deepgram-sagemaker-stt.py b/examples/55a-update-settings-deepgram-sagemaker-stt.py similarity index 100% rename from examples/foundational/55a-update-settings-deepgram-sagemaker-stt.py rename to examples/55a-update-settings-deepgram-sagemaker-stt.py diff --git a/examples/foundational/55a-update-settings-deepgram-stt.py b/examples/55a-update-settings-deepgram-stt.py similarity index 100% rename from examples/foundational/55a-update-settings-deepgram-stt.py rename to examples/55a-update-settings-deepgram-stt.py diff --git a/examples/foundational/55b-update-settings-azure-stt.py b/examples/55b-update-settings-azure-stt.py similarity index 100% rename from examples/foundational/55b-update-settings-azure-stt.py rename to examples/55b-update-settings-azure-stt.py diff --git a/examples/foundational/55c-update-settings-google-stt.py b/examples/55c-update-settings-google-stt.py similarity index 100% rename from examples/foundational/55c-update-settings-google-stt.py rename to examples/55c-update-settings-google-stt.py diff --git a/examples/foundational/55d-update-settings-assemblyai-stt.py b/examples/55d-update-settings-assemblyai-stt.py similarity index 100% rename from examples/foundational/55d-update-settings-assemblyai-stt.py rename to examples/55d-update-settings-assemblyai-stt.py diff --git a/examples/foundational/55e-update-settings-gladia-stt.py b/examples/55e-update-settings-gladia-stt.py similarity index 100% rename from examples/foundational/55e-update-settings-gladia-stt.py rename to examples/55e-update-settings-gladia-stt.py diff --git a/examples/foundational/55f-update-settings-elevenlabs-realtime-stt.py b/examples/55f-update-settings-elevenlabs-realtime-stt.py similarity index 100% rename from examples/foundational/55f-update-settings-elevenlabs-realtime-stt.py rename to examples/55f-update-settings-elevenlabs-realtime-stt.py diff --git a/examples/foundational/55g-update-settings-elevenlabs-stt.py b/examples/55g-update-settings-elevenlabs-stt.py similarity index 100% rename from examples/foundational/55g-update-settings-elevenlabs-stt.py rename to examples/55g-update-settings-elevenlabs-stt.py diff --git a/examples/foundational/55h-update-settings-speechmatics-stt.py b/examples/55h-update-settings-speechmatics-stt.py similarity index 100% rename from examples/foundational/55h-update-settings-speechmatics-stt.py rename to examples/55h-update-settings-speechmatics-stt.py diff --git a/examples/foundational/55i-update-settings-whisper-api-stt.py b/examples/55i-update-settings-whisper-api-stt.py similarity index 100% rename from examples/foundational/55i-update-settings-whisper-api-stt.py rename to examples/55i-update-settings-whisper-api-stt.py diff --git a/examples/foundational/55j-update-settings-sarvam-stt.py b/examples/55j-update-settings-sarvam-stt.py similarity index 100% rename from examples/foundational/55j-update-settings-sarvam-stt.py rename to examples/55j-update-settings-sarvam-stt.py diff --git a/examples/foundational/55k-update-settings-soniox-stt.py b/examples/55k-update-settings-soniox-stt.py similarity index 100% rename from examples/foundational/55k-update-settings-soniox-stt.py rename to examples/55k-update-settings-soniox-stt.py diff --git a/examples/foundational/55l-update-settings-aws-transcribe-stt.py b/examples/55l-update-settings-aws-transcribe-stt.py similarity index 100% rename from examples/foundational/55l-update-settings-aws-transcribe-stt.py rename to examples/55l-update-settings-aws-transcribe-stt.py diff --git a/examples/foundational/55m-update-settings-cartesia-stt.py b/examples/55m-update-settings-cartesia-stt.py similarity index 100% rename from examples/foundational/55m-update-settings-cartesia-stt.py rename to examples/55m-update-settings-cartesia-stt.py diff --git a/examples/foundational/55n-update-settings-cartesia-http-tts.py b/examples/55n-update-settings-cartesia-http-tts.py similarity index 100% rename from examples/foundational/55n-update-settings-cartesia-http-tts.py rename to examples/55n-update-settings-cartesia-http-tts.py diff --git a/examples/foundational/55n-update-settings-cartesia-tts.py b/examples/55n-update-settings-cartesia-tts.py similarity index 100% rename from examples/foundational/55n-update-settings-cartesia-tts.py rename to examples/55n-update-settings-cartesia-tts.py diff --git a/examples/foundational/55o-update-settings-elevenlabs-http-tts.py b/examples/55o-update-settings-elevenlabs-http-tts.py similarity index 100% rename from examples/foundational/55o-update-settings-elevenlabs-http-tts.py rename to examples/55o-update-settings-elevenlabs-http-tts.py diff --git a/examples/foundational/55o-update-settings-elevenlabs-tts.py b/examples/55o-update-settings-elevenlabs-tts.py similarity index 100% rename from examples/foundational/55o-update-settings-elevenlabs-tts.py rename to examples/55o-update-settings-elevenlabs-tts.py diff --git a/examples/foundational/55p-update-settings-openai-tts.py b/examples/55p-update-settings-openai-tts.py similarity index 100% rename from examples/foundational/55p-update-settings-openai-tts.py rename to examples/55p-update-settings-openai-tts.py diff --git a/examples/foundational/55q-update-settings-deepgram-http-tts.py b/examples/55q-update-settings-deepgram-http-tts.py similarity index 100% rename from examples/foundational/55q-update-settings-deepgram-http-tts.py rename to examples/55q-update-settings-deepgram-http-tts.py diff --git a/examples/foundational/55q-update-settings-deepgram-sagemaker-tts.py b/examples/55q-update-settings-deepgram-sagemaker-tts.py similarity index 100% rename from examples/foundational/55q-update-settings-deepgram-sagemaker-tts.py rename to examples/55q-update-settings-deepgram-sagemaker-tts.py diff --git a/examples/foundational/55q-update-settings-deepgram-tts.py b/examples/55q-update-settings-deepgram-tts.py similarity index 100% rename from examples/foundational/55q-update-settings-deepgram-tts.py rename to examples/55q-update-settings-deepgram-tts.py diff --git a/examples/foundational/55r-update-settings-azure-http-tts.py b/examples/55r-update-settings-azure-http-tts.py similarity index 100% rename from examples/foundational/55r-update-settings-azure-http-tts.py rename to examples/55r-update-settings-azure-http-tts.py diff --git a/examples/foundational/55r-update-settings-azure-tts.py b/examples/55r-update-settings-azure-tts.py similarity index 100% rename from examples/foundational/55r-update-settings-azure-tts.py rename to examples/55r-update-settings-azure-tts.py diff --git a/examples/foundational/55s-update-settings-google-http-tts.py b/examples/55s-update-settings-google-http-tts.py similarity index 100% rename from examples/foundational/55s-update-settings-google-http-tts.py rename to examples/55s-update-settings-google-http-tts.py diff --git a/examples/foundational/55s-update-settings-google-stream-tts.py b/examples/55s-update-settings-google-stream-tts.py similarity index 100% rename from examples/foundational/55s-update-settings-google-stream-tts.py rename to examples/55s-update-settings-google-stream-tts.py diff --git a/examples/foundational/55t-update-settings-piper-http-tts.py b/examples/55t-update-settings-piper-http-tts.py similarity index 100% rename from examples/foundational/55t-update-settings-piper-http-tts.py rename to examples/55t-update-settings-piper-http-tts.py diff --git a/examples/foundational/55t-update-settings-piper-tts.py b/examples/55t-update-settings-piper-tts.py similarity index 100% rename from examples/foundational/55t-update-settings-piper-tts.py rename to examples/55t-update-settings-piper-tts.py diff --git a/examples/foundational/55u-update-settings-rime-http-tts.py b/examples/55u-update-settings-rime-http-tts.py similarity index 100% rename from examples/foundational/55u-update-settings-rime-http-tts.py rename to examples/55u-update-settings-rime-http-tts.py diff --git a/examples/foundational/55u-update-settings-rime-tts.py b/examples/55u-update-settings-rime-tts.py similarity index 100% rename from examples/foundational/55u-update-settings-rime-tts.py rename to examples/55u-update-settings-rime-tts.py diff --git a/examples/foundational/55v-update-settings-lmnt-tts.py b/examples/55v-update-settings-lmnt-tts.py similarity index 100% rename from examples/foundational/55v-update-settings-lmnt-tts.py rename to examples/55v-update-settings-lmnt-tts.py diff --git a/examples/foundational/55w-update-settings-fish-tts.py b/examples/55w-update-settings-fish-tts.py similarity index 100% rename from examples/foundational/55w-update-settings-fish-tts.py rename to examples/55w-update-settings-fish-tts.py diff --git a/examples/foundational/55x-update-settings-minimax-tts.py b/examples/55x-update-settings-minimax-tts.py similarity index 100% rename from examples/foundational/55x-update-settings-minimax-tts.py rename to examples/55x-update-settings-minimax-tts.py diff --git a/examples/foundational/55y-update-settings-groq-tts.py b/examples/55y-update-settings-groq-tts.py similarity index 100% rename from examples/foundational/55y-update-settings-groq-tts.py rename to examples/55y-update-settings-groq-tts.py diff --git a/examples/foundational/55z-update-settings-hume-tts.py b/examples/55z-update-settings-hume-tts.py similarity index 100% rename from examples/foundational/55z-update-settings-hume-tts.py rename to examples/55z-update-settings-hume-tts.py diff --git a/examples/foundational/55za-update-settings-neuphonic-http-tts.py b/examples/55za-update-settings-neuphonic-http-tts.py similarity index 100% rename from examples/foundational/55za-update-settings-neuphonic-http-tts.py rename to examples/55za-update-settings-neuphonic-http-tts.py diff --git a/examples/foundational/55za-update-settings-neuphonic-tts.py b/examples/55za-update-settings-neuphonic-tts.py similarity index 100% rename from examples/foundational/55za-update-settings-neuphonic-tts.py rename to examples/55za-update-settings-neuphonic-tts.py diff --git a/examples/foundational/55zb-update-settings-inworld-http-tts.py b/examples/55zb-update-settings-inworld-http-tts.py similarity index 100% rename from examples/foundational/55zb-update-settings-inworld-http-tts.py rename to examples/55zb-update-settings-inworld-http-tts.py diff --git a/examples/foundational/55zb-update-settings-inworld-tts.py b/examples/55zb-update-settings-inworld-tts.py similarity index 100% rename from examples/foundational/55zb-update-settings-inworld-tts.py rename to examples/55zb-update-settings-inworld-tts.py diff --git a/examples/foundational/55zc-update-settings-gemini-tts.py b/examples/55zc-update-settings-gemini-tts.py similarity index 100% rename from examples/foundational/55zc-update-settings-gemini-tts.py rename to examples/55zc-update-settings-gemini-tts.py diff --git a/examples/foundational/55zd-update-settings-aws-polly-tts.py b/examples/55zd-update-settings-aws-polly-tts.py similarity index 100% rename from examples/foundational/55zd-update-settings-aws-polly-tts.py rename to examples/55zd-update-settings-aws-polly-tts.py diff --git a/examples/foundational/55ze-update-settings-sarvam-http-tts.py b/examples/55ze-update-settings-sarvam-http-tts.py similarity index 100% rename from examples/foundational/55ze-update-settings-sarvam-http-tts.py rename to examples/55ze-update-settings-sarvam-http-tts.py diff --git a/examples/foundational/55ze-update-settings-sarvam-tts.py b/examples/55ze-update-settings-sarvam-tts.py similarity index 100% rename from examples/foundational/55ze-update-settings-sarvam-tts.py rename to examples/55ze-update-settings-sarvam-tts.py diff --git a/examples/foundational/55zf-update-settings-camb-tts.py b/examples/55zf-update-settings-camb-tts.py similarity index 100% rename from examples/foundational/55zf-update-settings-camb-tts.py rename to examples/55zf-update-settings-camb-tts.py diff --git a/examples/foundational/55zg-update-settings-kokoro-tts.py b/examples/55zg-update-settings-kokoro-tts.py similarity index 100% rename from examples/foundational/55zg-update-settings-kokoro-tts.py rename to examples/55zg-update-settings-kokoro-tts.py diff --git a/examples/foundational/55zh-update-settings-resembleai-tts.py b/examples/55zh-update-settings-resembleai-tts.py similarity index 100% rename from examples/foundational/55zh-update-settings-resembleai-tts.py rename to examples/55zh-update-settings-resembleai-tts.py diff --git a/examples/foundational/55zi-update-settings-azure-llm.py b/examples/55zi-update-settings-azure-llm.py similarity index 100% rename from examples/foundational/55zi-update-settings-azure-llm.py rename to examples/55zi-update-settings-azure-llm.py diff --git a/examples/foundational/55zi-update-settings-openai-llm.py b/examples/55zi-update-settings-openai-llm.py similarity index 100% rename from examples/foundational/55zi-update-settings-openai-llm.py rename to examples/55zi-update-settings-openai-llm.py diff --git a/examples/foundational/55zi-update-settings-openai-responses-http-llm.py b/examples/55zi-update-settings-openai-responses-http-llm.py similarity index 100% rename from examples/foundational/55zi-update-settings-openai-responses-http-llm.py rename to examples/55zi-update-settings-openai-responses-http-llm.py diff --git a/examples/foundational/55zi-update-settings-openai-responses-llm.py b/examples/55zi-update-settings-openai-responses-llm.py similarity index 100% rename from examples/foundational/55zi-update-settings-openai-responses-llm.py rename to examples/55zi-update-settings-openai-responses-llm.py diff --git a/examples/foundational/55zj-update-settings-anthropic-llm.py b/examples/55zj-update-settings-anthropic-llm.py similarity index 100% rename from examples/foundational/55zj-update-settings-anthropic-llm.py rename to examples/55zj-update-settings-anthropic-llm.py diff --git a/examples/foundational/55zk-update-settings-google-llm.py b/examples/55zk-update-settings-google-llm.py similarity index 100% rename from examples/foundational/55zk-update-settings-google-llm.py rename to examples/55zk-update-settings-google-llm.py diff --git a/examples/foundational/55zk-update-settings-google-vertex-llm.py b/examples/55zk-update-settings-google-vertex-llm.py similarity index 100% rename from examples/foundational/55zk-update-settings-google-vertex-llm.py rename to examples/55zk-update-settings-google-vertex-llm.py diff --git a/examples/foundational/55zl-update-settings-azure-realtime.py b/examples/55zl-update-settings-azure-realtime.py similarity index 100% rename from examples/foundational/55zl-update-settings-azure-realtime.py rename to examples/55zl-update-settings-azure-realtime.py diff --git a/examples/foundational/55zl-update-settings-openai-realtime.py b/examples/55zl-update-settings-openai-realtime.py similarity index 100% rename from examples/foundational/55zl-update-settings-openai-realtime.py rename to examples/55zl-update-settings-openai-realtime.py diff --git a/examples/foundational/55zm-update-settings-gemini-live-vertex.py b/examples/55zm-update-settings-gemini-live-vertex.py similarity index 100% rename from examples/foundational/55zm-update-settings-gemini-live-vertex.py rename to examples/55zm-update-settings-gemini-live-vertex.py diff --git a/examples/foundational/55zm-update-settings-gemini-live.py b/examples/55zm-update-settings-gemini-live.py similarity index 100% rename from examples/foundational/55zm-update-settings-gemini-live.py rename to examples/55zm-update-settings-gemini-live.py diff --git a/examples/foundational/55zn-update-settings-ultravox-realtime.py b/examples/55zn-update-settings-ultravox-realtime.py similarity index 100% rename from examples/foundational/55zn-update-settings-ultravox-realtime.py rename to examples/55zn-update-settings-ultravox-realtime.py diff --git a/examples/foundational/55zo-update-settings-grok-realtime.py b/examples/55zo-update-settings-grok-realtime.py similarity index 100% rename from examples/foundational/55zo-update-settings-grok-realtime.py rename to examples/55zo-update-settings-grok-realtime.py diff --git a/examples/foundational/55zp-update-settings-aws-bedrock-llm.py b/examples/55zp-update-settings-aws-bedrock-llm.py similarity index 100% rename from examples/foundational/55zp-update-settings-aws-bedrock-llm.py rename to examples/55zp-update-settings-aws-bedrock-llm.py diff --git a/examples/foundational/55zq-update-settings-fal-stt.py b/examples/55zq-update-settings-fal-stt.py similarity index 100% rename from examples/foundational/55zq-update-settings-fal-stt.py rename to examples/55zq-update-settings-fal-stt.py diff --git a/examples/foundational/55zr-update-settings-gradium-stt.py b/examples/55zr-update-settings-gradium-stt.py similarity index 100% rename from examples/foundational/55zr-update-settings-gradium-stt.py rename to examples/55zr-update-settings-gradium-stt.py diff --git a/examples/foundational/55zs-update-settings-whisper-mlx-stt.py b/examples/55zs-update-settings-whisper-mlx-stt.py similarity index 100% rename from examples/foundational/55zs-update-settings-whisper-mlx-stt.py rename to examples/55zs-update-settings-whisper-mlx-stt.py diff --git a/examples/foundational/55zs-update-settings-whisper-stt.py b/examples/55zs-update-settings-whisper-stt.py similarity index 100% rename from examples/foundational/55zs-update-settings-whisper-stt.py rename to examples/55zs-update-settings-whisper-stt.py diff --git a/examples/foundational/55zt-update-settings-nvidia-segmented-stt.py b/examples/55zt-update-settings-nvidia-segmented-stt.py similarity index 100% rename from examples/foundational/55zt-update-settings-nvidia-segmented-stt.py rename to examples/55zt-update-settings-nvidia-segmented-stt.py diff --git a/examples/foundational/55zt-update-settings-nvidia-stt.py b/examples/55zt-update-settings-nvidia-stt.py similarity index 100% rename from examples/foundational/55zt-update-settings-nvidia-stt.py rename to examples/55zt-update-settings-nvidia-stt.py diff --git a/examples/foundational/55zu-update-settings-openai-realtime-stt.py b/examples/55zu-update-settings-openai-realtime-stt.py similarity index 100% rename from examples/foundational/55zu-update-settings-openai-realtime-stt.py rename to examples/55zu-update-settings-openai-realtime-stt.py diff --git a/examples/foundational/55zv-update-settings-asyncai-http-tts.py b/examples/55zv-update-settings-asyncai-http-tts.py similarity index 100% rename from examples/foundational/55zv-update-settings-asyncai-http-tts.py rename to examples/55zv-update-settings-asyncai-http-tts.py diff --git a/examples/foundational/55zv-update-settings-asyncai-tts.py b/examples/55zv-update-settings-asyncai-tts.py similarity index 100% rename from examples/foundational/55zv-update-settings-asyncai-tts.py rename to examples/55zv-update-settings-asyncai-tts.py diff --git a/examples/foundational/55zw-update-settings-gradium-tts.py b/examples/55zw-update-settings-gradium-tts.py similarity index 100% rename from examples/foundational/55zw-update-settings-gradium-tts.py rename to examples/55zw-update-settings-gradium-tts.py diff --git a/examples/foundational/55zx-update-settings-cerebras-llm.py b/examples/55zx-update-settings-cerebras-llm.py similarity index 100% rename from examples/foundational/55zx-update-settings-cerebras-llm.py rename to examples/55zx-update-settings-cerebras-llm.py diff --git a/examples/foundational/55zy-update-settings-deepseek-llm.py b/examples/55zy-update-settings-deepseek-llm.py similarity index 100% rename from examples/foundational/55zy-update-settings-deepseek-llm.py rename to examples/55zy-update-settings-deepseek-llm.py diff --git a/examples/foundational/55zz-update-settings-fireworks-llm.py b/examples/55zz-update-settings-fireworks-llm.py similarity index 100% rename from examples/foundational/55zz-update-settings-fireworks-llm.py rename to examples/55zz-update-settings-fireworks-llm.py diff --git a/examples/foundational/55zza-update-settings-grok-llm.py b/examples/55zza-update-settings-grok-llm.py similarity index 100% rename from examples/foundational/55zza-update-settings-grok-llm.py rename to examples/55zza-update-settings-grok-llm.py diff --git a/examples/foundational/55zzb-update-settings-groq-llm.py b/examples/55zzb-update-settings-groq-llm.py similarity index 100% rename from examples/foundational/55zzb-update-settings-groq-llm.py rename to examples/55zzb-update-settings-groq-llm.py diff --git a/examples/foundational/55zzc-update-settings-mistral-llm.py b/examples/55zzc-update-settings-mistral-llm.py similarity index 100% rename from examples/foundational/55zzc-update-settings-mistral-llm.py rename to examples/55zzc-update-settings-mistral-llm.py diff --git a/examples/foundational/55zzd-update-settings-nvidia-llm.py b/examples/55zzd-update-settings-nvidia-llm.py similarity index 100% rename from examples/foundational/55zzd-update-settings-nvidia-llm.py rename to examples/55zzd-update-settings-nvidia-llm.py diff --git a/examples/foundational/55zze-update-settings-ollama-llm.py b/examples/55zze-update-settings-ollama-llm.py similarity index 100% rename from examples/foundational/55zze-update-settings-ollama-llm.py rename to examples/55zze-update-settings-ollama-llm.py diff --git a/examples/foundational/55zzf-update-settings-openrouter-llm.py b/examples/55zzf-update-settings-openrouter-llm.py similarity index 100% rename from examples/foundational/55zzf-update-settings-openrouter-llm.py rename to examples/55zzf-update-settings-openrouter-llm.py diff --git a/examples/foundational/55zzg-update-settings-perplexity-llm.py b/examples/55zzg-update-settings-perplexity-llm.py similarity index 100% rename from examples/foundational/55zzg-update-settings-perplexity-llm.py rename to examples/55zzg-update-settings-perplexity-llm.py diff --git a/examples/foundational/55zzh-update-settings-qwen-llm.py b/examples/55zzh-update-settings-qwen-llm.py similarity index 100% rename from examples/foundational/55zzh-update-settings-qwen-llm.py rename to examples/55zzh-update-settings-qwen-llm.py diff --git a/examples/foundational/55zzi-update-settings-sambanova-llm.py b/examples/55zzi-update-settings-sambanova-llm.py similarity index 100% rename from examples/foundational/55zzi-update-settings-sambanova-llm.py rename to examples/55zzi-update-settings-sambanova-llm.py diff --git a/examples/foundational/55zzj-update-settings-together-llm.py b/examples/55zzj-update-settings-together-llm.py similarity index 100% rename from examples/foundational/55zzj-update-settings-together-llm.py rename to examples/55zzj-update-settings-together-llm.py diff --git a/examples/foundational/55zzk-update-settings-aws-nova-sonic-llm.py b/examples/55zzk-update-settings-aws-nova-sonic-llm.py similarity index 100% rename from examples/foundational/55zzk-update-settings-aws-nova-sonic-llm.py rename to examples/55zzk-update-settings-aws-nova-sonic-llm.py diff --git a/examples/foundational/55zzl-update-settings-nvidia-tts.py b/examples/55zzl-update-settings-nvidia-tts.py similarity index 100% rename from examples/foundational/55zzl-update-settings-nvidia-tts.py rename to examples/55zzl-update-settings-nvidia-tts.py diff --git a/examples/foundational/55zzm-update-settings-speechmatics-tts.py b/examples/55zzm-update-settings-speechmatics-tts.py similarity index 100% rename from examples/foundational/55zzm-update-settings-speechmatics-tts.py rename to examples/55zzm-update-settings-speechmatics-tts.py diff --git a/examples/foundational/55zzn-update-settings-groq-stt.py b/examples/55zzn-update-settings-groq-stt.py similarity index 100% rename from examples/foundational/55zzn-update-settings-groq-stt.py rename to examples/55zzn-update-settings-groq-stt.py diff --git a/examples/foundational/55zzp-update-settings-xtts-tts.py b/examples/55zzp-update-settings-xtts-tts.py similarity index 100% rename from examples/foundational/55zzp-update-settings-xtts-tts.py rename to examples/55zzp-update-settings-xtts-tts.py diff --git a/examples/foundational/55zzq-update-settings-sarvam-llm.py b/examples/55zzq-update-settings-sarvam-llm.py similarity index 100% rename from examples/foundational/55zzq-update-settings-sarvam-llm.py rename to examples/55zzq-update-settings-sarvam-llm.py diff --git a/examples/foundational/56-lemonslice-transport.py b/examples/56-lemonslice-transport.py similarity index 100% rename from examples/foundational/56-lemonslice-transport.py rename to examples/56-lemonslice-transport.py diff --git a/examples/foundational/57-custom-video-track.py b/examples/57-custom-video-track.py similarity index 98% rename from examples/foundational/57-custom-video-track.py rename to examples/57-custom-video-track.py index 274ab6a5e..1e6190a3b 100644 --- a/examples/foundational/57-custom-video-track.py +++ b/examples/57-custom-video-track.py @@ -13,8 +13,6 @@ This example outputs two video track simultaneously: The pattern generator pushes frames to the default camera. A second processor (BlueTintProcessor) duplicates each frame, applies a blue tint, and pushes it to the "blue" custom video destination. - -Run with: python examples/foundational/56-custom-video-track.py -t daily """ import asyncio diff --git a/examples/README.md b/examples/README.md index 7eae41021..e8a0dd9bf 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,30 +1,144 @@ # Pipecat Examples -This directory contains examples to help you learn how to build with Pipecat. +This directory contains examples showing how to build voice and multimodal agents with Pipecat. Each example demonstrates specific features, progressing from basic to advanced concepts. -## Getting Started +## Setup -New to Pipecat? Start here: +1. Follow the [README](https://github.com/pipecat-ai/pipecat/blob/main/README.md#%EF%B8%8F-contributing-to-the-framework) steps to get your local environment configured. -- **[Client/Server Web](client-server-web/)** - Learn to build web applications with Pipecat's client SDKs _(coming soon)_ -- **[Phone Bot with Twilio](phone-bot-twilio/)** - Connect your bot to a phone number _(coming soon)_ + > **Run from root directory**: Make sure you are running the steps from the root directory. -## Foundational Examples + > **Using local audio?**: The `LocalAudioTransport` requires a system dependency for `portaudio`. Install the dependency to use the transport. -Single-file examples that introduce core Pipecat concepts one at a time. These examples: +2. Copy the [`env.example`](../env.example) file and add API keys for services you plan to use: -- Build on each other progressively -- Focus on specific features or integrations -- Are used for testing with every Pipecat release + ```bash + cp env.example .env + # Edit .env with your API keys + ``` -See the **[Foundational Examples README](foundational/)** for the complete list. +3. Navigate to the examples directory if you aren't already there: -## More Advanced Examples + ```bash + cd examples + ``` -Ready to explore complex use cases? Visit **[pipecat-examples](https://github.com/pipecat-ai/pipecat-examples)** for: +4. Run any example: -- Production-ready applications -- Multi-platform client implementations -- Telephony integrations -- Multimodal and creative applications -- Deployment and monitoring examples + ```bash + uv run python 01-say-one-thing.py + ``` + +5. Open the web interface at http://localhost:7860/client/ and click "Connect" + +## Running examples with other transports + +Most examples support running with other transports, like Twilio or Daily. + +### Daily + +You need to create a Daily account at https://dashboard.daily.co/u/signup. Once signed up, you can create your own room from the dashboard and set the environment variables `DAILY_ROOM_URL` and `DAILY_API_KEY`. Alternatively, you can let the example create a room for you (still needs `DAILY_API_KEY` environment variable). Then, start any example with `-t daily`: + +```bash +uv run 07-interruptible.py -t daily +``` + +### Twilio + +It is also possible to run the example through a Twilio phone number. You will need to setup a few things: + +1. Install and run [ngrok](https://ngrok.com/download). + +```bash +ngrok http 7860 +``` + +2. Configure your Twilio phone number. One way is to setup a TwiML app and set the request URL to the ngrok URL from step (1). Then, set your phone number to use the new TwiML app. + +Then, run the example with: + +```bash +uv run 07-interruptible.py -t twilio -x NGROK_HOST_NAME +``` + +## Examples by Feature + +### Basics + +- **[01-say-one-thing.py](./01-say-one-thing.py)**: Most basic bot that says one phrase and exits (Transport, TTS, Event handlers) +- **[02-llm-say-one-thing.py](./02-llm-say-one-thing.py)**: Bot generates a response with an LLM (LLM initialization) +- **[03-still-frame.py](./03-still-frame.py)**: Displays a static image (Video transport, Image service) +- **[04-transport.py](./04-transport.py)**: Different transport options (WebRTC, Daily, Livekit) + +### Conversational AI + +- **[07-interruptible.py](./07-interruptible.py)**: Basic voice assistant bot (STT, TTS, LLM, Interruptible speech) +- **[10-wake-phrase.py](./10-wake-phrase.py)**: Bot activated by wake phrase (WakeCheckFilter) +- **[22-natural-conversation.py](./22-natural-conversation.py)**: Smart turn detection (Multiple LLMs, Turn management) +- **[38-smart-turn-fal.py](./38-smart-turn-fal.py)**: ML-based turn detection (Fal service, Local models) + +### Common Utilities + +- **[17-detect-user-idle.py](./17-detect-user-idle.py)**: Handle inactive users (UserIdleProcessor) +- **[24-user-mute-strategy.py](./24-user-mute-strategy.py)**: Selectively mute user input (LLMUserAggregator user mute strategies) +- **[28-transcription-processor.py](./28-transcription-processor.py)**: Record conversation text (TranscriptProcessor) +- **[30-observer.py](./30-observer.py)**: Access frame data (Custom observers) +- **[31-heartbeats.py](./31-heartbeats.py)**: Detect idle pipelines (Pipeline monitoring) +- **[34-audio-recording.py](./34-audio-recording.py)**: Record conversation audio (Composite and track-level recording) + +### Advanced LLM Features + +- **[14-function-calling.py](./14-function-calling.py)**: Bot with tool usage (Function schemas, Tool registration) +- **[20a-persistent-context-openai.py](./20a-persistent-context-openai.py)**: Persistent conversation context (Memory management) +- **[32-gemini-grounding-metadata.py](./32-gemini-grounding-metadata.py)**: Web search capabilities (Google search integration) +- **[33-gemini-rag.py](./33-gemini-rag.py)**: Retrieval-augmented generation (Data sources, Grounding) +- **[37-mem0.py](./37-mem0.py)**: Long-term agent memory (Mem0 service integration) + +### Media Handling + +- **[05-sync-speech-and-images.py](./05-sync-speech-and-images.py)**: Synchronized narration with images (Custom processors, SyncParallelPipeline) +- **[06a-image-sync.py](./06a-image-sync.py)**: Dynamic image updates while speaking (Synchronized A/V pipelines) +- **[09-mirror.py](./09-mirror.py)**: Mirror user's audio and video (Custom frame processors) +- **[11-sound-effects.py](./11-sound-effects.py)**: Add sounds when bot speaks (Sound playback, Event synchronization) +- **[23-bot-background-sound.py](./23-bot-background-sound.py)**: Play background audio (SoundfileMixer) + +### Vision & Multimodal + +- **[12a-describe-video-gemini-flash.py](./12a-describe-video-gemini-flash.py)**: Bot describes user's video (Video input, Multimodal LLMs) +- **[26c-gemini-live-video.py](./26c-gemini-live-video.py)**: Gemini with video input (Streaming video, Function calls) + +### Voice & Language + +- **[13-transcription.py](./13-transcription.py)**: Speech transcription demo (STT providers, Real-time transcription) +- **[15-switch-voices.py](./15-switch-voices.py)**: Dynamic voice/language changing (ParallelPipelines, FunctionFilters) +- **[25-google-audio-in.py](./25-google-audio-in.py)**: Gemini for speech recognition (Alternative transcription) +- **[35-pattern-pair-voice-switching.py](./35-pattern-pair-voice-switching.py)**: Dynamic TTS voice switching (XML parsing, PatternPairAggregator) +- **[36-user-email-gathering.py](./36-user-email-gathering.py)**: Spelling mode for TTS (Confirmation patterns, XML tags) + +### Integration Examples + +- **[18-gstreamer-filesrc.py](./18-gstreamer-filesrc.py)**: GStreamer video streaming (Video processing) +- **[19-openai-realtime-beta.py](./19-openai-realtime-beta.py)**: OpenAI Speech-to-Speech (Direct S2S, Function calls) +- **[21-tavus-layer-tavus-transport.py](./21-tavus-layer-tavus-transport.py)**: Tavus digital twin (Avatar integration) +- **[27-simli-layer.py](./27-simli-layer.py)**: Simli avatar integration (Video synchronization) +- **[56-lemonslice-transport.py](./56-lemonslice-transport.py)**: LemonSlice avatar integration (A/V Synced Avatar integration) + +### Performance & Optimization + +- **[16-gpu-container-local-bot.py](./16-gpu-container-local-bot.py)**: GPU-accelerated local bot (Performance measurement) + +## Advanced Usage + +### Customizing Network Settings + +```bash +uv run python --host 0.0.0.0 --port 8080 +``` + +### Troubleshooting + +- **No audio/video**: Check browser permissions for microphone and camera +- **Connection errors**: Verify API keys in `.env` file +- **Port conflicts**: Use `--port` to change the port + +For more examples, visit our the [pipecat-examples repository](https://github.com/pipecat-ai/pipecat-examples). diff --git a/examples/foundational/assets/cat.jpg b/examples/assets/cat.jpg similarity index 100% rename from examples/foundational/assets/cat.jpg rename to examples/assets/cat.jpg diff --git a/examples/foundational/assets/ding1.wav b/examples/assets/ding1.wav similarity index 100% rename from examples/foundational/assets/ding1.wav rename to examples/assets/ding1.wav diff --git a/examples/foundational/assets/ding2.wav b/examples/assets/ding2.wav similarity index 100% rename from examples/foundational/assets/ding2.wav rename to examples/assets/ding2.wav diff --git a/examples/foundational/assets/moondream.png b/examples/assets/moondream.png similarity index 100% rename from examples/foundational/assets/moondream.png rename to examples/assets/moondream.png diff --git a/examples/foundational/assets/office-ambience-24000-mono.mp3 b/examples/assets/office-ambience-24000-mono.mp3 similarity index 100% rename from examples/foundational/assets/office-ambience-24000-mono.mp3 rename to examples/assets/office-ambience-24000-mono.mp3 diff --git a/examples/foundational/assets/rag-content.txt b/examples/assets/rag-content.txt similarity index 100% rename from examples/foundational/assets/rag-content.txt rename to examples/assets/rag-content.txt diff --git a/examples/foundational/assets/sc-default.png b/examples/assets/sc-default.png similarity index 100% rename from examples/foundational/assets/sc-default.png rename to examples/assets/sc-default.png diff --git a/examples/foundational/assets/sc-listen-1.png b/examples/assets/sc-listen-1.png similarity index 100% rename from examples/foundational/assets/sc-listen-1.png rename to examples/assets/sc-listen-1.png diff --git a/examples/foundational/assets/sc-listen-2.png b/examples/assets/sc-listen-2.png similarity index 100% rename from examples/foundational/assets/sc-listen-2.png rename to examples/assets/sc-listen-2.png diff --git a/examples/foundational/assets/sc-talk.png b/examples/assets/sc-talk.png similarity index 100% rename from examples/foundational/assets/sc-talk.png rename to examples/assets/sc-talk.png diff --git a/examples/foundational/assets/sc-think-1.png b/examples/assets/sc-think-1.png similarity index 100% rename from examples/foundational/assets/sc-think-1.png rename to examples/assets/sc-think-1.png diff --git a/examples/foundational/assets/sc-think-2.png b/examples/assets/sc-think-2.png similarity index 100% rename from examples/foundational/assets/sc-think-2.png rename to examples/assets/sc-think-2.png diff --git a/examples/foundational/assets/sc-think-3.png b/examples/assets/sc-think-3.png similarity index 100% rename from examples/foundational/assets/sc-think-3.png rename to examples/assets/sc-think-3.png diff --git a/examples/foundational/assets/sc-think-4.png b/examples/assets/sc-think-4.png similarity index 100% rename from examples/foundational/assets/sc-think-4.png rename to examples/assets/sc-think-4.png diff --git a/examples/foundational/assets/speaking.png b/examples/assets/speaking.png similarity index 100% rename from examples/foundational/assets/speaking.png rename to examples/assets/speaking.png diff --git a/examples/foundational/assets/waiting.png b/examples/assets/waiting.png similarity index 100% rename from examples/foundational/assets/waiting.png rename to examples/assets/waiting.png diff --git a/examples/foundational/README.md b/examples/foundational/README.md deleted file mode 100644 index 04e88b7e7..000000000 --- a/examples/foundational/README.md +++ /dev/null @@ -1,144 +0,0 @@ -# Pipecat Foundational Examples - -This directory contains examples showing how to build voice and multimodal agents with Pipecat. Each example demonstrates specific features, progressing from basic to advanced concepts. - -## Setup - -1. Follow the [README](https://github.com/pipecat-ai/pipecat/blob/main/README.md#%EF%B8%8F-contributing-to-the-framework) steps to get your local environment configured. - - > **Run from root directory**: Make sure you are running the steps from the root directory. - - > **Using local audio?**: The `LocalAudioTransport` requires a system dependency for `portaudio`. Install the dependency to use the transport. - -2. Copy the [`env.example`](../../env.example) file and add API keys for services you plan to use: - - ```bash - cp env.example .env - # Edit .env with your API keys - ``` - -3. Navigate to the examples directory if you aren't already there: - - ```bash - cd examples/foundational - ``` - -4. Run any example: - - ```bash - uv run python 01-say-one-thing.py - ``` - -5. Open the web interface at http://localhost:7860/client/ and click "Connect" - -## Running examples with other transports - -Most examples support running with other transports, like Twilio or Daily. - -### Daily - -You need to create a Daily account at https://dashboard.daily.co/u/signup. Once signed up, you can create your own room from the dashboard and set the environment variables `DAILY_ROOM_URL` and `DAILY_API_KEY`. Alternatively, you can let the example create a room for you (still needs `DAILY_API_KEY` environment variable). Then, start any example with `-t daily`: - -```bash -uv run 07-interruptible.py -t daily -``` - -### Twilio - -It is also possible to run the example through a Twilio phone number. You will need to setup a few things: - -1. Install and run [ngrok](https://ngrok.com/download). - -```bash -ngrok http 7860 -``` - -2. Configure your Twilio phone number. One way is to setup a TwiML app and set the request URL to the ngrok URL from step (1). Then, set your phone number to use the new TwiML app. - -Then, run the example with: - -```bash -uv run 07-interruptible.py -t twilio -x NGROK_HOST_NAME -``` - -## Examples by Feature - -### Basics - -- **[01-say-one-thing.py](./01-say-one-thing.py)**: Most basic bot that says one phrase and exits (Transport, TTS, Event handlers) -- **[02-llm-say-one-thing.py](./02-llm-say-one-thing.py)**: Bot generates a response with an LLM (LLM initialization) -- **[03-still-frame.py](./03-still-frame.py)**: Displays a static image (Video transport, Image service) -- **[04-transport.py](./04-transport.py)**: Different transport options (WebRTC, Daily, Livekit) - -### Conversational AI - -- **[07-interruptible.py](./07-interruptible.py)**: Basic voice assistant bot (STT, TTS, LLM, Interruptible speech) -- **[10-wake-phrase.py](./10-wake-phrase.py)**: Bot activated by wake phrase (WakeCheckFilter) -- **[22-natural-conversation.py](./22-natural-conversation.py)**: Smart turn detection (Multiple LLMs, Turn management) -- **[38-smart-turn-fal.py](./38-smart-turn-fal.py)**: ML-based turn detection (Fal service, Local models) - -### Common Utilities - -- **[17-detect-user-idle.py](./17-detect-user-idle.py)**: Handle inactive users (UserIdleProcessor) -- **[24-user-mute-strategy.py](./24-user-mute-strategy.py)**: Selectively mute user input (LLMUserAggregator user mute strategies) -- **[28-transcription-processor.py](./28-transcription-processor.py)**: Record conversation text (TranscriptProcessor) -- **[30-observer.py](./30-observer.py)**: Access frame data (Custom observers) -- **[31-heartbeats.py](./31-heartbeats.py)**: Detect idle pipelines (Pipeline monitoring) -- **[34-audio-recording.py](./34-audio-recording.py)**: Record conversation audio (Composite and track-level recording) - -### Advanced LLM Features - -- **[14-function-calling.py](./14-function-calling.py)**: Bot with tool usage (Function schemas, Tool registration) -- **[20a-persistent-context-openai.py](./20a-persistent-context-openai.py)**: Persistent conversation context (Memory management) -- **[32-gemini-grounding-metadata.py](./32-gemini-grounding-metadata.py)**: Web search capabilities (Google search integration) -- **[33-gemini-rag.py](./33-gemini-rag.py)**: Retrieval-augmented generation (Data sources, Grounding) -- **[37-mem0.py](./37-mem0.py)**: Long-term agent memory (Mem0 service integration) - -### Media Handling - -- **[05-sync-speech-and-images.py](./05-sync-speech-and-images.py)**: Synchronized narration with images (Custom processors, SyncParallelPipeline) -- **[06a-image-sync.py](./06a-image-sync.py)**: Dynamic image updates while speaking (Synchronized A/V pipelines) -- **[09-mirror.py](./09-mirror.py)**: Mirror user's audio and video (Custom frame processors) -- **[11-sound-effects.py](./11-sound-effects.py)**: Add sounds when bot speaks (Sound playback, Event synchronization) -- **[23-bot-background-sound.py](./23-bot-background-sound.py)**: Play background audio (SoundfileMixer) - -### Vision & Multimodal - -- **[12a-describe-video-gemini-flash.py](./12a-describe-video-gemini-flash.py)**: Bot describes user's video (Video input, Multimodal LLMs) -- **[26c-gemini-live-video.py](./26c-gemini-live-video.py)**: Gemini with video input (Streaming video, Function calls) - -### Voice & Language - -- **[13-transcription.py](./13-transcription.py)**: Speech transcription demo (STT providers, Real-time transcription) -- **[15-switch-voices.py](./15-switch-voices.py)**: Dynamic voice/language changing (ParallelPipelines, FunctionFilters) -- **[25-google-audio-in.py](./25-google-audio-in.py)**: Gemini for speech recognition (Alternative transcription) -- **[35-pattern-pair-voice-switching.py](./35-pattern-pair-voice-switching.py)**: Dynamic TTS voice switching (XML parsing, PatternPairAggregator) -- **[36-user-email-gathering.py](./36-user-email-gathering.py)**: Spelling mode for TTS (Confirmation patterns, XML tags) - -### Integration Examples - -- **[18-gstreamer-filesrc.py](./18-gstreamer-filesrc.py)**: GStreamer video streaming (Video processing) -- **[19-openai-realtime-beta.py](./19-openai-realtime-beta.py)**: OpenAI Speech-to-Speech (Direct S2S, Function calls) -- **[21-tavus-layer-tavus-transport.py](./21-tavus-layer-tavus-transport.py)**: Tavus digital twin (Avatar integration) -- **[27-simli-layer.py](./27-simli-layer.py)**: Simli avatar integration (Video synchronization) -- **[56-lemonslice-transport.py](./56-lemonslice-transport.py)**: LemonSlice avatar integration (A/V Synced Avatar integration) - -### Performance & Optimization - -- **[16-gpu-container-local-bot.py](./16-gpu-container-local-bot.py)**: GPU-accelerated local bot (Performance measurement) - -## Advanced Usage - -### Customizing Network Settings - -```bash -uv run python --host 0.0.0.0 --port 8080 -``` - -### Troubleshooting - -- **No audio/video**: Check browser permissions for microphone and camera -- **Connection errors**: Verify API keys in `.env` file -- **Port conflicts**: Use `--port` to change the port - -For more examples, visit our the [pipecat-examples repository](https://github.com/pipecat-ai/pipecat-examples). diff --git a/scripts/evals/run-release-evals.py b/scripts/evals/run-release-evals.py index ea59988ac..92e872ac2 100644 --- a/scripts/evals/run-release-evals.py +++ b/scripts/evals/run-release-evals.py @@ -22,7 +22,7 @@ SCRIPT_DIR = Path(__file__).resolve().parent ASSETS_DIR = SCRIPT_DIR / "assets" -FOUNDATIONAL_DIR = SCRIPT_DIR.parent.parent / "examples" / "foundational" +FOUNDATIONAL_DIR = SCRIPT_DIR.parent.parent / "examples" EVAL_SIMPLE_MATH = EvalConfig( prompt="A simple math addition.", diff --git a/src/pipecat/services/settings.py b/src/pipecat/services/settings.py index a0bf3cd58..54465b041 100644 --- a/src/pipecat/services/settings.py +++ b/src/pipecat/services/settings.py @@ -365,7 +365,7 @@ class LLMSettings(ServiceSettings): seed: Random seed for reproducibility. filter_incomplete_user_turns: Enable LLM-based turn completion detection to suppress bot responses when the user was cut off mid-thought. - See ``examples/foundational/22-filter-incomplete-turns.py`` and + See ``examples/22-filter-incomplete-turns.py`` and ``UserTurnCompletionLLMServiceMixin``. user_turn_completion_config: Configuration for turn completion behavior when ``filter_incomplete_user_turns`` is enabled. Controls timeouts