dv-pipecat-ai 0.0.82.dev776__tar.gz → 0.0.82.dev815__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.
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/github.yml +13 -1
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/smart-auto-release.yml +23 -19
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.gitignore +1 -1
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/PKG-INFO +1 -1
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +4 -3
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/values-prod.yaml +3 -3
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/values-stage.yaml +3 -3
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/values.yaml +2 -2
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/PKG-INFO +1 -1
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/SOURCES.txt +3 -0
- dv_pipecat_ai-0.0.82.dev815/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
- dv_pipecat_ai-0.0.82.dev815/src/pipecat/serializers/asterisk.py +129 -0
- dv_pipecat_ai-0.0.82.dev815/src/pipecat/services/vistaar/__init__.py +5 -0
- dv_pipecat_ai-0.0.82.dev815/src/pipecat/services/vistaar/llm.py +431 -0
- dv_pipecat_ai-0.0.82.dev776/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.dockerignore +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/build.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/coverage.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/format.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/promote-prod.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/publish.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/publish_test.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/python-compatibility.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/set-traffic-split.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/sync-quickstart.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/tests.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.pre-commit-config.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.readthedocs.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/CHANGELOG.md +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/CHANGELOG.md.template +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/CLAUDE.md +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/CONTRIBUTING.md +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/LICENSE +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/MANIFEST.in +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/README.md +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/ansible.cfg +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/ansible_deployment.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/cleanup_old_containers.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/codecov.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/create-new-machine/ansible.cfg +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/create-new-machine/ansible_setup.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/create-new-machine/inventory.ini +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/create-new-machine/replace_env.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/create-new-machine/setup_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/create_inventory.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/delete_old_dockers.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/deploy.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/deploy_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/docker-compose.dev.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/dump_logs.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/env.example +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/fetch_logs.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/inventory.ini +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/.helmignore +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/Chart.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/service.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/values-canary.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/istio/destination-virtualservice.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/merge-code-into-single-file.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/pipecat.png +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/pyproject.toml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/restart.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/restart_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/setup.cfg +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/requires.txt +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/base_llm_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/schemas/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/schemas/direct_function.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/schemas/function_schema.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/anthropic_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/bedrock_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/gemini_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/open_ai_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/koala_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/krisp_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/interruptions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/mixers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/resamplers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/base_turn_analyzer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/vad/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/vad/data/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/vad/silero.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/clocks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/clocks/base_clock.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/clocks/system_clock.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/extensions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/extensions/voicemail/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/extensions/voicemail/voicemail_detector.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/frames/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/frames/frames.proto +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/frames/frames.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/metrics/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/metrics/metrics.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/base_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/loggers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/turn_tracking_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/base_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/base_task.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/pipeline.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/runner.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/task.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/task_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/dtmf_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/gated.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/gated_openai_llm_context.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/llm_response.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/sentence.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/user_response.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/async_generator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/audio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/consumer_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/dtmf_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/frame_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/function_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/identity_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/null_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/stt_mute_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/frame_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/frameworks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/frameworks/langchain.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/frameworks/rtvi.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/gstreamer/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/idle_frame_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/logger.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/metrics/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/metrics/sentry.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/producer_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/text_transformer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/transcript_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/user_idle_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/py.typed +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/daily.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/livekit.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/run.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/types.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/base_serializer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/convox.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/exotel.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/genesys.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/livekit.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/plivo.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/protobuf.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/telnyx.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/twilio.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ai_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ai_services.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/anthropic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/anthropic/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/assemblyai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/assemblyai/models.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/assemblyai/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/asyncai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/asyncai/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws_nova_sonic/aws.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws_nova_sonic/ready.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/common.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/image.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/cartesia/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/cartesia/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/cartesia/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/cerebras/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/cerebras/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/deepgram/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/deepgram/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/deepgram/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/deepseek/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/deepseek/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/elevenlabs/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/elevenlabs/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fal/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fal/image.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fal/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fireworks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fireworks/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fish/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fish/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gemini_multimodal_live/file_api.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gemini_multimodal_live/gemini.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gladia/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gladia/config.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gladia/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/frames.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/google.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/image.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/llm_openai.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/llm_vertex.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/rtvi.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/test-google-chirp.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/grok/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/grok/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/groq/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/groq/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/groq/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/groq/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/hamsa/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/hamsa/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/heygen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/heygen/api.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/heygen/client.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/heygen/video.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/image_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/inworld/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/inworld/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/llm_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/lmnt/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/lmnt/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/mcp_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/mem0/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/mem0/memory.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/minimax/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/minimax/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/mistral/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/mistral/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/moondream/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/moondream/vision.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/neuphonic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/neuphonic/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/nim/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/nim/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ollama/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ollama/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/base_llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/image.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/openai.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openpipe/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openpipe/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openrouter/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openrouter/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/perplexity/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/perplexity/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/piper/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/piper/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/playht/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/playht/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/qwen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/qwen/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/rime/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/rime/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/riva/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/riva/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/riva/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/sambanova/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/sambanova/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/sambanova/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/sarvam/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/sarvam/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/simli/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/simli/video.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/soniox/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/soniox/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/speechmatics/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/speechmatics/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/stt_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/tavus/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/tavus/video.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/together/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/together/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/tts_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ultravox/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ultravox/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/vision_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/websocket_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/whisper/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/whisper/base_stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/whisper/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/xtts/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/xtts/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/sync/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/sync/base_notifier.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/sync/event_notifier.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/tests/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/tests/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transcriptions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transcriptions/language.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/base_input.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/base_output.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/base_transport.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/local/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/local/audio.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/local/tk.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/fastapi_websocket.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/small_webrtc.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/webrtc_connection.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/websocket_client.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/websocket_server.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/daily.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/helpers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/livekit.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/tavus.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/asyncio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/asyncio/task_manager.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/base_object.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/logger_config.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/network.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/string.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/base_text_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/time.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/class_decorators.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/service_attributes.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/service_decorators.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/setup.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/stop_container.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/uv.lock +0 -0
|
@@ -88,7 +88,7 @@ jobs:
|
|
|
88
88
|
echo "📦 Required pipecat version: $PIPECAT_VERSION"
|
|
89
89
|
|
|
90
90
|
# Verify package is available on PyPI with retry logic
|
|
91
|
-
MAX_ATTEMPTS=
|
|
91
|
+
MAX_ATTEMPTS=2
|
|
92
92
|
ATTEMPT=1
|
|
93
93
|
PACKAGE_AVAILABLE=false
|
|
94
94
|
|
|
@@ -251,11 +251,17 @@ jobs:
|
|
|
251
251
|
echo "❌ ADMIN_API_KEY not found in SECRETS_JSON"
|
|
252
252
|
exit 1
|
|
253
253
|
fi
|
|
254
|
+
STAGE_CALLING_BACKEND_URL=$(echo "$SECRETS_JSON" | jq -r '.CALLING_BACKEND_URL // empty')
|
|
255
|
+
if [ -z "$STAGE_CALLING_BACKEND_URL" ]; then
|
|
256
|
+
echo "❌ CALLING_BACKEND_URL not found in SECRETS_JSON"
|
|
257
|
+
exit 1
|
|
258
|
+
fi
|
|
254
259
|
helm upgrade --install $HELM_RELEASE_NAME ./k8s/dv-pipecat \
|
|
255
260
|
-f ./k8s/dv-pipecat/values-stage.yaml \
|
|
256
261
|
--set image.repository=$REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/$IMAGE_NAME \
|
|
257
262
|
--set image.tag=$GITHUB_SHA \
|
|
258
263
|
--set ADMIN_API_KEY="${STAGE_ADMIN_API_KEY}" \
|
|
264
|
+
--set CALLING_BACKEND_URL="${STAGE_CALLING_BACKEND_URL}" \
|
|
259
265
|
--namespace default
|
|
260
266
|
|
|
261
267
|
# 2) **ONLY** when branch is dv-main: deploy/update the CANARY release
|
|
@@ -267,6 +273,11 @@ jobs:
|
|
|
267
273
|
echo "❌ ADMIN_API_KEY not found in SECRETS_JSON"
|
|
268
274
|
exit 1
|
|
269
275
|
fi
|
|
276
|
+
PROD_CALLING_BACKEND_URL=$(echo "$SECRETS_JSON" | jq -r '.CALLING_BACKEND_URL // empty')
|
|
277
|
+
if [ -z "$PROD_CALLING_BACKEND_URL" ]; then
|
|
278
|
+
echo "❌ CALLING_BACKEND_URL not found in SECRETS_JSON"
|
|
279
|
+
exit 1
|
|
280
|
+
fi
|
|
270
281
|
echo "🚀 Deploying canary service..."
|
|
271
282
|
helm upgrade --install ${HELM_RELEASE_NAME}-canary ./k8s/dv-pipecat \
|
|
272
283
|
-f ./k8s/dv-pipecat/values-prod.yaml \
|
|
@@ -274,6 +285,7 @@ jobs:
|
|
|
274
285
|
--set image.repository=$REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/$IMAGE_NAME \
|
|
275
286
|
--set image.tag=$GITHUB_SHA \
|
|
276
287
|
--set ADMIN_API_KEY="${PROD_ADMIN_API_KEY}" \
|
|
288
|
+
--set CALLING_BACKEND_URL="${PROD_CALLING_BACKEND_URL}" \
|
|
277
289
|
--namespace default
|
|
278
290
|
|
|
279
291
|
# - name: Deployment validation
|
{dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/smart-auto-release.yml
RENAMED
|
@@ -53,40 +53,44 @@ jobs:
|
|
|
53
53
|
run: |
|
|
54
54
|
echo "Getting current versions..."
|
|
55
55
|
|
|
56
|
-
# Get
|
|
57
|
-
PYPI_VERSION=$(python scripts/get-pypi-version.py ${{ env.PACKAGE_NAME }})
|
|
58
|
-
echo "PYPI_VERSION=$PYPI_VERSION" >> $GITHUB_OUTPUT
|
|
59
|
-
|
|
60
|
-
# Get remote-requirements.txt version
|
|
56
|
+
# Get merged branch (dv-stage) requirements version
|
|
61
57
|
if [ -f "${{ env.REQUIREMENTS_FILE }}" ]; then
|
|
62
|
-
|
|
63
|
-
echo "
|
|
58
|
+
MERGED_REQUIREMENTS_VERSION=$(grep "${{ env.PACKAGE_NAME }}" ${{ env.REQUIREMENTS_FILE }} | sed -n 's/.*==\([^]]*\).*/\1/p')
|
|
59
|
+
echo "MERGED_REQUIREMENTS_VERSION=$MERGED_REQUIREMENTS_VERSION" >> $GITHUB_OUTPUT
|
|
64
60
|
else
|
|
65
|
-
echo "
|
|
61
|
+
echo "MERGED_REQUIREMENTS_VERSION=0.0.0.dev0" >> $GITHUB_OUTPUT
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
# Get base branch requirements version
|
|
65
|
+
git show ${{ github.event.pull_request.base.sha }}:${{ env.REQUIREMENTS_FILE }} > base_requirements.txt 2>/dev/null || echo "dv-pipecat-ai==0.0.0.dev0" > base_requirements.txt
|
|
66
|
+
BASE_REQUIREMENTS_VERSION=$(grep "${{ env.PACKAGE_NAME }}" base_requirements.txt | sed -n 's/.*==\([^]]*\).*/\1/p')
|
|
67
|
+
if [ -z "$BASE_REQUIREMENTS_VERSION" ]; then
|
|
68
|
+
BASE_REQUIREMENTS_VERSION="0.0.0.dev0"
|
|
66
69
|
fi
|
|
70
|
+
echo "BASE_REQUIREMENTS_VERSION=$BASE_REQUIREMENTS_VERSION" >> $GITHUB_OUTPUT
|
|
67
71
|
|
|
68
72
|
echo "📊 Version Status:"
|
|
69
|
-
echo "
|
|
70
|
-
echo "
|
|
73
|
+
echo " Base branch requirements version: $BASE_REQUIREMENTS_VERSION"
|
|
74
|
+
echo " Merged branch requirements version: $MERGED_REQUIREMENTS_VERSION"
|
|
71
75
|
|
|
72
76
|
- name: Decide release action
|
|
73
77
|
if: steps.check-changes.outputs.HAS_PIPECAT_CHANGES == 'true'
|
|
74
78
|
id: decision
|
|
75
79
|
run: |
|
|
76
|
-
|
|
77
|
-
|
|
80
|
+
BASE_VERSION="${{ steps.versions.outputs.BASE_REQUIREMENTS_VERSION }}"
|
|
81
|
+
MERGED_VERSION="${{ steps.versions.outputs.MERGED_REQUIREMENTS_VERSION }}"
|
|
78
82
|
|
|
79
83
|
echo "🤔 Decision Logic:"
|
|
80
|
-
echo "
|
|
81
|
-
echo "
|
|
84
|
+
echo " Base branch version: $BASE_VERSION"
|
|
85
|
+
echo " Merged branch version: $MERGED_VERSION"
|
|
82
86
|
|
|
83
|
-
if [ "$
|
|
87
|
+
if [ "$BASE_VERSION" = "$MERGED_VERSION" ]; then
|
|
84
88
|
echo "SHOULD_RELEASE=true" >> $GITHUB_OUTPUT
|
|
85
|
-
echo "REASON=Versions match - auto-bumping needed" >> $GITHUB_OUTPUT
|
|
86
|
-
echo "✅ Decision: AUTO-RELEASE (versions match)"
|
|
89
|
+
echo "REASON=Versions match between branches - auto-bumping needed" >> $GITHUB_OUTPUT
|
|
90
|
+
echo "✅ Decision: AUTO-RELEASE (versions match between branches)"
|
|
87
91
|
else
|
|
88
92
|
echo "SHOULD_RELEASE=false" >> $GITHUB_OUTPUT
|
|
89
|
-
echo "REASON=Developer already updated version" >> $GITHUB_OUTPUT
|
|
93
|
+
echo "REASON=Developer already updated version in this PR" >> $GITHUB_OUTPUT
|
|
90
94
|
echo "⏭️ Decision: SKIP (developer handled versioning)"
|
|
91
95
|
fi
|
|
92
96
|
|
|
@@ -98,7 +102,7 @@ jobs:
|
|
|
98
102
|
SKIP_REASON="No src/pipecat changes in this PR"
|
|
99
103
|
else
|
|
100
104
|
echo "⏭️ SKIPPING: ${{ steps.decision.outputs.REASON }}"
|
|
101
|
-
SKIP_REASON="Developer already updated version"
|
|
105
|
+
SKIP_REASON="Developer already updated version in this PR"
|
|
102
106
|
fi
|
|
103
107
|
echo "Skip reason: $SKIP_REASON"
|
|
104
108
|
|
|
@@ -44,11 +44,12 @@ spec:
|
|
|
44
44
|
name: {{ include "dv-pipecat.fullname" . }}-http-auth
|
|
45
45
|
metadata:
|
|
46
46
|
# The URL of your API
|
|
47
|
-
url: "https://67397cb486a3.ngrok-free.app/ca/api/v0/admin/global/predicted-
|
|
47
|
+
# url: "https://67397cb486a3.ngrok-free.app/ca/api/v0/admin/global/predicted-pods"
|
|
48
|
+
url: {{ .Values.CALLING_BACKEND_URL }}/admin/global/predicted-pods
|
|
48
49
|
# The JMESPath to find the number in the JSON response
|
|
49
|
-
valueLocation: {{ .Values.keda.jsonPath | default "
|
|
50
|
+
valueLocation: {{ .Values.keda.jsonPath | default "predicted_pods" | quote }}
|
|
50
51
|
# This is the divisor. KEDA calculates: desired_pods = (api_value / targetValue)
|
|
51
|
-
targetValue: {{ .Values.keda.targetValue | default "
|
|
52
|
+
targetValue: {{ .Values.keda.targetValue | default "1" | quote }}
|
|
52
53
|
# Authentication configuration
|
|
53
54
|
authMode: "apiKey"
|
|
54
55
|
method: "header"
|
|
@@ -66,9 +66,9 @@ terminationGracePeriodSeconds: 270 # 4.5 minutes
|
|
|
66
66
|
|
|
67
67
|
# KEDA Configuration for production
|
|
68
68
|
keda:
|
|
69
|
-
enabled:
|
|
70
|
-
jsonPath: "
|
|
71
|
-
targetValue: "
|
|
69
|
+
enabled: true
|
|
70
|
+
jsonPath: "predicted_pods"
|
|
71
|
+
targetValue: "1"
|
|
72
72
|
minReplicaCount: 4
|
|
73
73
|
maxReplicaCount: 200
|
|
74
74
|
pollingInterval: 60
|
{dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/values-stage.yaml
RENAMED
|
@@ -61,10 +61,10 @@ terminationGracePeriodSeconds: 270 # 4.5 minutes
|
|
|
61
61
|
# KEDA Configuration for staging
|
|
62
62
|
keda:
|
|
63
63
|
enabled: true
|
|
64
|
-
jsonPath: "
|
|
65
|
-
targetValue: "
|
|
64
|
+
jsonPath: "predicted_pods"
|
|
65
|
+
targetValue: "1"
|
|
66
66
|
minReplicaCount: 1
|
|
67
|
-
maxReplicaCount:
|
|
67
|
+
maxReplicaCount: 2
|
|
68
68
|
pollingInterval: 30
|
|
69
69
|
cooldownPeriod: 30
|
|
70
70
|
# Staging-optimized scaling behavior to prevent fluctuations
|
|
@@ -129,9 +129,9 @@ envFrom:
|
|
|
129
129
|
keda:
|
|
130
130
|
enabled: false
|
|
131
131
|
# JSON path to extract the scheduled calls value
|
|
132
|
-
jsonPath: "
|
|
132
|
+
jsonPath: "predicted_pods"
|
|
133
133
|
# Target value for scaling (calls per pod)
|
|
134
|
-
targetValue: "
|
|
134
|
+
targetValue: "1"
|
|
135
135
|
# HTTP method for API calls
|
|
136
136
|
httpMethod: "GET"
|
|
137
137
|
# Custom HTTP headers (optional)
|
{dv_pipecat_ai-0.0.82.dev776 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/SOURCES.txt
RENAMED
|
@@ -202,6 +202,7 @@ src/pipecat/runner/run.py
|
|
|
202
202
|
src/pipecat/runner/types.py
|
|
203
203
|
src/pipecat/runner/utils.py
|
|
204
204
|
src/pipecat/serializers/__init__.py
|
|
205
|
+
src/pipecat/serializers/asterisk.py
|
|
205
206
|
src/pipecat/serializers/base_serializer.py
|
|
206
207
|
src/pipecat/serializers/convox.py
|
|
207
208
|
src/pipecat/serializers/exotel.py
|
|
@@ -358,6 +359,8 @@ src/pipecat/services/together/__init__.py
|
|
|
358
359
|
src/pipecat/services/together/llm.py
|
|
359
360
|
src/pipecat/services/ultravox/__init__.py
|
|
360
361
|
src/pipecat/services/ultravox/stt.py
|
|
362
|
+
src/pipecat/services/vistaar/__init__.py
|
|
363
|
+
src/pipecat/services/vistaar/llm.py
|
|
361
364
|
src/pipecat/services/whisper/__init__.py
|
|
362
365
|
src/pipecat/services/whisper/base_stt.py
|
|
363
366
|
src/pipecat/services/whisper/stt.py
|
|
Binary file
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# asterisk_ws_serializer.py
|
|
2
|
+
import base64
|
|
3
|
+
import json
|
|
4
|
+
from typing import Literal, Optional
|
|
5
|
+
|
|
6
|
+
from pydantic import BaseModel
|
|
7
|
+
|
|
8
|
+
from pipecat.audio.utils import create_stream_resampler, pcm_to_ulaw, ulaw_to_pcm
|
|
9
|
+
from pipecat.frames.frames import (
|
|
10
|
+
AudioRawFrame,
|
|
11
|
+
CancelFrame,
|
|
12
|
+
EndFrame,
|
|
13
|
+
Frame,
|
|
14
|
+
InputAudioRawFrame,
|
|
15
|
+
StartFrame,
|
|
16
|
+
StartInterruptionFrame,
|
|
17
|
+
TransportMessageFrame,
|
|
18
|
+
TransportMessageUrgentFrame,
|
|
19
|
+
)
|
|
20
|
+
from pipecat.serializers.base_serializer import FrameSerializer, FrameSerializerType
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class AsteriskFrameSerializer(FrameSerializer):
|
|
24
|
+
class InputParams(BaseModel):
|
|
25
|
+
"""Configuration parameters for AsteriskFrameSerializer.
|
|
26
|
+
|
|
27
|
+
Parameters:
|
|
28
|
+
telephony_encoding: The encoding used by the telephony system (e.g., "pcmu" for μ-law).
|
|
29
|
+
telephony_sample_rate: The sample rate used by the telephony system (e.g., 8000 Hz).
|
|
30
|
+
sample_rate: Optional override for pipeline input sample rate.
|
|
31
|
+
auto_hang_up: Whether to automatically terminate call on EndFrame.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
# What the ADAPTER/Asterisk is sending/expecting on the wire:
|
|
35
|
+
# "pcmu" -> μ-law @ 8k; "pcm16" -> signed 16-bit @ 8k
|
|
36
|
+
telephony_encoding: Literal["pcmu", "pcm16"] = "pcmu"
|
|
37
|
+
telephony_sample_rate: int = 8000
|
|
38
|
+
sample_rate: Optional[int] = None # pipeline input rate
|
|
39
|
+
auto_hang_up: bool = False # no-op here; adapter handles hangup
|
|
40
|
+
|
|
41
|
+
def __init__(self, stream_id: str, params: Optional[InputParams] = None):
|
|
42
|
+
self._stream_id = stream_id
|
|
43
|
+
self._params = params or AsteriskFrameSerializer.InputParams()
|
|
44
|
+
self._tel_rate = self._params.telephony_sample_rate
|
|
45
|
+
self._sample_rate = 0
|
|
46
|
+
self._in_resampler = create_stream_resampler()
|
|
47
|
+
self._out_resampler = create_stream_resampler()
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def type(self) -> FrameSerializerType:
|
|
51
|
+
return FrameSerializerType.TEXT # we send/recv JSON strings
|
|
52
|
+
|
|
53
|
+
async def setup(self, frame: StartFrame):
|
|
54
|
+
self._sample_rate = self._params.sample_rate or frame.audio_in_sample_rate
|
|
55
|
+
|
|
56
|
+
# Pipecat -> Adapter (play to caller)
|
|
57
|
+
async def serialize(self, frame: Frame) -> str | bytes | None:
|
|
58
|
+
# On pipeline end, ask bridge to hang up
|
|
59
|
+
if (
|
|
60
|
+
self._params.auto_hang_up
|
|
61
|
+
and not self._hangup_sent
|
|
62
|
+
and isinstance(frame, (EndFrame, CancelFrame))
|
|
63
|
+
):
|
|
64
|
+
self._hangup_sent = True
|
|
65
|
+
return json.dumps({"event": "hangup"})
|
|
66
|
+
if isinstance(frame, StartInterruptionFrame):
|
|
67
|
+
return json.dumps({"event": "clear", "streamId": self._stream_id})
|
|
68
|
+
if isinstance(frame, AudioRawFrame):
|
|
69
|
+
pcm = frame.audio
|
|
70
|
+
if self._params.telephony_encoding == "pcmu":
|
|
71
|
+
ul = await pcm_to_ulaw(pcm, frame.sample_rate, self._tel_rate, self._out_resampler)
|
|
72
|
+
if not ul:
|
|
73
|
+
return None
|
|
74
|
+
payload = base64.b64encode(ul).decode("utf-8")
|
|
75
|
+
return json.dumps(
|
|
76
|
+
{
|
|
77
|
+
"event": "media",
|
|
78
|
+
"encoding": "pcmu",
|
|
79
|
+
"sampleRate": self._tel_rate,
|
|
80
|
+
"payload": payload,
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
else: # "pcm16"
|
|
84
|
+
# resample to 8k if needed, but data stays PCM16 bytes
|
|
85
|
+
pcm8 = await self._out_resampler.resample(pcm, frame.sample_rate, self._tel_rate)
|
|
86
|
+
if not pcm8:
|
|
87
|
+
return None
|
|
88
|
+
payload = base64.b64encode(pcm8).decode("utf-8")
|
|
89
|
+
return json.dumps(
|
|
90
|
+
{
|
|
91
|
+
"event": "media",
|
|
92
|
+
"encoding": "pcm16",
|
|
93
|
+
"sampleRate": self._tel_rate,
|
|
94
|
+
"payload": payload,
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
if isinstance(frame, (TransportMessageFrame, TransportMessageUrgentFrame)):
|
|
98
|
+
return json.dumps(frame.message)
|
|
99
|
+
return None
|
|
100
|
+
|
|
101
|
+
# Adapter -> Pipecat (audio from caller)
|
|
102
|
+
async def deserialize(self, data: str | bytes) -> Frame | None:
|
|
103
|
+
try:
|
|
104
|
+
msg = json.loads(data)
|
|
105
|
+
except Exception:
|
|
106
|
+
return None
|
|
107
|
+
if msg.get("event") == "media":
|
|
108
|
+
enc = msg.get("encoding")
|
|
109
|
+
sr = int(msg.get("sampleRate", self._tel_rate))
|
|
110
|
+
raw = base64.b64decode(msg.get("payload", ""))
|
|
111
|
+
if not raw:
|
|
112
|
+
return None
|
|
113
|
+
if enc == "pcmu":
|
|
114
|
+
pcm = await ulaw_to_pcm(raw, sr, self._sample_rate, self._in_resampler)
|
|
115
|
+
elif enc == "pcm16":
|
|
116
|
+
# resample if pipeline rate != 8k
|
|
117
|
+
pcm = await self._in_resampler.resample(raw, sr, self._sample_rate)
|
|
118
|
+
else:
|
|
119
|
+
return None
|
|
120
|
+
if not pcm:
|
|
121
|
+
return None
|
|
122
|
+
return InputAudioRawFrame(audio=pcm, num_channels=1, sample_rate=self._sample_rate)
|
|
123
|
+
elif msg.get("event") == "dtmf":
|
|
124
|
+
# optional: map to InputDTMFFrame if you want
|
|
125
|
+
return None
|
|
126
|
+
elif msg.get("event") == "hangup":
|
|
127
|
+
# Bridge is hanging up; you can treat as EndFrame if you want.
|
|
128
|
+
return CancelFrame()
|
|
129
|
+
return None
|