Flatten services/ nesting: promote speech and function-calling to top level
Move services/speech/* directly into services/ and services/function-calling/* into top-level function-calling/. Update eval script paths and README.
This commit is contained in:
@@ -63,10 +63,11 @@ Progressive introduction to Pipecat, from minimal TTS to a full voice agent with
|
||||
|
||||
### [`services/`](./services/)
|
||||
|
||||
Service provider integration examples, organized into subfolders:
|
||||
Full STT + LLM + TTS pipelines showcasing different speech service providers (Deepgram, ElevenLabs, Cartesia, etc.)
|
||||
|
||||
- **[`speech/`](./services/speech/)** — Full STT + LLM + TTS pipelines showcasing different speech service providers (Deepgram, ElevenLabs, Cartesia, etc.)
|
||||
- **[`function-calling/`](./services/function-calling/)** — Function calling with different LLM providers (OpenAI, Anthropic, Google, etc.)
|
||||
### [`function-calling/`](./function-calling/)
|
||||
|
||||
Function calling with different LLM providers (OpenAI, Anthropic, Google, etc.)
|
||||
|
||||
### [`transcription/`](./transcription/)
|
||||
|
||||
|
||||
@@ -97,60 +97,60 @@ EVAL_COMPLETE_TURN = EvalConfig(
|
||||
|
||||
|
||||
TESTS_SPEECH = [
|
||||
("services/speech/cartesia.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/cartesia-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/speechmatics.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/speechmatics-vad.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/langchain.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/deepgram.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/deepgram-flux.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/deepgram-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/elevenlabs.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/elevenlabs-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/xai.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/azure.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/azure-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/openai.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/openai-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/gladia.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/gladia-vad.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/lmnt.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/groq.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/aws.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/aws-strands.py", EVAL_WEATHER),
|
||||
("services/speech/google-gemini-tts.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/google.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/google-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/assemblyai.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/krisp-viva.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/rime.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/rime-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/nvidia.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/google-audio-in.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/fish.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/neuphonic.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/neuphonic-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/fal.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/minimax.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/sarvam.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/sarvam-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/soniox.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/inworld.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/inworld-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/asyncai.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/asyncai-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/aicoustics.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/hume.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/gradium.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/camb.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/piper.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/kokoro.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/resemble.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/smallest.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/openai-responses.py", EVAL_SIMPLE_MATH),
|
||||
("services/speech/openai-responses-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/cartesia.py", EVAL_SIMPLE_MATH),
|
||||
("services/cartesia-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/speechmatics.py", EVAL_SIMPLE_MATH),
|
||||
("services/speechmatics-vad.py", EVAL_SIMPLE_MATH),
|
||||
("services/langchain.py", EVAL_SIMPLE_MATH),
|
||||
("services/deepgram.py", EVAL_SIMPLE_MATH),
|
||||
("services/deepgram-flux.py", EVAL_SIMPLE_MATH),
|
||||
("services/deepgram-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/elevenlabs.py", EVAL_SIMPLE_MATH),
|
||||
("services/elevenlabs-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/xai.py", EVAL_SIMPLE_MATH),
|
||||
("services/azure.py", EVAL_SIMPLE_MATH),
|
||||
("services/azure-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/openai.py", EVAL_SIMPLE_MATH),
|
||||
("services/openai-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/gladia.py", EVAL_SIMPLE_MATH),
|
||||
("services/gladia-vad.py", EVAL_SIMPLE_MATH),
|
||||
("services/lmnt.py", EVAL_SIMPLE_MATH),
|
||||
("services/groq.py", EVAL_SIMPLE_MATH),
|
||||
("services/aws.py", EVAL_SIMPLE_MATH),
|
||||
("services/aws-strands.py", EVAL_WEATHER),
|
||||
("services/google-gemini-tts.py", EVAL_SIMPLE_MATH),
|
||||
("services/google.py", EVAL_SIMPLE_MATH),
|
||||
("services/google-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/assemblyai.py", EVAL_SIMPLE_MATH),
|
||||
("services/krisp-viva.py", EVAL_SIMPLE_MATH),
|
||||
("services/rime.py", EVAL_SIMPLE_MATH),
|
||||
("services/rime-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/nvidia.py", EVAL_SIMPLE_MATH),
|
||||
("services/google-audio-in.py", EVAL_SIMPLE_MATH),
|
||||
("services/fish.py", EVAL_SIMPLE_MATH),
|
||||
("services/neuphonic.py", EVAL_SIMPLE_MATH),
|
||||
("services/neuphonic-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/fal.py", EVAL_SIMPLE_MATH),
|
||||
("services/minimax.py", EVAL_SIMPLE_MATH),
|
||||
("services/sarvam.py", EVAL_SIMPLE_MATH),
|
||||
("services/sarvam-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/soniox.py", EVAL_SIMPLE_MATH),
|
||||
("services/inworld.py", EVAL_SIMPLE_MATH),
|
||||
("services/inworld-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/asyncai.py", EVAL_SIMPLE_MATH),
|
||||
("services/asyncai-http.py", EVAL_SIMPLE_MATH),
|
||||
("services/aicoustics.py", EVAL_SIMPLE_MATH),
|
||||
("services/hume.py", EVAL_SIMPLE_MATH),
|
||||
("services/gradium.py", EVAL_SIMPLE_MATH),
|
||||
("services/camb.py", EVAL_SIMPLE_MATH),
|
||||
("services/piper.py", EVAL_SIMPLE_MATH),
|
||||
("services/kokoro.py", EVAL_SIMPLE_MATH),
|
||||
("services/resemble.py", EVAL_SIMPLE_MATH),
|
||||
("services/smallest.py", EVAL_SIMPLE_MATH),
|
||||
("services/openai-responses.py", EVAL_SIMPLE_MATH),
|
||||
("services/openai-responses-http.py", EVAL_SIMPLE_MATH),
|
||||
# Needs a local XTTS docker instance running.
|
||||
# ("services/speech/xtts.py", EVAL_SIMPLE_MATH),
|
||||
# ("services/xtts.py", EVAL_SIMPLE_MATH),
|
||||
]
|
||||
|
||||
TESTS_VISION = [
|
||||
@@ -169,44 +169,44 @@ TESTS_VISION = [
|
||||
TESTS_FUNCTION_CALLING = [
|
||||
("getting-started/07-function-calling.py", EVAL_WEATHER),
|
||||
("getting-started/07-function-calling.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("services/function-calling/openai-responses.py", EVAL_WEATHER),
|
||||
("services/function-calling/openai-responses.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("services/function-calling/openai-responses-http.py", EVAL_WEATHER),
|
||||
("services/function-calling/openai-responses-http.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("services/function-calling/anthropic.py", EVAL_WEATHER),
|
||||
("services/function-calling/anthropic.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("services/function-calling/openai.py", EVAL_WEATHER),
|
||||
("services/function-calling/google.py", EVAL_WEATHER),
|
||||
("services/function-calling/google.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("services/function-calling/groq.py", EVAL_WEATHER),
|
||||
("services/function-calling/grok.py", EVAL_WEATHER),
|
||||
("services/function-calling/azure.py", EVAL_WEATHER),
|
||||
("services/function-calling/fireworks.py", EVAL_WEATHER),
|
||||
("services/function-calling/nvidia.py", EVAL_WEATHER),
|
||||
("services/function-calling/cerebras.py", EVAL_WEATHER),
|
||||
("services/function-calling/openrouter.py", EVAL_WEATHER),
|
||||
("services/function-calling/perplexity.py", EVAL_WEATHER),
|
||||
("services/function-calling/google-vertex.py", EVAL_WEATHER),
|
||||
("services/function-calling/qwen.py", EVAL_WEATHER),
|
||||
("services/function-calling/aws.py", EVAL_WEATHER),
|
||||
("services/function-calling/sambanova.py", EVAL_WEATHER),
|
||||
("services/function-calling/aws.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("services/function-calling/nebius.py", EVAL_WEATHER),
|
||||
("services/function-calling/mistral.py", EVAL_WEATHER),
|
||||
("services/function-calling/sarvam.py", EVAL_WEATHER),
|
||||
("services/function-calling/novita.py", EVAL_WEATHER),
|
||||
("function-calling/openai-responses.py", EVAL_WEATHER),
|
||||
("function-calling/openai-responses.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("function-calling/openai-responses-http.py", EVAL_WEATHER),
|
||||
("function-calling/openai-responses-http.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("function-calling/anthropic.py", EVAL_WEATHER),
|
||||
("function-calling/anthropic.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("function-calling/openai.py", EVAL_WEATHER),
|
||||
("function-calling/google.py", EVAL_WEATHER),
|
||||
("function-calling/google.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("function-calling/groq.py", EVAL_WEATHER),
|
||||
("function-calling/grok.py", EVAL_WEATHER),
|
||||
("function-calling/azure.py", EVAL_WEATHER),
|
||||
("function-calling/fireworks.py", EVAL_WEATHER),
|
||||
("function-calling/nvidia.py", EVAL_WEATHER),
|
||||
("function-calling/cerebras.py", EVAL_WEATHER),
|
||||
("function-calling/openrouter.py", EVAL_WEATHER),
|
||||
("function-calling/perplexity.py", EVAL_WEATHER),
|
||||
("function-calling/google-vertex.py", EVAL_WEATHER),
|
||||
("function-calling/qwen.py", EVAL_WEATHER),
|
||||
("function-calling/aws.py", EVAL_WEATHER),
|
||||
("function-calling/sambanova.py", EVAL_WEATHER),
|
||||
("function-calling/aws.py", EVAL_WEATHER_AND_RESTAURANT),
|
||||
("function-calling/nebius.py", EVAL_WEATHER),
|
||||
("function-calling/mistral.py", EVAL_WEATHER),
|
||||
("function-calling/sarvam.py", EVAL_WEATHER),
|
||||
("function-calling/novita.py", EVAL_WEATHER),
|
||||
# Video
|
||||
("services/function-calling/anthropic-video.py", EVAL_VISION_CAMERA),
|
||||
("services/function-calling/aws-video.py", EVAL_VISION_CAMERA),
|
||||
("services/function-calling/google-video.py", EVAL_VISION_CAMERA),
|
||||
("services/function-calling/moondream-video.py", EVAL_VISION_CAMERA),
|
||||
("services/function-calling/openai-video.py", EVAL_VISION_CAMERA),
|
||||
("services/function-calling/openai-responses-video.py", EVAL_VISION_CAMERA),
|
||||
("services/function-calling/openai-responses-video-http.py", EVAL_VISION_CAMERA),
|
||||
("function-calling/anthropic-video.py", EVAL_VISION_CAMERA),
|
||||
("function-calling/aws-video.py", EVAL_VISION_CAMERA),
|
||||
("function-calling/google-video.py", EVAL_VISION_CAMERA),
|
||||
("function-calling/moondream-video.py", EVAL_VISION_CAMERA),
|
||||
("function-calling/openai-video.py", EVAL_VISION_CAMERA),
|
||||
("function-calling/openai-responses-video.py", EVAL_VISION_CAMERA),
|
||||
("function-calling/openai-responses-video-http.py", EVAL_VISION_CAMERA),
|
||||
# Currently not working.
|
||||
# ("services/function-calling/together.py", EVAL_WEATHER),
|
||||
# ("services/function-calling/deepseek.py", EVAL_WEATHER),
|
||||
# ("services/function-calling/gemini-openai-format.py", EVAL_WEATHER),
|
||||
# ("function-calling/together.py", EVAL_WEATHER),
|
||||
# ("function-calling/deepseek.py", EVAL_WEATHER),
|
||||
# ("function-calling/gemini-openai-format.py", EVAL_WEATHER),
|
||||
]
|
||||
|
||||
TESTS_FEATURES = [
|
||||
|
||||
Reference in New Issue
Block a user