dv-pipecat-ai 0.0.85.dev7__tar.gz → 0.0.85.dev698__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of dv-pipecat-ai might be problematic. Click here for more details.
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/publish.yaml +11 -11
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/publish_test.yaml +6 -6
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/CHANGELOG.md +426 -5
- dv_pipecat_ai-0.0.85.dev698/COMMUNITY_INTEGRATIONS.md +336 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/CONTRIBUTING.md +4 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/PKG-INFO +78 -117
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/README.md +39 -86
- dv_pipecat_ai-0.0.85.dev698/SECURITY.md +5 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/env.example +14 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/pyproject.toml +28 -23
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/dv_pipecat_ai.egg-info/PKG-INFO +78 -117
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/dv_pipecat_ai.egg-info/SOURCES.txt +38 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/dv_pipecat_ai.egg-info/requires.txt +42 -30
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/base_llm_adapter.py +38 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/anthropic_adapter.py +9 -14
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +5 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/adapters/services/bedrock_adapter.py +318 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/gemini_adapter.py +12 -8
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/open_ai_adapter.py +19 -7
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +5 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/filters/krisp_viva_filter.py +193 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/noisereduce_filter.py +15 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/base_turn_analyzer.py +9 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +14 -8
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/turn/smart_turn/data/smart-turn-v3.0.onnx +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +6 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +1 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +1 -1
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/turn/smart_turn/local_smart_turn_v3.py +124 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/vad/data/README.md +10 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/vad/vad_analyzer.py +13 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/extensions/voicemail/voicemail_detector.py +5 -5
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/frames/frames.py +120 -87
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/loggers/debug_log_observer.py +3 -3
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/loggers/llm_log_observer.py +7 -3
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +22 -10
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/runner.py +12 -4
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/service_switcher.py +64 -36
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/task.py +85 -24
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/dtmf_aggregator.py +28 -22
- dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/aggregators/gated_openai_llm_context.py → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/aggregators/gated_llm_context.py +9 -9
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/aggregators/gated_open_ai_llm_context.py +12 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/llm_response.py +6 -7
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/llm_response_universal.py +19 -15
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/user_response.py +6 -6
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/vision_image_frame.py +24 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/audio/audio_buffer_processor.py +43 -8
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/stt_mute_filter.py +2 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/frame_processor.py +103 -17
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/frameworks/langchain.py +8 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/frameworks/rtvi.py +209 -68
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/frameworks/strands_agents.py +170 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/logger.py +2 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/transcript_processor.py +4 -4
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/user_idle_processor.py +3 -6
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/run.py +270 -50
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/types.py +2 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/utils.py +51 -10
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/exotel.py +5 -5
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/livekit.py +20 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/plivo.py +6 -9
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/protobuf.py +6 -5
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/telnyx.py +2 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/twilio.py +43 -23
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ai_service.py +2 -6
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/anthropic/llm.py +2 -25
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/asyncai/tts.py +2 -3
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/aws/__init__.py +1 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/aws/llm.py +122 -97
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/aws_nova_sonic → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws/nova_sonic}/context.py +3 -3
- dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/aws_nova_sonic/aws.py → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws/nova_sonic/llm.py +18 -28
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/aws/stt.py +1 -3
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws_nova_sonic/__init__.py +19 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws_nova_sonic/aws.py +25 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws_nova_sonic/context.py +25 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws_nova_sonic/frames.py +21 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/azure/realtime/llm.py +65 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/stt.py +15 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/cartesia/tts.py +2 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/deepgram/__init__.py +1 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/deepgram/flux/stt.py +636 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/elevenlabs/__init__.py +2 -1
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/elevenlabs/stt.py +339 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/elevenlabs/tts.py +5 -5
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fish/tts.py +2 -2
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/gemini_multimodal_live/events.py +44 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/gemini_multimodal_live/file_api.py +39 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/gemini_multimodal_live/gemini.py +57 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/gladia/stt.py +56 -72
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/__init__.py +1 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/google/gemini_live/__init__.py +3 -0
- dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/gemini_multimodal_live/gemini.py → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/google/gemini_live/llm.py +522 -359
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/google/gemini_live/llm_vertex.py +184 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/llm.py +15 -11
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/llm_openai.py +3 -3
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/llm_vertex.py +86 -16
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/tts.py +7 -3
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/heygen/api.py +2 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/heygen/client.py +8 -4
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/heygen/video.py +2 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/hume/tts.py +220 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/inworld/tts.py +6 -6
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/llm_service.py +15 -5
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/lmnt/tts.py +2 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/mcp_service.py +4 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/mem0/memory.py +6 -5
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/mistral/llm.py +29 -8
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/moondream/vision.py +42 -16
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/neuphonic/tts.py +2 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/__init__.py +1 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/base_llm.py +27 -20
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai/realtime/events.py +1106 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai/realtime/frames.py +37 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai/realtime/llm.py +829 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/tts.py +16 -8
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime/__init__.py +27 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime/azure.py +21 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime/context.py +21 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime/events.py +21 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime/frames.py +21 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai_realtime_beta/azure.py +16 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime_beta/context.py +272 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai_realtime_beta/openai.py +17 -5
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/playht/tts.py +31 -4
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/rime/tts.py +3 -4
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sarvam/tts.py +2 -6
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/simli/video.py +2 -2
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/speechmatics/__init__.py +5 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/speechmatics/stt.py +1 -7
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/stt_service.py +34 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/tavus/video.py +2 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/tts_service.py +9 -9
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/vision_service.py +7 -6
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/tests/utils.py +4 -4
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transcriptions/language.py +41 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/base_input.py +17 -42
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/base_output.py +42 -26
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/daily/transport.py +199 -26
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/heygen/transport.py +381 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/livekit/transport.py +228 -63
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/local/audio.py +6 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/local/tk.py +11 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/network/fastapi_websocket.py +1 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/smallwebrtc/connection.py +98 -19
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/smallwebrtc/request_handler.py +204 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/smallwebrtc/transport.py +65 -23
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/tavus/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/tavus/transport.py +23 -12
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/websocket/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/websocket/client.py +41 -5
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/websocket/fastapi.py +21 -11
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/websocket/server.py +14 -7
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/whatsapp/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/whatsapp/api.py +8 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/whatsapp/client.py +47 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/utils/__init__.py +0 -0
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/utils/asyncio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/base_object.py +54 -22
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/string.py +12 -1
- dv_pipecat_ai-0.0.85.dev698/src/pipecat/utils/text/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/service_decorators.py +21 -21
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/uv.lock +2008 -1714
- dv_pipecat_ai-0.0.85.dev7/src/pipecat/adapters/services/bedrock_adapter.py +0 -95
- dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/aws_nova_sonic/__init__.py +0 -1
- dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/elevenlabs/stt.py +0 -361
- dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/gemini_multimodal_live/events.py +0 -530
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.dockerignore +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/build.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/coverage.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/force_push_to_pypi.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/format.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/github.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/promote-prod.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/python-compatibility.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/set-traffic-split.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/sync-quickstart.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/tests.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.gitignore +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.pre-commit-config.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.readthedocs.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/CHANGELOG.md.template +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/CLAUDE.md +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/LICENSE +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/MANIFEST.in +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/ansible.cfg +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/ansible_deployment.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/cleanup_old_containers.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/codecov.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create-new-machine/ansible.cfg +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create-new-machine/ansible_setup.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create-new-machine/inventory.ini +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create-new-machine/replace_env.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create-new-machine/setup_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create_inventory.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/delete_old_dockers.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/deploy.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/deploy_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/docker-compose.dev.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/dump_logs.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/fetch_logs.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/inventory.ini +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/.helmignore +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/Chart.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/pdb.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/service.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/values-canary.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/values-prod.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/values-stage.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/values.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/istio/destination-virtualservice.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/merge-code-into-single-file.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/pipecat.png +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/restart.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/restart_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/setup.cfg +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/schemas/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/schemas/direct_function.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/schemas/function_schema.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-0.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-1.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-2.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-3.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-4.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-5.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-6.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-7.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-8.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-9.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-pound.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-star.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/types.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/aic_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/koala_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/krisp_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/interruptions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/mixers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/resamplers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/audio/vad → dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/turn/smart_turn/data}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/audio/vad/data → dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/vad}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/clocks → dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/vad/data}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/vad/data/silero_vad_v2.onnx +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/vad/silero.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/extensions → dv_pipecat_ai-0.0.85.dev698/src/pipecat/clocks}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/clocks/base_clock.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/clocks/system_clock.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/extensions/ivr → dv_pipecat_ai-0.0.85.dev698/src/pipecat/extensions}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/extensions/voicemail → dv_pipecat_ai-0.0.85.dev698/src/pipecat/extensions/ivr}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/extensions/ivr/ivr_navigator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/frames → dv_pipecat_ai-0.0.85.dev698/src/pipecat/extensions/voicemail}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/metrics → dv_pipecat_ai-0.0.85.dev698/src/pipecat/frames}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/frames/frames.proto +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/observers → dv_pipecat_ai-0.0.85.dev698/src/pipecat/metrics}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/metrics/metrics.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/observers/loggers → dv_pipecat_ai-0.0.85.dev698/src/pipecat/observers}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/base_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/pipeline → dv_pipecat_ai-0.0.85.dev698/src/pipecat/observers/loggers}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/turn_tracking_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors → dv_pipecat_ai-0.0.85.dev698/src/pipecat/pipeline}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/base_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/base_task.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/llm_switcher.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/task_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/tts_switcher.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/aggregators → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/audio → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/aggregators}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/gated.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/llm_context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/sentence.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/async_generator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/filters → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/audio}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/consumer_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/dtmf_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/frameworks → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/filters}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/frame_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/function_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/identity_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/null_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/gstreamer → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/frameworks}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/metrics → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/gstreamer}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/idle_frame_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/asyncai → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/metrics}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/metrics/sentry.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/producer_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/text_transformer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/py.typed +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/daily.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/livekit.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/asterisk.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/base_serializer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/convox.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/custom.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ai_services.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/anthropic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/assemblyai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/assemblyai/models.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/assemblyai/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/mistral → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/asyncai}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/soniox → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws/nova_sonic}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/aws_nova_sonic → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws/nova_sonic}/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/aws_nova_sonic → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws/nova_sonic}/ready.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/aws/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/aws/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/common.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/sync → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/azure/realtime}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/cartesia/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/cartesia/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/cerebras/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/cerebras/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/tests → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/deepgram/flux}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/deepgram/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/deepgram/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/deepseek/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/deepseek/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fal/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fal/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fal/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fireworks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fireworks/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fish/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/gladia/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/gladia/config.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/gemini_multimodal_live → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/google/gemini_live}/file_api.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/google.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/rtvi.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/grok/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/grok/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/groq/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/groq/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/groq/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/groq/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/hamsa/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/hamsa/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/heygen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/speechmatics → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/hume}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/image_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/inworld/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/lmnt/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/mem0/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/minimax/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/minimax/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transcriptions → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/mistral}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/moondream/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/neuphonic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/nim/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/nim/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ollama/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ollama/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai/realtime}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/openai_realtime_beta → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai/realtime}/context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openpipe/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openpipe/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openrouter/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openrouter/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/perplexity/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/perplexity/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/piper/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/piper/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/playht/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/qwen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/qwen/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/rime/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/riva/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/riva/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/riva/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sambanova/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sambanova/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sambanova/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sarvam/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sarvam/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/simli/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/daily → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/soniox}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/soniox/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/tavus/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/together/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/together/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ultravox/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ultravox/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/vistaar/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/vistaar/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/websocket_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/whisper/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/whisper/base_stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/whisper/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/xtts/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/xtts/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/livekit → dv_pipecat_ai-0.0.85.dev698/src/pipecat/sync}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/sync/base_notifier.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/sync/event_notifier.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/local → dv_pipecat_ai-0.0.85.dev698/src/pipecat/tests}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/network → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transcriptions}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/services → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/base_transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/services/helpers → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/daily}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/daily/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/smallwebrtc → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/heygen}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/tavus → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/livekit}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/websocket → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/local}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/whatsapp → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/network}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/network/small_webrtc.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/network/webrtc_connection.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/network/websocket_client.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/network/websocket_server.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/utils → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/services}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/services/daily.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/utils/asyncio → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/services/helpers}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/services/livekit.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/services/tavus.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/utils/text → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/smallwebrtc}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/asyncio/task_manager.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/logger_config.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/network.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/base_text_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/time.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/class_decorators.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/service_attributes.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/setup.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/stop_container.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/test_elevenlabs_stt_segmented.py +0 -0
|
@@ -5,25 +5,25 @@ on:
|
|
|
5
5
|
inputs:
|
|
6
6
|
gitref:
|
|
7
7
|
type: string
|
|
8
|
-
description:
|
|
8
|
+
description: 'what git tag to build (e.g. v0.0.74)'
|
|
9
9
|
required: true
|
|
10
10
|
|
|
11
11
|
jobs:
|
|
12
12
|
build:
|
|
13
|
-
name:
|
|
13
|
+
name: 'Build and upload wheels'
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
steps:
|
|
16
16
|
- name: Checkout repo
|
|
17
17
|
uses: actions/checkout@v4
|
|
18
18
|
with:
|
|
19
19
|
ref: ${{ github.event.inputs.gitref }}
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
- name: Install uv
|
|
22
22
|
uses: astral-sh/setup-uv@v3
|
|
23
23
|
with:
|
|
24
|
-
version:
|
|
24
|
+
version: 'latest'
|
|
25
25
|
- name: Set up Python
|
|
26
|
-
run: uv python install 3.
|
|
26
|
+
run: uv python install 3.12
|
|
27
27
|
- name: Install development dependencies
|
|
28
28
|
run: uv sync --group dev
|
|
29
29
|
- name: Build project
|
|
@@ -35,9 +35,9 @@ jobs:
|
|
|
35
35
|
path: ./dist
|
|
36
36
|
|
|
37
37
|
publish-to-pypi:
|
|
38
|
-
name:
|
|
38
|
+
name: 'Publish to PyPI'
|
|
39
39
|
runs-on: ubuntu-latest
|
|
40
|
-
needs: [
|
|
40
|
+
needs: [build]
|
|
41
41
|
environment:
|
|
42
42
|
name: pypi
|
|
43
43
|
url: https://pypi.org/p/pipecat-ai
|
|
@@ -56,12 +56,12 @@ jobs:
|
|
|
56
56
|
print-hash: true
|
|
57
57
|
|
|
58
58
|
publish-to-test-pypi:
|
|
59
|
-
name:
|
|
59
|
+
name: 'Publish to Test PyPI'
|
|
60
60
|
runs-on: ubuntu-latest
|
|
61
|
-
needs: [
|
|
61
|
+
needs: [build]
|
|
62
62
|
environment:
|
|
63
63
|
name: testpypi
|
|
64
|
-
url: https://pypi.org/p/pipecat-ai
|
|
64
|
+
url: https://test.pypi.org/p/pipecat-ai
|
|
65
65
|
permissions:
|
|
66
66
|
id-token: write
|
|
67
67
|
steps:
|
|
@@ -70,7 +70,7 @@ jobs:
|
|
|
70
70
|
with:
|
|
71
71
|
name: wheels
|
|
72
72
|
path: ./dist
|
|
73
|
-
- name: Publish to PyPI
|
|
73
|
+
- name: Publish to Test PyPI
|
|
74
74
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
75
75
|
with:
|
|
76
76
|
verbose: true
|
{dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/publish_test.yaml
RENAMED
|
@@ -4,7 +4,7 @@ on: workflow_dispatch
|
|
|
4
4
|
|
|
5
5
|
jobs:
|
|
6
6
|
build:
|
|
7
|
-
name:
|
|
7
|
+
name: 'Build and upload wheels'
|
|
8
8
|
runs-on: ubuntu-latest
|
|
9
9
|
steps:
|
|
10
10
|
- name: Checkout repo
|
|
@@ -15,9 +15,9 @@ jobs:
|
|
|
15
15
|
- name: Install uv
|
|
16
16
|
uses: astral-sh/setup-uv@v3
|
|
17
17
|
with:
|
|
18
|
-
version:
|
|
18
|
+
version: 'latest'
|
|
19
19
|
- name: Set up Python
|
|
20
|
-
run: uv python install 3.
|
|
20
|
+
run: uv python install 3.12
|
|
21
21
|
- name: Install development dependencies
|
|
22
22
|
run: uv sync --group dev
|
|
23
23
|
- name: Build project
|
|
@@ -29,12 +29,12 @@ jobs:
|
|
|
29
29
|
path: ./dist
|
|
30
30
|
|
|
31
31
|
publish-to-test-pypi:
|
|
32
|
-
name:
|
|
32
|
+
name: 'Publish to Test PyPI'
|
|
33
33
|
runs-on: ubuntu-latest
|
|
34
34
|
needs: [build]
|
|
35
35
|
environment:
|
|
36
36
|
name: testpypi
|
|
37
|
-
url: https://pypi.org/p/pipecat-ai
|
|
37
|
+
url: https://test.pypi.org/p/pipecat-ai
|
|
38
38
|
permissions:
|
|
39
39
|
id-token: write
|
|
40
40
|
steps:
|
|
@@ -43,7 +43,7 @@ jobs:
|
|
|
43
43
|
with:
|
|
44
44
|
name: wheels
|
|
45
45
|
path: ./dist
|
|
46
|
-
- name: Publish to PyPI
|
|
46
|
+
- name: Publish to Test PyPI
|
|
47
47
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
48
48
|
with:
|
|
49
49
|
verbose: true
|
|
@@ -5,6 +5,427 @@ All notable changes to **Pipecat** will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.0.90] - 2025-10-10
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Added audio filter `KrispVivaFilter` using the Krisp VIVA SDK.
|
|
13
|
+
|
|
14
|
+
- Added `--folder` argument to the runner, allowing files saved in that folder
|
|
15
|
+
to be downloaded from `http://HOST:PORT/file/FILE`.
|
|
16
|
+
|
|
17
|
+
- Added `GeminiLiveVertexLLMService`, for accessing Gemini Live via Google
|
|
18
|
+
Vertex AI.
|
|
19
|
+
|
|
20
|
+
- Added some new configuration options to `GeminiLiveLLMService`:
|
|
21
|
+
|
|
22
|
+
- `thinking`
|
|
23
|
+
- `enable_affective_dialog`
|
|
24
|
+
- `proactivity`
|
|
25
|
+
|
|
26
|
+
Note that these new configuration options require using a newer model than
|
|
27
|
+
the default, like "gemini-2.5-flash-native-audio-preview-09-2025". The last
|
|
28
|
+
two require specifying `http_options=HttpOptions(api_version="v1alpha")`.
|
|
29
|
+
|
|
30
|
+
- Added `on_pipeline_error` event to `PipelineTask`. This event will get fired
|
|
31
|
+
when an `ErrorFrame` is pushed (use `FrameProcessor.push_error()`).
|
|
32
|
+
|
|
33
|
+
```python
|
|
34
|
+
@task.event_handler("on_pipeline_error")
|
|
35
|
+
async def on_pipeline_error(task: PipelineTask, frame: ErrorFrame):
|
|
36
|
+
...
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- Added a `service_tier` `InputParam` to the `BaseOpenAILLMService`. This
|
|
40
|
+
parameter can influence the latency of the response. For example `"priority"`
|
|
41
|
+
will result in faster completions, but in exchange for a higher price.
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
|
|
45
|
+
- Updated `GeminiLiveLLMService` to use the `google-genai` library rather than
|
|
46
|
+
use WebSockets directly.
|
|
47
|
+
|
|
48
|
+
### Deprecated
|
|
49
|
+
|
|
50
|
+
- `LivekitFrameSerializer` is now deprecated. Use `LiveKitTransport` instead.
|
|
51
|
+
|
|
52
|
+
- `pipecat.service.openai_realtime` is now deprecated, use
|
|
53
|
+
`pipecat.services.openai.realtime` instead or
|
|
54
|
+
`pipecat.services.azure.realtime` for Azure Realtime.
|
|
55
|
+
|
|
56
|
+
- `pipecat.service.aws_nova_sonic` is now deprecated, use
|
|
57
|
+
`pipecat.services.aws.nova_sonic` instead.
|
|
58
|
+
|
|
59
|
+
- `GeminiMultimodalLiveLLMService` is now deprecated, use
|
|
60
|
+
`GeminiLiveLLMService`.
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
|
|
64
|
+
- Fixed a `GoogleVertexLLMService` issue that would generate an error if no
|
|
65
|
+
token information was returned.
|
|
66
|
+
|
|
67
|
+
- `GeminiLiveLLMService` will now end gracefully (i.e. after the bot has
|
|
68
|
+
finished) upon receiving an `EndFrame`.
|
|
69
|
+
|
|
70
|
+
- `GeminiLiveLLMService` will try to seamlessly reconnect when it loses its
|
|
71
|
+
connection.
|
|
72
|
+
|
|
73
|
+
## [0.0.89] - 2025-10-07
|
|
74
|
+
|
|
75
|
+
### Fixed
|
|
76
|
+
|
|
77
|
+
- Reverted a change introduced in 0.0.88 that was causing pipelines to be frozen
|
|
78
|
+
when using interruption strategies and processors that block interruption
|
|
79
|
+
frames (e.g. `STTMuteFilter`).
|
|
80
|
+
|
|
81
|
+
## [0.0.88] - 2025-10-07
|
|
82
|
+
|
|
83
|
+
### Added
|
|
84
|
+
|
|
85
|
+
- Added support for Nano Banana models to `GoogleLLMService`. For example, you
|
|
86
|
+
can now use the `gemini-2.5-flash-image` model to generate images.
|
|
87
|
+
|
|
88
|
+
- Added `HumeTTSService` for text-to-speech synthesis using Hume AI's expressive
|
|
89
|
+
voice models. Provides high-quality, emotionally expressive speech synthesis
|
|
90
|
+
with support for various voice models. Includes example in
|
|
91
|
+
`examples/foundational/07ad-interruptible-hume.py`. Use with:
|
|
92
|
+
`uv pip install pipecat-ai[hume]`.
|
|
93
|
+
|
|
94
|
+
### Changed
|
|
95
|
+
|
|
96
|
+
- Updated default `GoogleLLMService` model to `gemini-2.5-flash`.
|
|
97
|
+
|
|
98
|
+
### Deprecated
|
|
99
|
+
|
|
100
|
+
- PlayHT is shutting down their API on December 31st, 2025. As a result,
|
|
101
|
+
`PlayHTTTSService` and `PlayHTHttpTTSService` are deprecated and will be
|
|
102
|
+
removed in a future version.
|
|
103
|
+
|
|
104
|
+
### Fixed
|
|
105
|
+
|
|
106
|
+
- Fixed an issue with `AWSNovaSonicLLMService` where the client wouldn't
|
|
107
|
+
connect due to a breaking change in the AWS dependency chain.
|
|
108
|
+
|
|
109
|
+
- `PermissionError` is now caught if NLTK's `punkt_tab` can't be downloaded.
|
|
110
|
+
|
|
111
|
+
- Fixed an issue that would cause wrong user/assistant context ordering when
|
|
112
|
+
using interruption strategies.
|
|
113
|
+
|
|
114
|
+
- Fixed RTVI incoming message handling, broken in 0.0.87.
|
|
115
|
+
|
|
116
|
+
## [0.0.87] - 2025-10-02
|
|
117
|
+
|
|
118
|
+
### Added
|
|
119
|
+
|
|
120
|
+
- Added `WebsocketSTTService` base class for websocket-based STT services.
|
|
121
|
+
Combines STT functionality with websocket connectivity, providing automatic
|
|
122
|
+
error handling and reconnection capabilities with exponential backoff.
|
|
123
|
+
|
|
124
|
+
- Added `DeepgramFluxSTTService` for real-time speech recognition using
|
|
125
|
+
Deepgram's Flux WebSocket API. Flux understands conversational flow and
|
|
126
|
+
automatically handles turn-taking.
|
|
127
|
+
|
|
128
|
+
- Added RTVI messages for user/bot audio levels and system logs.
|
|
129
|
+
|
|
130
|
+
- Include OpenAI-based LLM services cached tokens to `MetricsFrame`.
|
|
131
|
+
|
|
132
|
+
### Changed
|
|
133
|
+
|
|
134
|
+
- Updated the default model for `AnthropicLLMService` to
|
|
135
|
+
`claude-sonnet-4-5-20250929`.
|
|
136
|
+
|
|
137
|
+
### Deprecated
|
|
138
|
+
|
|
139
|
+
- `DailyTransportMessageFrame` and `DailyTransportMessageUrgentFrame` are
|
|
140
|
+
deprecated, use `DailyOutputTransportMessageFrame` and
|
|
141
|
+
`DailyOutputTransportMessageUrgentFrame` respectively instead.
|
|
142
|
+
|
|
143
|
+
- `LiveKitTransportMessageFrame` and `LiveKitTransportMessageUrgentFrame` are
|
|
144
|
+
deprecated, use `LiveKitOutputTransportMessageFrame` and
|
|
145
|
+
`LiveKitOutputTransportMessageUrgentFrame` respectively instead.
|
|
146
|
+
|
|
147
|
+
- `TransportMessageFrame` and `TransportMessageUrgentFrame` are deprecated, use
|
|
148
|
+
`OutputTransportMessageFrame` and `OutputTransportMessageUrgentFrame`
|
|
149
|
+
respectively instead.
|
|
150
|
+
|
|
151
|
+
- `InputTransportMessageUrgentFrame` is deprecated, use
|
|
152
|
+
`InputTransportMessageFrame` instead.
|
|
153
|
+
|
|
154
|
+
- `DailyUpdateRemoteParticipantsFrame` is deprecated and will be removed in a
|
|
155
|
+
future version. Instead, create your own custom frame and handle it in the
|
|
156
|
+
`@transport.output().event_handler("on_after_push_frame")` event handler or a
|
|
157
|
+
custom processor.
|
|
158
|
+
|
|
159
|
+
## Fixed
|
|
160
|
+
|
|
161
|
+
- Fixed an issue in `AWSBedrockLLMService` where timeout exceptions weren't
|
|
162
|
+
being detected.
|
|
163
|
+
|
|
164
|
+
- Fixed a `PipelineTask` issue that could prevent the application to exit if
|
|
165
|
+
`task.cancel()` was called when the task was already finished.
|
|
166
|
+
|
|
167
|
+
- Fixed an issue where local SmartTurn was not being ran in a separate thread.
|
|
168
|
+
|
|
169
|
+
## [0.0.86] - 2025-09-24
|
|
170
|
+
|
|
171
|
+
### Added
|
|
172
|
+
|
|
173
|
+
- Added `HeyGenTransport`. This is an integration for HeyGen Interactive
|
|
174
|
+
Avatar. A video service that handles audio streaming and requests HeyGen to
|
|
175
|
+
generate avatar video responses. (see https://www.heygen.com/). When used, the
|
|
176
|
+
Pipecat bot joins the same virtual room as the HeyGen Avatar and the user.
|
|
177
|
+
|
|
178
|
+
- Added support to `TwilioFrameSerializer` for `region` and `edge` settings.
|
|
179
|
+
|
|
180
|
+
- Added support for using universal `LLMContext` with:
|
|
181
|
+
|
|
182
|
+
- `LLMLogObserver`
|
|
183
|
+
- `GatedLLMContextAggregator` (formerly `GatedOpenAILLMContextAggregator`)
|
|
184
|
+
- `LangchainProcessor`
|
|
185
|
+
- `Mem0MemoryService`
|
|
186
|
+
|
|
187
|
+
- Added `StrandsAgentProcessor` which allows you to use the Strands Agents
|
|
188
|
+
framework to build your voice agents.
|
|
189
|
+
See https://strandsagents.com
|
|
190
|
+
|
|
191
|
+
- Added `ElevenLabsSTTService` for speech-to-text transcription.
|
|
192
|
+
|
|
193
|
+
- Added a peer connection monitor to the `SmallWebRTCConnection` that
|
|
194
|
+
automatically disconnects if the connection fails to establish within
|
|
195
|
+
the timeout (1 minute by default).
|
|
196
|
+
|
|
197
|
+
- Added memory cleanup improvements to reduce memory peaks.
|
|
198
|
+
|
|
199
|
+
- Added `on_before_process_frame`, `on_after_process_frame`,
|
|
200
|
+
`on_before_push_frame` and `on_after_push_frame`. These are synchronous events
|
|
201
|
+
that get called before and after a frame is processed or pushed. Note that
|
|
202
|
+
these events are synchrnous so they should ideally perform lightweight tasks
|
|
203
|
+
in order to not block the pipeline. See
|
|
204
|
+
`examples/foundational/45-before-and-after-events.py`.
|
|
205
|
+
|
|
206
|
+
- Added `on_before_leave` synchronous event to `DailyTransport`.
|
|
207
|
+
|
|
208
|
+
- Added `on_before_disconnect` synchronous event to `LiveKitTransport`.
|
|
209
|
+
|
|
210
|
+
- It is now possible to register synchronous event handlers. By default, all
|
|
211
|
+
event handlers are executed in a separate task. However, in some cases we want
|
|
212
|
+
to guarantee order of execution, for example, executing something before
|
|
213
|
+
disconnecting a transport.
|
|
214
|
+
|
|
215
|
+
```python
|
|
216
|
+
self._register_event_handler("on_event_name", sync=True)
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
- Added support for global location in `GoogleVertexLLMService`. The service now
|
|
220
|
+
supports both regional locations (e.g., "us-east4") and the "global" location
|
|
221
|
+
for Vertex AI endpoints. When using "global" location, the service will use
|
|
222
|
+
`aiplatform.googleapis.com` as the API host instead of the regional format.
|
|
223
|
+
|
|
224
|
+
- Added `on_pipeline_finished` event to `PipelineTask`. This event will get
|
|
225
|
+
fired when the pipeline is done running. This can be the result of a
|
|
226
|
+
`StopFrame`, `CancelFrame` or `EndFrame`.
|
|
227
|
+
|
|
228
|
+
```python
|
|
229
|
+
@task.event_handler("on_pipeline_finished")
|
|
230
|
+
async def on_pipeline_finished(task: PipelineTask, frame: Frame):
|
|
231
|
+
...
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
- Added support for new RTVI `send-text` event, along with the ability to toggle
|
|
235
|
+
the audio response off (skip tts) while handling the new context.
|
|
236
|
+
|
|
237
|
+
### Changed
|
|
238
|
+
|
|
239
|
+
- Updated `aiortc` to 1.13.0.
|
|
240
|
+
|
|
241
|
+
- Updated `sentry` to 2.38.0.
|
|
242
|
+
|
|
243
|
+
- `BaseOutputTransport` methods `write_audio_frame` and `write_video_frame` now
|
|
244
|
+
return a boolean to indicate if the transport implementation was able to write
|
|
245
|
+
the given frame or not.
|
|
246
|
+
|
|
247
|
+
- Updated Silero VAD model to v6.
|
|
248
|
+
|
|
249
|
+
- Updated `livekit` to 1.0.13.
|
|
250
|
+
|
|
251
|
+
- `torch` and `torchaudio` are no longer required for running Smart Turn
|
|
252
|
+
locally. This avoids gigabytes of dependencies being installed.
|
|
253
|
+
|
|
254
|
+
- Updated `websockets` dependency to support version 15.0. Removed deprecated
|
|
255
|
+
usage of `ConnectionClosed.code` and `ConnectionClosed.reason` attributes in
|
|
256
|
+
`AWSTranscribeSTTService` for compatibility.
|
|
257
|
+
|
|
258
|
+
- Refactored `pyproject.toml` to reduce websockets dependency repetition using
|
|
259
|
+
self-referencing extras. All websockets-dependent services now reference a
|
|
260
|
+
shared `websockets-base` extra.
|
|
261
|
+
|
|
262
|
+
### Deprecated
|
|
263
|
+
|
|
264
|
+
- `GladiaSTTService`'s `confidence` arg is deprecated. `confidence` is no
|
|
265
|
+
longer needed to determine which transcription or translation frames to
|
|
266
|
+
emit.
|
|
267
|
+
|
|
268
|
+
- `PipelineTask` events `on_pipeline_stopped`, `on_pipeline_ended` and
|
|
269
|
+
`on_pipeline_cancelled` are now deprecated. Use `on_pipeline_finished`
|
|
270
|
+
instead.
|
|
271
|
+
|
|
272
|
+
- Support for the RTVI `append-to-context` event, in lieu of the new `send-text`
|
|
273
|
+
event and making way for future events like `send-image`.
|
|
274
|
+
|
|
275
|
+
### Fixed
|
|
276
|
+
|
|
277
|
+
- Fixed an issue where the pipeline could freeze if a task cancellation never
|
|
278
|
+
completed because a third-party library swallowed asyncio.CancelledError. We
|
|
279
|
+
now apply a timeout to task cancellations to prevent these freezes. If the
|
|
280
|
+
timeout is reached, the system logs warnings and leaves dangling tasks behind,
|
|
281
|
+
which can help diagnose where cancellation is being blocked.
|
|
282
|
+
|
|
283
|
+
- Fixed an `AudioBufferProcessor` issues that was causing user audio to be
|
|
284
|
+
missing in stereo recordings causing bot and user overlaps.
|
|
285
|
+
|
|
286
|
+
- Fixed a `BaseOutputTransport` issue that could produce large saved
|
|
287
|
+
`AudioBufferProcessor` files when using an audio mixer.
|
|
288
|
+
|
|
289
|
+
- Fixed a `PipelineRunner` issue on Windows where setting up SIGINT and SIGTERM
|
|
290
|
+
was raising an exception.
|
|
291
|
+
|
|
292
|
+
- Fixed an issue where multiple handlers for an event would not run in parallel.
|
|
293
|
+
|
|
294
|
+
- Fixed `DailyTransport.sip_call_transfer()` to automatically use the session
|
|
295
|
+
ID from the `on_dialin_connected` event, when not explicitly provided. Now
|
|
296
|
+
supports cold transfers (from incoming dial-in calls) by automatically
|
|
297
|
+
tracking session IDs from connection events.
|
|
298
|
+
|
|
299
|
+
- Fixed a memory leak in `SmallWebRTCTransport`. In `aiortc`, when you receive
|
|
300
|
+
a `MediaStreamTrack` (audio or video), frames are produced asynchronously. If
|
|
301
|
+
the code never consumes these frames, they are queued in memory, causing a
|
|
302
|
+
memory leak.
|
|
303
|
+
|
|
304
|
+
- Fixed an issue in `AsyncAITTSService`, where `TTSTextFrames` were not being
|
|
305
|
+
pushed.
|
|
306
|
+
|
|
307
|
+
- Fixed an issue that would cause `push_interruption_task_frame_and_wait()` to
|
|
308
|
+
not wait if a previous interruption had already happened.
|
|
309
|
+
|
|
310
|
+
- Fixed a couple of bugs in `ServiceSwitcher`:
|
|
311
|
+
|
|
312
|
+
- Using multiple `ServiceSwitcher`s in a pipeline would result in an error.
|
|
313
|
+
- `ServiceSwitcherFrame`s (such as `ManuallySwitchServiceFrame`s) were having
|
|
314
|
+
an effect too early, essentially "jumping the queue" in terms of pipeline
|
|
315
|
+
frame ordering.
|
|
316
|
+
|
|
317
|
+
- Fixed a self-cancellation deadlock in `UserIdleProcessor` when returning
|
|
318
|
+
`False` from an idle callback. The task now terminates naturally instead of
|
|
319
|
+
attempting to cancel itself.
|
|
320
|
+
|
|
321
|
+
- Fixed an issue in `AudioBufferProcessor` where a recording is not created
|
|
322
|
+
when a bot speaks and user input is blocked.
|
|
323
|
+
|
|
324
|
+
- Fixed a `FastAPIWebsocketTransport` and `SmallWebRTCTransport` issue where
|
|
325
|
+
`on_client_disconnected` would be triggered when the bot ends the
|
|
326
|
+
conversation. That is, `on_client_disconnected` should only be triggered when
|
|
327
|
+
the remote client actually disconnects.
|
|
328
|
+
|
|
329
|
+
- Fixed an issue in `HeyGenVideoService` where the `BotStartedSpeakingFrame`
|
|
330
|
+
was blocked from moving through the Pipeline.
|
|
331
|
+
|
|
332
|
+
## [0.0.85] - 2025-09-12
|
|
333
|
+
|
|
334
|
+
### Added
|
|
335
|
+
|
|
336
|
+
- `AzureSTTService` now pushes interim transcriptions.
|
|
337
|
+
|
|
338
|
+
- Added `voice_cloning_key` to `GoogleTTSService` to support custom cloned
|
|
339
|
+
voices.
|
|
340
|
+
|
|
341
|
+
- Added `speaking_rate` to `GoogleTTSService.InputParams` to control the
|
|
342
|
+
speaking rate.
|
|
343
|
+
|
|
344
|
+
- Added a `speed` arg to `OpenAITTSService` to control the speed of the voice
|
|
345
|
+
response.
|
|
346
|
+
|
|
347
|
+
- Added `FrameProcessor.push_interruption_task_frame_and_wait()`. Use this
|
|
348
|
+
method to programatically interrupt the bot from any part of the
|
|
349
|
+
pipeline. This guarantees that all the processors in the pipeline are
|
|
350
|
+
interrupted in order (from upstream to downstream). Internally, this works by
|
|
351
|
+
first pushing an `InterruptionTaskFrame` upstream until it reaches the
|
|
352
|
+
pipeline task. The pipeline task then generates an `InterruptionFrame`, which
|
|
353
|
+
flows downstream through all processors. Once the `InterruptionFrame` has
|
|
354
|
+
reaches the processor waiting for the interruption, the function returns and
|
|
355
|
+
execution continues after the call. Think of it as sending an upstream request
|
|
356
|
+
for interruption and waiting until the acknowledgment flows back downstream.
|
|
357
|
+
|
|
358
|
+
- Added new base `TaskFrame` (which is a system frame). This is the base class
|
|
359
|
+
for all task frames (`EndTaskFrame`, `CancelTaskFrame`, etc.) that are meant
|
|
360
|
+
to be pushed upstream to reach the pipeline task.
|
|
361
|
+
|
|
362
|
+
- Expanded support for universal `LLMContext` to the AWS Bedrock LLM service.
|
|
363
|
+
Using the universal `LLMContext` and associated `LLMContextAggregatorPair` is
|
|
364
|
+
a pre-requisite for using `LLMSwitcher` to switch between LLMs at runtime.
|
|
365
|
+
|
|
366
|
+
- Added new fields to the development runner's `parse_telephony_websocket`
|
|
367
|
+
method in support of providing dynamic data to a bot.
|
|
368
|
+
|
|
369
|
+
- Twilio: Added a new `body` parameter, which parses the websocket message
|
|
370
|
+
for `customParameters`. Provide data via the `Parameter` nouns in your
|
|
371
|
+
TwiML to use this feature.
|
|
372
|
+
- Telnyx & Exotel: Both providers make the `to` and `from` phone numbers
|
|
373
|
+
available in the websocket messages. You can now access these numbers as
|
|
374
|
+
`call_data["to"]` and `call_data["from"]`.
|
|
375
|
+
|
|
376
|
+
Note: Each telephony provider offers different features. Refer to the
|
|
377
|
+
corresponding example in `pipecat-examples` to see how to pass custom data
|
|
378
|
+
to your bot.
|
|
379
|
+
|
|
380
|
+
- Added `body` to the `WebsocketRunnerArguments` as an optional parameter.
|
|
381
|
+
Custom `body` information can be passed from the server into the bot file via
|
|
382
|
+
the `bot()` method using this new parameter.
|
|
383
|
+
|
|
384
|
+
- Added video streaming support to `LiveKitTransport`.
|
|
385
|
+
|
|
386
|
+
- Added `OpenAIRealtimeLLMService` and `AzureRealtimeLLMService` which provide
|
|
387
|
+
access to OpenAI Realtime.
|
|
388
|
+
|
|
389
|
+
### Changed
|
|
390
|
+
|
|
391
|
+
- `pipeline.tests.utils.run_test()` now allows passing `PipelineParams` instead
|
|
392
|
+
of individual parameters.
|
|
393
|
+
|
|
394
|
+
### Removed
|
|
395
|
+
|
|
396
|
+
- Remove `VisionImageRawFrame` in favor of context frames (`LLMContextFrame` or
|
|
397
|
+
`OpenAILLMContextFrame`).
|
|
398
|
+
|
|
399
|
+
### Deprecated
|
|
400
|
+
|
|
401
|
+
- `BotInterruptionFrame` is now deprecated, use `InterruptionTaskFrame` instead.
|
|
402
|
+
|
|
403
|
+
- `StartInterruptionFrame` is now deprected, use `InterruptionFrame` instead.
|
|
404
|
+
|
|
405
|
+
- Deprecate `VisionImageFrameAggregator` because `VisionImageRawFrame` has been
|
|
406
|
+
removed. See the `12*` examples for the new recommended replacement pattern.
|
|
407
|
+
|
|
408
|
+
- `NoisereduceFilter` is now deprecated and will be removed in a future
|
|
409
|
+
version. Use other audio filters like `KrispFilter` or `AICFilter`.
|
|
410
|
+
|
|
411
|
+
- Deprecated `OpenAIRealtimeBetaLLMService` and `AzureRealtimeBetaLLMService`.
|
|
412
|
+
Use `OpenAIRealtimeLLMService` and `AzureRealtimeLLMService`, respectively.
|
|
413
|
+
Each service will be removed in an upcoming version, 1.0.0.
|
|
414
|
+
|
|
415
|
+
### Fixed
|
|
416
|
+
|
|
417
|
+
- Fixed a `BaseOutputTransport` issue that caused incorrect detection of when
|
|
418
|
+
the bot stopped talking while using an audio mixer.
|
|
419
|
+
|
|
420
|
+
- Fixed a `LiveKitTransport` issue where RTVI messages were not properly
|
|
421
|
+
encoded.
|
|
422
|
+
|
|
423
|
+
- Add additional fixups to Mistral context messages to ensure they meet
|
|
424
|
+
Mistral-specific requirements, avoiding Mistral "invalid request" errors.
|
|
425
|
+
|
|
426
|
+
- Fixed `DailyTransport` transcription handling to gracefully handle missing
|
|
427
|
+
`rawResponse` field in transcription messages, preventing KeyError crashes.
|
|
428
|
+
|
|
8
429
|
## [0.0.84] - 2025-09-05
|
|
9
430
|
|
|
10
431
|
### Added
|
|
@@ -1066,7 +1487,7 @@ quality and critical bugs impacting `ParallelPipelines` functionality.**
|
|
|
1066
1487
|
- Added `session_token` parameter to `AWSNovaSonicLLMService`.
|
|
1067
1488
|
|
|
1068
1489
|
- Added Gemini Multimodal Live File API for uploading, fetching, listing, and
|
|
1069
|
-
deleting files. See `26f-gemini-
|
|
1490
|
+
deleting files. See `26f-gemini-live-files-api.py` for example usage.
|
|
1070
1491
|
|
|
1071
1492
|
### Changed
|
|
1072
1493
|
|
|
@@ -3072,7 +3493,7 @@ stt = DeepgramSTTService(..., live_options=LiveOptions(model="nova-2-general"))
|
|
|
3072
3493
|
- Added the new modalities option and helper function to set Gemini output
|
|
3073
3494
|
modalities.
|
|
3074
3495
|
|
|
3075
|
-
- Added `examples/foundational/26d-gemini-
|
|
3496
|
+
- Added `examples/foundational/26d-gemini-live-text.py` which is
|
|
3076
3497
|
using Gemini as TEXT modality and using another TTS provider for TTS process.
|
|
3077
3498
|
|
|
3078
3499
|
### Changed
|
|
@@ -3259,9 +3680,9 @@ stt = DeepgramSTTService(..., live_options=LiveOptions(model="nova-2-general"))
|
|
|
3259
3680
|
- Added new foundational examples for `GeminiMultimodalLiveLLMService`:
|
|
3260
3681
|
|
|
3261
3682
|
- `26-gemini-multimodal-live.py`
|
|
3262
|
-
- `26a-gemini-
|
|
3263
|
-
- `26b-gemini-
|
|
3264
|
-
- `26c-gemini-
|
|
3683
|
+
- `26a-gemini-live-transcription.py`
|
|
3684
|
+
- `26b-gemini-live-video.py`
|
|
3685
|
+
- `26c-gemini-live-video.py`
|
|
3265
3686
|
|
|
3266
3687
|
- Added `SimliVideoService`. This is an integration for Simli AI avatars.
|
|
3267
3688
|
(see https://www.simli.com)
|