dv-pipecat-ai 0.0.82.dev23__tar.gz → 0.0.82.dev37__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.

Files changed (461) hide show
  1. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/github.yml +147 -38
  2. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/PKG-INFO +1 -1
  3. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/values-prod.yaml +1 -1
  4. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/values-stage.yaml +1 -1
  5. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/dv_pipecat_ai.egg-info/PKG-INFO +1 -1
  6. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/dv_pipecat_ai.egg-info/SOURCES.txt +1 -2
  7. dv_pipecat_ai-0.0.82.dev37/src/pipecat/audio/vad/data/silero_vad_v2.onnx +0 -0
  8. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/vad/silero.py +9 -3
  9. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/azure/llm.py +6 -8
  10. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/vistaar/llm.py +16 -7
  11. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/websocket/fastapi.py +1 -1
  12. dv_pipecat_ai-0.0.82.dev23/.github/workflows/smart-auto-release.yml +0 -192
  13. dv_pipecat_ai-0.0.82.dev23/src/pipecat/services/openai.py +0 -698
  14. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.dockerignore +0 -0
  15. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
  16. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
  17. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
  18. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
  19. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
  20. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
  21. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
  22. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  23. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  24. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/build.yaml +0 -0
  25. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/coverage.yaml +0 -0
  26. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/format.yaml +0 -0
  27. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/promote-prod.yml +0 -0
  28. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/publish.yaml +0 -0
  29. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/publish_test.yaml +0 -0
  30. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/python-compatibility.yaml +0 -0
  31. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/set-traffic-split.yml +0 -0
  32. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/sync-quickstart.yaml +0 -0
  33. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.github/workflows/tests.yaml +0 -0
  34. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.gitignore +0 -0
  35. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.pre-commit-config.yaml +0 -0
  36. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/.readthedocs.yaml +0 -0
  37. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/CHANGELOG.md +0 -0
  38. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/CHANGELOG.md.template +0 -0
  39. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/CLAUDE.md +0 -0
  40. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/CONTRIBUTING.md +0 -0
  41. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
  42. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/LICENSE +0 -0
  43. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/MANIFEST.in +0 -0
  44. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/README.md +0 -0
  45. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/ansible.cfg +0 -0
  46. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/ansible_deployment.sh +0 -0
  47. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/cleanup_old_containers.yml +0 -0
  48. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/codecov.yml +0 -0
  49. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/create-new-machine/ansible.cfg +0 -0
  50. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/create-new-machine/ansible_setup.sh +0 -0
  51. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/create-new-machine/inventory.ini +0 -0
  52. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/create-new-machine/replace_env.yml +0 -0
  53. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/create-new-machine/setup_playbook.yml +0 -0
  54. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/create_inventory.py +0 -0
  55. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/delete_old_dockers.sh +0 -0
  56. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/deploy.sh +0 -0
  57. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/deploy_playbook.yml +0 -0
  58. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/docker-compose.dev.yml +0 -0
  59. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/dump_logs.yml +0 -0
  60. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/env.example +0 -0
  61. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/fetch_logs.yml +0 -0
  62. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/inventory.ini +0 -0
  63. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/.helmignore +0 -0
  64. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/Chart.yaml +0 -0
  65. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
  66. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
  67. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
  68. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
  69. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
  70. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
  71. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
  72. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
  73. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
  74. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/pdb.yaml +0 -0
  75. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/templates/service.yaml +0 -0
  76. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/values-canary.yaml +0 -0
  77. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/dv-pipecat/values.yaml +0 -0
  78. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/k8s/istio/destination-virtualservice.yaml +0 -0
  79. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/merge-code-into-single-file.sh +0 -0
  80. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/pipecat.png +0 -0
  81. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/pyproject.toml +0 -0
  82. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/restart.sh +0 -0
  83. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/restart_playbook.yml +0 -0
  84. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/setup.cfg +0 -0
  85. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
  86. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/dv_pipecat_ai.egg-info/requires.txt +0 -0
  87. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
  88. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/__init__.py +0 -0
  89. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/__init__.py +0 -0
  90. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/base_llm_adapter.py +0 -0
  91. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/schemas/__init__.py +0 -0
  92. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/schemas/direct_function.py +0 -0
  93. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/schemas/function_schema.py +0 -0
  94. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
  95. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/services/__init__.py +0 -0
  96. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/services/anthropic_adapter.py +0 -0
  97. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +0 -0
  98. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/services/bedrock_adapter.py +0 -0
  99. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/services/gemini_adapter.py +0 -0
  100. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/services/open_ai_adapter.py +0 -0
  101. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +0 -0
  102. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/__init__.py +0 -0
  103. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/__init__.py +0 -0
  104. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-0.wav +0 -0
  105. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-1.wav +0 -0
  106. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-2.wav +0 -0
  107. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-3.wav +0 -0
  108. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-4.wav +0 -0
  109. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-5.wav +0 -0
  110. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-6.wav +0 -0
  111. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-7.wav +0 -0
  112. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-8.wav +0 -0
  113. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-9.wav +0 -0
  114. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-pound.wav +0 -0
  115. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/dtmf-star.wav +0 -0
  116. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/types.py +0 -0
  117. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/dtmf/utils.py +0 -0
  118. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/filters/__init__.py +0 -0
  119. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/filters/aic_filter.py +0 -0
  120. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
  121. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/filters/koala_filter.py +0 -0
  122. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/filters/krisp_filter.py +0 -0
  123. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
  124. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
  125. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/interruptions/__init__.py +0 -0
  126. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
  127. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
  128. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/mixers/__init__.py +0 -0
  129. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
  130. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
  131. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/resamplers/__init__.py +0 -0
  132. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
  133. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
  134. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
  135. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
  136. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/turn/__init__.py +0 -0
  137. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/turn/base_turn_analyzer.py +0 -0
  138. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
  139. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +0 -0
  140. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
  141. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +0 -0
  142. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
  143. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +0 -0
  144. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +0 -0
  145. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/utils.py +0 -0
  146. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/vad/__init__.py +0 -0
  147. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/vad/data/__init__.py +0 -0
  148. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
  149. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
  150. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/clocks/__init__.py +0 -0
  151. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/clocks/base_clock.py +0 -0
  152. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/clocks/system_clock.py +0 -0
  153. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/extensions/__init__.py +0 -0
  154. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/extensions/ivr/__init__.py +0 -0
  155. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/extensions/ivr/ivr_navigator.py +0 -0
  156. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/extensions/voicemail/__init__.py +0 -0
  157. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/extensions/voicemail/voicemail_detector.py +0 -0
  158. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/frames/__init__.py +0 -0
  159. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/frames/frames.proto +0 -0
  160. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/frames/frames.py +0 -0
  161. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
  162. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/metrics/__init__.py +0 -0
  163. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/metrics/metrics.py +0 -0
  164. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/observers/__init__.py +0 -0
  165. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/observers/base_observer.py +0 -0
  166. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/observers/loggers/__init__.py +0 -0
  167. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
  168. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
  169. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
  170. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
  171. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/observers/turn_tracking_observer.py +0 -0
  172. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/__init__.py +0 -0
  173. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/base_pipeline.py +0 -0
  174. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/base_task.py +0 -0
  175. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/llm_switcher.py +0 -0
  176. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
  177. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/pipeline.py +0 -0
  178. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/runner.py +0 -0
  179. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/service_switcher.py +0 -0
  180. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
  181. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/task.py +0 -0
  182. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/task_observer.py +0 -0
  183. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
  184. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/__init__.py +0 -0
  185. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/__init__.py +0 -0
  186. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/dtmf_aggregator.py +0 -0
  187. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/gated.py +0 -0
  188. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/gated_openai_llm_context.py +0 -0
  189. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/llm_context.py +0 -0
  190. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/llm_response.py +0 -0
  191. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/llm_response_universal.py +0 -0
  192. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
  193. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/sentence.py +0 -0
  194. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/user_response.py +0 -0
  195. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
  196. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/async_generator.py +0 -0
  197. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/audio/__init__.py +0 -0
  198. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
  199. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/consumer_processor.py +0 -0
  200. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/dtmf_aggregator.py +0 -0
  201. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/filters/__init__.py +0 -0
  202. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/filters/frame_filter.py +0 -0
  203. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/filters/function_filter.py +0 -0
  204. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/filters/identity_filter.py +0 -0
  205. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/filters/null_filter.py +0 -0
  206. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/filters/stt_mute_filter.py +0 -0
  207. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
  208. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
  209. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/frame_processor.py +0 -0
  210. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/frameworks/__init__.py +0 -0
  211. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/frameworks/langchain.py +0 -0
  212. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/frameworks/rtvi.py +0 -0
  213. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/gstreamer/__init__.py +0 -0
  214. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
  215. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/idle_frame_processor.py +0 -0
  216. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/logger.py +0 -0
  217. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/metrics/__init__.py +0 -0
  218. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
  219. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/metrics/sentry.py +0 -0
  220. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/producer_processor.py +0 -0
  221. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/text_transformer.py +0 -0
  222. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/transcript_processor.py +0 -0
  223. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
  224. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/processors/user_idle_processor.py +0 -0
  225. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/py.typed +0 -0
  226. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/runner/__init__.py +0 -0
  227. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/runner/daily.py +0 -0
  228. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/runner/livekit.py +0 -0
  229. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/runner/run.py +0 -0
  230. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/runner/types.py +0 -0
  231. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/runner/utils.py +0 -0
  232. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/serializers/__init__.py +0 -0
  233. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/serializers/asterisk.py +0 -0
  234. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/serializers/base_serializer.py +0 -0
  235. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/serializers/convox.py +0 -0
  236. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/serializers/exotel.py +0 -0
  237. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/serializers/livekit.py +0 -0
  238. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/serializers/plivo.py +0 -0
  239. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/serializers/protobuf.py +0 -0
  240. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/serializers/telnyx.py +0 -0
  241. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/serializers/twilio.py +0 -0
  242. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/__init__.py +0 -0
  243. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/ai_service.py +0 -0
  244. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/ai_services.py +0 -0
  245. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/anthropic/__init__.py +0 -0
  246. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/anthropic/llm.py +0 -0
  247. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/assemblyai/__init__.py +0 -0
  248. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/assemblyai/models.py +0 -0
  249. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/assemblyai/stt.py +0 -0
  250. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/asyncai/__init__.py +0 -0
  251. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/asyncai/tts.py +0 -0
  252. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/aws/__init__.py +0 -0
  253. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/aws/llm.py +0 -0
  254. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/aws/stt.py +0 -0
  255. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/aws/tts.py +0 -0
  256. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/aws/utils.py +0 -0
  257. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
  258. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/aws_nova_sonic/aws.py +0 -0
  259. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
  260. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
  261. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/aws_nova_sonic/ready.wav +0 -0
  262. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/azure/__init__.py +0 -0
  263. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/azure/common.py +0 -0
  264. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/azure/image.py +0 -0
  265. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/azure/stt.py +0 -0
  266. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/azure/tts.py +0 -0
  267. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/cartesia/__init__.py +0 -0
  268. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/cartesia/stt.py +0 -0
  269. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/cartesia/tts.py +0 -0
  270. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/cerebras/__init__.py +0 -0
  271. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/cerebras/llm.py +0 -0
  272. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/deepgram/__init__.py +0 -0
  273. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/deepgram/stt.py +0 -0
  274. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/deepgram/tts.py +0 -0
  275. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/deepseek/__init__.py +0 -0
  276. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/deepseek/llm.py +0 -0
  277. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/elevenlabs/__init__.py +0 -0
  278. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/elevenlabs/stt.py +0 -0
  279. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/elevenlabs/tts.py +0 -0
  280. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/fal/__init__.py +0 -0
  281. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/fal/image.py +0 -0
  282. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/fal/stt.py +0 -0
  283. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/fireworks/__init__.py +0 -0
  284. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/fireworks/llm.py +0 -0
  285. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/fish/__init__.py +0 -0
  286. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/fish/tts.py +0 -0
  287. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
  288. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
  289. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/gemini_multimodal_live/file_api.py +0 -0
  290. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/gemini_multimodal_live/gemini.py +0 -0
  291. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/gladia/__init__.py +0 -0
  292. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/gladia/config.py +0 -0
  293. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/gladia/stt.py +0 -0
  294. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/google/__init__.py +0 -0
  295. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/google/frames.py +0 -0
  296. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/google/google.py +0 -0
  297. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/google/image.py +0 -0
  298. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/google/llm.py +0 -0
  299. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/google/llm_openai.py +0 -0
  300. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/google/llm_vertex.py +0 -0
  301. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/google/rtvi.py +0 -0
  302. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/google/stt.py +0 -0
  303. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/google/tts.py +0 -0
  304. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/grok/__init__.py +0 -0
  305. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/grok/llm.py +0 -0
  306. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/groq/__init__.py +0 -0
  307. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/groq/llm.py +0 -0
  308. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/groq/stt.py +0 -0
  309. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/groq/tts.py +0 -0
  310. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/hamsa/__init__.py +0 -0
  311. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/hamsa/stt.py +0 -0
  312. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/heygen/__init__.py +0 -0
  313. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/heygen/api.py +0 -0
  314. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/heygen/client.py +0 -0
  315. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/heygen/video.py +0 -0
  316. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/image_service.py +0 -0
  317. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/inworld/__init__.py +0 -0
  318. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/inworld/tts.py +0 -0
  319. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/llm_service.py +0 -0
  320. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/lmnt/__init__.py +0 -0
  321. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/lmnt/tts.py +0 -0
  322. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/mcp_service.py +0 -0
  323. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/mem0/__init__.py +0 -0
  324. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/mem0/memory.py +0 -0
  325. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/minimax/__init__.py +0 -0
  326. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/minimax/tts.py +0 -0
  327. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/mistral/__init__.py +0 -0
  328. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/mistral/llm.py +0 -0
  329. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/moondream/__init__.py +0 -0
  330. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/moondream/vision.py +0 -0
  331. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/neuphonic/__init__.py +0 -0
  332. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/neuphonic/tts.py +0 -0
  333. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/nim/__init__.py +0 -0
  334. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/nim/llm.py +0 -0
  335. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/ollama/__init__.py +0 -0
  336. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/ollama/llm.py +0 -0
  337. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai/__init__.py +0 -0
  338. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai/base_llm.py +0 -0
  339. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai/image.py +0 -0
  340. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai/llm.py +0 -0
  341. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai/stt.py +0 -0
  342. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai/tts.py +0 -0
  343. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
  344. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
  345. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
  346. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
  347. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
  348. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openai_realtime_beta/openai.py +0 -0
  349. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openpipe/__init__.py +0 -0
  350. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openpipe/llm.py +0 -0
  351. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openrouter/__init__.py +0 -0
  352. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/openrouter/llm.py +0 -0
  353. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/perplexity/__init__.py +0 -0
  354. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/perplexity/llm.py +0 -0
  355. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/piper/__init__.py +0 -0
  356. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/piper/tts.py +0 -0
  357. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/playht/__init__.py +0 -0
  358. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/playht/tts.py +0 -0
  359. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/qwen/__init__.py +0 -0
  360. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/qwen/llm.py +0 -0
  361. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/rime/__init__.py +0 -0
  362. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/rime/tts.py +0 -0
  363. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/riva/__init__.py +0 -0
  364. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/riva/stt.py +0 -0
  365. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/riva/tts.py +0 -0
  366. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/sambanova/__init__.py +0 -0
  367. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/sambanova/llm.py +0 -0
  368. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/sambanova/stt.py +0 -0
  369. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/sarvam/__init__.py +0 -0
  370. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/sarvam/tts.py +0 -0
  371. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/simli/__init__.py +0 -0
  372. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/simli/video.py +0 -0
  373. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/soniox/__init__.py +0 -0
  374. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/soniox/stt.py +0 -0
  375. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/speechmatics/__init__.py +0 -0
  376. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/speechmatics/stt.py +0 -0
  377. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/stt_service.py +0 -0
  378. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/tavus/__init__.py +0 -0
  379. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/tavus/video.py +0 -0
  380. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/together/__init__.py +0 -0
  381. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/together/llm.py +0 -0
  382. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/tts_service.py +0 -0
  383. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/ultravox/__init__.py +0 -0
  384. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/ultravox/stt.py +0 -0
  385. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/vision_service.py +0 -0
  386. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/vistaar/__init__.py +0 -0
  387. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/websocket_service.py +0 -0
  388. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/whisper/__init__.py +0 -0
  389. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/whisper/base_stt.py +0 -0
  390. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/whisper/stt.py +0 -0
  391. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/xtts/__init__.py +0 -0
  392. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/services/xtts/tts.py +0 -0
  393. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/sync/__init__.py +0 -0
  394. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/sync/base_notifier.py +0 -0
  395. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/sync/event_notifier.py +0 -0
  396. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/tests/__init__.py +0 -0
  397. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/tests/utils.py +0 -0
  398. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transcriptions/__init__.py +0 -0
  399. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transcriptions/language.py +0 -0
  400. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/__init__.py +0 -0
  401. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/base_input.py +0 -0
  402. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/base_output.py +0 -0
  403. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/base_transport.py +0 -0
  404. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/daily/__init__.py +0 -0
  405. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/daily/transport.py +0 -0
  406. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/daily/utils.py +0 -0
  407. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/livekit/__init__.py +0 -0
  408. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/livekit/transport.py +0 -0
  409. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/local/__init__.py +0 -0
  410. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/local/audio.py +0 -0
  411. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/local/tk.py +0 -0
  412. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/network/__init__.py +0 -0
  413. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/network/fastapi_websocket.py +0 -0
  414. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/network/small_webrtc.py +0 -0
  415. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/network/webrtc_connection.py +0 -0
  416. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/network/websocket_client.py +0 -0
  417. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/network/websocket_server.py +0 -0
  418. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/services/__init__.py +0 -0
  419. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/services/daily.py +0 -0
  420. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/services/helpers/__init__.py +0 -0
  421. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
  422. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/services/livekit.py +0 -0
  423. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/services/tavus.py +0 -0
  424. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/smallwebrtc/__init__.py +0 -0
  425. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/smallwebrtc/connection.py +0 -0
  426. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/smallwebrtc/transport.py +0 -0
  427. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/tavus/__init__.py +0 -0
  428. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/tavus/transport.py +0 -0
  429. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/websocket/__init__.py +0 -0
  430. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/websocket/client.py +0 -0
  431. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/websocket/server.py +0 -0
  432. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/whatsapp/__init__.py +0 -0
  433. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/whatsapp/api.py +0 -0
  434. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/transports/whatsapp/client.py +0 -0
  435. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/__init__.py +0 -0
  436. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/asyncio/__init__.py +0 -0
  437. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/asyncio/task_manager.py +0 -0
  438. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/base_object.py +0 -0
  439. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/logger_config.py +0 -0
  440. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/network.py +0 -0
  441. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/string.py +0 -0
  442. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/text/__init__.py +0 -0
  443. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
  444. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/text/base_text_filter.py +0 -0
  445. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
  446. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
  447. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
  448. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
  449. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/time.py +0 -0
  450. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/tracing/__init__.py +0 -0
  451. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/tracing/class_decorators.py +0 -0
  452. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
  453. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/tracing/service_attributes.py +0 -0
  454. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/tracing/service_decorators.py +0 -0
  455. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/tracing/setup.py +0 -0
  456. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
  457. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
  458. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/src/pipecat/utils/utils.py +0 -0
  459. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/stop_container.yml +0 -0
  460. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/test_elevenlabs_stt_segmented.py +0 -0
  461. {dv_pipecat_ai-0.0.82.dev23 → dv_pipecat_ai-0.0.82.dev37}/uv.lock +0 -0
@@ -26,54 +26,158 @@ env:
26
26
 
27
27
  jobs:
28
28
  build-and-deploy:
29
+ # Skip dv-stage runs that are only the auto-bump commit we just pushed
30
+ if: github.ref != 'refs/heads/dv-stage' || !contains(github.event.head_commit.message, 'Auto-bump dv-pipecat-ai')
29
31
  runs-on: ubuntu-latest
30
32
  permissions:
31
- contents: read
33
+ contents: write
32
34
  id-token: write # Required for Workload Identity Federation
33
35
 
34
36
  steps:
35
- - name: Wait for auto-release to complete
36
- if: github.ref == 'refs/heads/dv-stage'
37
- run: |
38
- echo "⏳ Waiting for auto-release workflow to complete..."
39
-
40
- # Wait up to 10 minutes for the auto-release workflow
41
- MAX_WAIT_TIME=600 # 10 minutes in seconds
42
- WAIT_INTERVAL=30 # Check every 30 seconds
43
- ELAPSED_TIME=0
44
-
45
- while [ $ELAPSED_TIME -lt $MAX_WAIT_TIME ]; do
46
- # Check if any workflow runs are still in progress for this commit
47
- RUNNING_WORKFLOWS=$(gh api /repos/${{ github.repository }}/actions/runs \
48
- --jq '.workflow_runs[] | select(.head_sha == "${{ github.sha }}" and .name == "Smart Auto-Release on PR Merge" and .status == "in_progress") | .id' | wc -l)
49
-
50
- if [ "$RUNNING_WORKFLOWS" -eq 0 ]; then
51
- echo "✅ Auto-release workflow completed for commit ${{ github.sha }}"
52
- break
53
- fi
54
-
55
- echo "🔄 Auto-release still running, waiting ${WAIT_INTERVAL}s... (${ELAPSED_TIME}s elapsed)"
56
- sleep $WAIT_INTERVAL
57
- ELAPSED_TIME=$((ELAPSED_TIME + WAIT_INTERVAL))
58
- done
59
-
60
- if [ $ELAPSED_TIME -ge $MAX_WAIT_TIME ]; then
61
- echo "⚠️ Timeout waiting for auto-release workflow, proceeding anyway..."
62
- fi
63
- env:
64
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65
-
66
- - name: Checkout code (fresh after auto-release)
37
+ - name: Checkout code
67
38
  uses: actions/checkout@v4
68
39
  with:
69
40
  ref: ${{ github.ref }}
70
41
  fetch-depth: 0
71
42
 
43
+ # Integrated smart auto-release logic (moved from smart-auto-release.yml)
72
44
  - name: Set up Python
73
45
  uses: actions/setup-python@v4
74
46
  with:
75
47
  python-version: '3.10'
76
48
 
49
+ - name: Install build tooling
50
+ if: github.ref == 'refs/heads/dv-stage'
51
+ run: |
52
+ python -m pip install --upgrade pip
53
+ pip install build requests packaging
54
+
55
+ - name: Check for src/pipecat changes (push diff)
56
+ if: github.ref == 'refs/heads/dv-stage'
57
+ id: check_changes
58
+ run: |
59
+ echo "Checking for changes in src/pipecat between ${{ github.event.before }} and ${{ github.sha }}..."
60
+ if git diff --name-only ${{ github.event.before }}..${{ github.sha }} | grep -q "^src/pipecat"; then
61
+ echo "has_pipecat_changes=true" >> $GITHUB_OUTPUT
62
+ echo "✅ Found changes in src/pipecat"
63
+ else
64
+ echo "has_pipecat_changes=false" >> $GITHUB_OUTPUT
65
+ echo "ℹ️ No changes in src/pipecat detected"
66
+ fi
67
+
68
+ - name: Get dv-pipecat-ai versions (before vs after)
69
+ if: github.ref == 'refs/heads/dv-stage' && steps.check_changes.outputs.has_pipecat_changes == 'true'
70
+ id: versions
71
+ env:
72
+ REQUIREMENTS_FILE: examples/ringg-chatbot/remote-requirements.txt
73
+ PACKAGE_NAME: dv-pipecat-ai
74
+ run: |
75
+ echo "Getting current and previous ${PACKAGE_NAME} versions from ${REQUIREMENTS_FILE}..."
76
+
77
+ # Current merged version (after)
78
+ if [ -f "$REQUIREMENTS_FILE" ]; then
79
+ MERGED_REQUIREMENTS_VERSION=$(grep "${PACKAGE_NAME}" "$REQUIREMENTS_FILE" | sed -n 's/.*==\([^]]*\).*/\1/p')
80
+ fi
81
+ if [ -z "$MERGED_REQUIREMENTS_VERSION" ]; then
82
+ MERGED_REQUIREMENTS_VERSION="0.0.0.dev0"
83
+ fi
84
+ echo "merged_requirements_version=$MERGED_REQUIREMENTS_VERSION" >> $GITHUB_OUTPUT
85
+
86
+ # Previous version (before)
87
+ git show ${{ github.event.before }}:"$REQUIREMENTS_FILE" > before_requirements.txt 2>/dev/null || echo "${PACKAGE_NAME}==0.0.0.dev0" > before_requirements.txt
88
+ BASE_REQUIREMENTS_VERSION=$(grep "${PACKAGE_NAME}" before_requirements.txt | sed -n 's/.*==\([^]]*\).*/\1/p')
89
+ if [ -z "$BASE_REQUIREMENTS_VERSION" ]; then
90
+ BASE_REQUIREMENTS_VERSION="0.0.0.dev0"
91
+ fi
92
+ echo "base_requirements_version=$BASE_REQUIREMENTS_VERSION" >> $GITHUB_OUTPUT
93
+
94
+ echo "📊 Version Status:"
95
+ echo " Base (before) requirements version: $BASE_REQUIREMENTS_VERSION"
96
+ echo " Merged (after) requirements version: $MERGED_REQUIREMENTS_VERSION"
97
+
98
+ - name: Decide auto-release action
99
+ if: github.ref == 'refs/heads/dv-stage' && steps.check_changes.outputs.has_pipecat_changes == 'true'
100
+ id: decision
101
+ run: |
102
+ BASE_VERSION="${{ steps.versions.outputs.base_requirements_version }}"
103
+ MERGED_VERSION="${{ steps.versions.outputs.merged_requirements_version }}"
104
+
105
+ echo "🤔 Decision Logic:"
106
+ echo " Base version: $BASE_VERSION"
107
+ echo " Merged version: $MERGED_VERSION"
108
+
109
+ if [ "$BASE_VERSION" = "$MERGED_VERSION" ]; then
110
+ echo "should_release=true" >> $GITHUB_OUTPUT
111
+ echo "reason=Versions match between before/after - auto-bump needed" >> $GITHUB_OUTPUT
112
+ echo "✅ Decision: AUTO-RELEASE"
113
+ else
114
+ echo "should_release=false" >> $GITHUB_OUTPUT
115
+ echo "reason=Version already changed in the merge" >> $GITHUB_OUTPUT
116
+ echo "⏭️ Decision: SKIP (developer updated version)"
117
+ fi
118
+
119
+ - name: Build package (setuptools_scm)
120
+ if: github.ref == 'refs/heads/dv-stage' && steps.decision.outputs.should_release == 'true'
121
+ run: |
122
+ echo "🔨 Building package..."
123
+ python -m build
124
+ ls -la dist/
125
+
126
+ - name: Extract built version
127
+ if: github.ref == 'refs/heads/dv-stage' && steps.decision.outputs.should_release == 'true'
128
+ id: extract_version
129
+ run: |
130
+ WHEEL_FILE=$(ls dist/*.whl | head -1)
131
+ BUILT_VERSION=$(echo "$WHEEL_FILE" | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+)-.*/\1/')
132
+ echo "built_version=$BUILT_VERSION" >> $GITHUB_OUTPUT
133
+ echo "🔍 Built version: $BUILT_VERSION"
134
+ # Verify tar.gz matches
135
+ TAR_FILE=$(ls dist/*.tar.gz | head -1)
136
+ TAR_VERSION=$(echo "$TAR_FILE" | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+)\.tar\.gz/\1/')
137
+ [ "$BUILT_VERSION" = "$TAR_VERSION" ] || { echo "❌ Version mismatch"; exit 1; }
138
+
139
+ - name: Publish to PyPI
140
+ if: github.ref == 'refs/heads/dv-stage' && steps.decision.outputs.should_release == 'true'
141
+ uses: pypa/gh-action-pypi-publish@release/v1
142
+ with:
143
+ password: ${{ secrets.PYPI_API_TOKEN }}
144
+ print-hash: true
145
+ verbose: true
146
+
147
+ - name: Update remote-requirements.txt with built version and push
148
+ if: github.ref == 'refs/heads/dv-stage' && steps.decision.outputs.should_release == 'true'
149
+ env:
150
+ REQUIREMENTS_FILE: examples/ringg-chatbot/remote-requirements.txt
151
+ PACKAGE_NAME: dv-pipecat-ai
152
+ run: |
153
+ BUILT_VERSION="${{ steps.extract_version.outputs.built_version }}"
154
+ echo "📝 Updating ${REQUIREMENTS_FILE} to ${PACKAGE_NAME}==${BUILT_VERSION} (preserve extras)"
155
+ CURRENT_DEPS=$(grep "${PACKAGE_NAME}" "$REQUIREMENTS_FILE" | sed -n 's/.*\[\([^]]*\)\].*/\1/p')
156
+ if [ -z "$CURRENT_DEPS" ]; then
157
+ # No extras bracket found; keep line format simple
158
+ sed -i.bak "s/${PACKAGE_NAME}==.*/${PACKAGE_NAME}==${BUILT_VERSION}/" "$REQUIREMENTS_FILE"
159
+ else
160
+ sed -i.bak "s/${PACKAGE_NAME}\[.*\]==.*/${PACKAGE_NAME}[$CURRENT_DEPS]==${BUILT_VERSION}/" "$REQUIREMENTS_FILE"
161
+ fi
162
+ grep "${PACKAGE_NAME}" "$REQUIREMENTS_FILE"
163
+
164
+ git config --local user.email "action@github.com"
165
+ git config --local user.name "GitHub Action"
166
+ git add "$REQUIREMENTS_FILE"
167
+ git commit -m "🤖 Auto-bump ${PACKAGE_NAME} to ${BUILT_VERSION}"
168
+ git push origin HEAD:dv-stage
169
+
170
+ - name: Log auto-release skip reason
171
+ if: github.ref == 'refs/heads/dv-stage' && (steps.check_changes.outputs.has_pipecat_changes == 'false' || steps.decision.outputs.should_release == 'false')
172
+ run: |
173
+ if [ "${{ steps.check_changes.outputs.has_pipecat_changes }}" = "false" ]; then
174
+ echo "⏭️ SKIPPING auto-release: No src/pipecat changes detected"
175
+ else
176
+ echo "⏭️ SKIPPING auto-release: ${{ steps.decision.outputs.reason }}"
177
+ fi
178
+
179
+ # Python already set up above
180
+
77
181
  - name: Install Python dependencies
78
182
  run: |
79
183
  python -m pip install --upgrade pip
@@ -88,13 +192,14 @@ jobs:
88
192
  echo "📦 Required pipecat version: $PIPECAT_VERSION"
89
193
 
90
194
  # Verify package is available on PyPI with retry logic
91
- MAX_ATTEMPTS=2
195
+ MAX_ATTEMPTS=12
92
196
  ATTEMPT=1
197
+ WAIT_TIME=5
93
198
  PACKAGE_AVAILABLE=false
94
-
199
+
95
200
  while [ $ATTEMPT -le $MAX_ATTEMPTS ]; do
96
201
  echo "🔍 Attempt $ATTEMPT/$MAX_ATTEMPTS: Checking PyPI for dv-pipecat-ai==$PIPECAT_VERSION"
97
-
202
+
98
203
  if python scripts/check-pypi-package.py dv-pipecat-ai "$PIPECAT_VERSION"; then
99
204
  PACKAGE_AVAILABLE=true
100
205
  echo "✅ PyPI package verification successful!"
@@ -108,9 +213,13 @@ jobs:
108
213
  echo " 3. Version mismatch between requirements.txt and PyPI"
109
214
  exit 1
110
215
  else
111
- WAIT_TIME=$((ATTEMPT * 10))
112
216
  echo "⏳ Package not yet available, waiting ${WAIT_TIME}s before retry..."
113
217
  sleep $WAIT_TIME
218
+ # Exponential backoff with cap at 30s
219
+ if [ $WAIT_TIME -lt 30 ]; then
220
+ WAIT_TIME=$((WAIT_TIME * 2))
221
+ if [ $WAIT_TIME -gt 30 ]; then WAIT_TIME=30; fi
222
+ fi
114
223
  fi
115
224
  fi
116
225
  ATTEMPT=$((ATTEMPT + 1))
@@ -399,4 +508,4 @@ jobs:
399
508
  # kubectl describe deployment/$HELM_RELEASE_NAME --namespace=default || true
400
509
  # else
401
510
  # kubectl describe deployment/${HELM_RELEASE_NAME}-canary --namespace=default || true
402
- # fi
511
+ # fi
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.82.dev23
3
+ Version: 0.0.82.dev37
4
4
  Summary: An open source framework for voice (and multimodal) assistants
5
5
  License-Expression: BSD-2-Clause
6
6
  Project-URL: Source, https://github.com/pipecat-ai/pipecat
@@ -98,4 +98,4 @@ pdb:
98
98
  minAvailable: "95%"
99
99
 
100
100
  # Draining delay for production (seconds)
101
- preStopDrainSeconds: 60
101
+ preStopDrainSeconds: 0
@@ -86,4 +86,4 @@ keda:
86
86
  fallbackReplicas: 1 # Higher fallback replicas for staging
87
87
 
88
88
  # Draining delay for staging (seconds)
89
- preStopDrainSeconds: 45
89
+ preStopDrainSeconds: 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.82.dev23
3
+ Version: 0.0.82.dev37
4
4
  Summary: An open source framework for voice (and multimodal) assistants
5
5
  License-Expression: BSD-2-Clause
6
6
  Project-URL: Source, https://github.com/pipecat-ai/pipecat
@@ -49,7 +49,6 @@ uv.lock
49
49
  .github/workflows/publish_test.yaml
50
50
  .github/workflows/python-compatibility.yaml
51
51
  .github/workflows/set-traffic-split.yml
52
- .github/workflows/smart-auto-release.yml
53
52
  .github/workflows/sync-quickstart.yaml
54
53
  .github/workflows/tests.yaml
55
54
  create-new-machine/ansible.cfg
@@ -144,6 +143,7 @@ src/pipecat/audio/vad/silero.py
144
143
  src/pipecat/audio/vad/vad_analyzer.py
145
144
  src/pipecat/audio/vad/data/__init__.py
146
145
  src/pipecat/audio/vad/data/silero_vad.onnx
146
+ src/pipecat/audio/vad/data/silero_vad_v2.onnx
147
147
  src/pipecat/clocks/__init__.py
148
148
  src/pipecat/clocks/base_clock.py
149
149
  src/pipecat/clocks/system_clock.py
@@ -241,7 +241,6 @@ src/pipecat/services/ai_services.py
241
241
  src/pipecat/services/image_service.py
242
242
  src/pipecat/services/llm_service.py
243
243
  src/pipecat/services/mcp_service.py
244
- src/pipecat/services/openai.py
245
244
  src/pipecat/services/stt_service.py
246
245
  src/pipecat/services/tts_service.py
247
246
  src/pipecat/services/vision_service.py
@@ -135,7 +135,13 @@ class SileroVADAnalyzer(VADAnalyzer):
135
135
  with automatic model state management and periodic resets.
136
136
  """
137
137
 
138
- def __init__(self, *, sample_rate: Optional[int] = None, params: Optional[VADParams] = None):
138
+ def __init__(
139
+ self,
140
+ *,
141
+ sample_rate: Optional[int] = None,
142
+ params: Optional[VADParams] = None,
143
+ model_name: Optional[str] = None,
144
+ ):
139
145
  """Initialize the Silero VAD analyzer.
140
146
 
141
147
  Args:
@@ -146,7 +152,7 @@ class SileroVADAnalyzer(VADAnalyzer):
146
152
 
147
153
  logger.debug("Loading Silero VAD model...")
148
154
 
149
- model_name = "silero_vad.onnx"
155
+ model_name = model_name or "silero_vad.onnx"
150
156
  package_path = "pipecat.audio.vad.data"
151
157
 
152
158
  try:
@@ -166,7 +172,7 @@ class SileroVADAnalyzer(VADAnalyzer):
166
172
 
167
173
  self._last_reset_time = 0
168
174
 
169
- logger.debug("Loaded Silero VAD")
175
+ logger.debug(f"Loaded Silero VAD {model_file_path}")
170
176
 
171
177
  #
172
178
  # VADAnalyzer
@@ -4,15 +4,13 @@
4
4
  #
5
5
 
6
6
  """Azure OpenAI service implementation for the Pipecat AI framework."""
7
- from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
8
- from typing import Any, Dict, List, Optional
7
+
8
+ from typing import Optional
9
9
 
10
10
  from loguru import logger
11
11
  from openai import AsyncAzureOpenAI
12
- from openai._streaming import AsyncStream
13
- from openai.types.chat import ChatCompletionChunk, ChatCompletionMessageParam
14
12
 
15
- from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
13
+ from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
16
14
  from pipecat.services.openai.llm import OpenAILLMService
17
15
 
18
16
 
@@ -96,11 +94,11 @@ class AzureLLMService(OpenAILLMService):
96
94
  return model_name_lower in reasoning_models
97
95
 
98
96
  def build_chat_completion_params(self, params_from_context: OpenAILLMInvocationParams) -> dict:
99
- #include base params
97
+ # include base params
100
98
  params = super().build_chat_completion_params(params_from_context)
101
99
 
102
100
  if self._is_reasoning_model():
103
- #not required for reasoning models
101
+ # not required for reasoning models
104
102
  for k in ("frequency_penalty", "presence_penalty", "temperature", "top_p"):
105
103
  if k in params:
106
104
  params.pop(k, None)
@@ -113,4 +111,4 @@ class AzureLLMService(OpenAILLMService):
113
111
  # Standard models are fine with the defaults from the base class
114
112
  pass
115
113
 
116
- return params
114
+ return params
@@ -2,10 +2,11 @@
2
2
 
3
3
  import asyncio
4
4
  import json
5
+ import random
5
6
  import time
6
7
  import uuid
7
8
  from dataclasses import dataclass
8
- from typing import Any, AsyncGenerator, Dict, Optional
9
+ from typing import Any, AsyncGenerator, Dict, List, Optional
9
10
  from urllib.parse import urlencode
10
11
 
11
12
  import httpx
@@ -13,6 +14,8 @@ from loguru import logger
13
14
  from pydantic import BaseModel, Field
14
15
 
15
16
  from pipecat.frames.frames import (
17
+ EndFrame,
18
+ CancelFrame,
16
19
  Frame,
17
20
  LLMFullResponseEndFrame,
18
21
  LLMFullResponseStartFrame,
@@ -53,12 +56,13 @@ class VistaarLLMService(LLMService):
53
56
  source_lang: Source language code (e.g., 'mr' for Marathi, 'hi' for Hindi).
54
57
  target_lang: Target language code for responses.
55
58
  session_id: Session ID for maintaining conversation context.
56
- extra: Additional model-specific parameters.
59
+ extra: Additional model-specific parameters
57
60
  """
58
61
 
59
62
  source_lang: Optional[str] = Field(default="mr")
60
63
  target_lang: Optional[str] = Field(default="mr")
61
64
  session_id: Optional[str] = Field(default=None)
65
+ pre_query_response_phrases: Optional[List[str]] = Field(default_factory=list)
62
66
  extra: Optional[Dict[str, Any]] = Field(default_factory=dict)
63
67
 
64
68
  def __init__(
@@ -68,7 +72,6 @@ class VistaarLLMService(LLMService):
68
72
  params: Optional[InputParams] = None,
69
73
  timeout: float = 30.0,
70
74
  interim_timeout: float = 5.0,
71
- interim_message: str = "एक क्षण थांबा, मी बघतो. ",
72
75
  **kwargs,
73
76
  ):
74
77
  """Initialize Vistaar LLM service.
@@ -77,8 +80,7 @@ class VistaarLLMService(LLMService):
77
80
  base_url: The base URL for Vistaar API. Defaults to "https://vistaar.kenpath.ai/api".
78
81
  params: Input parameters for model configuration and behavior.
79
82
  timeout: Request timeout in seconds. Defaults to 30.0 seconds.
80
- interim_timeout: Time in seconds before sending interim message. Defaults to 3.0 seconds.
81
- interim_message: Message to send if API takes longer than interim_timeout. Defaults to "एक क्षण थांबा, मी बघतो. ".
83
+ interim_timeout: Time in seconds before sending interim message. Defaults to 5.0 seconds.
82
84
  **kwargs: Additional arguments passed to the parent LLMService.
83
85
  """
84
86
  super().__init__(**kwargs)
@@ -89,10 +91,10 @@ class VistaarLLMService(LLMService):
89
91
  self._source_lang = params.source_lang
90
92
  self._target_lang = params.target_lang
91
93
  self._session_id = params.session_id or str(uuid.uuid4())
94
+ self._pre_query_response_phrases = params.pre_query_response_phrases or []
92
95
  self._extra = params.extra if isinstance(params.extra, dict) else {}
93
96
  self._timeout = timeout
94
97
  self._interim_timeout = interim_timeout
95
- self._interim_message = interim_message
96
98
 
97
99
  # Create an async HTTP client
98
100
  self._client = httpx.AsyncClient(timeout=httpx.Timeout(self._timeout), verify=False)
@@ -193,7 +195,14 @@ class VistaarLLMService(LLMService):
193
195
  if not self._is_interrupted and not self._interim_sent:
194
196
  logger.info(f"Sending interim message after {self._interim_timeout}s timeout")
195
197
  self._interim_sent = True
196
- await self.push_frame(LLMTextFrame(text=self._interim_message))
198
+
199
+ # Use random selection from pre_query_response_phrases if available, otherwise fallback to default
200
+ if self._pre_query_response_phrases:
201
+ message = random.choice(self._pre_query_response_phrases)
202
+ else:
203
+ message = "एक क्षण थांबा, मी बघतो. "
204
+
205
+ await self.push_frame(LLMTextFrame(text=message))
197
206
  except asyncio.CancelledError:
198
207
  logger.debug("Interim message task cancelled")
199
208
  except Exception as e:
@@ -306,7 +306,7 @@ class FastAPIWebsocketInputTransport(BaseInputTransport):
306
306
  if isinstance(frame, InputAudioRawFrame):
307
307
  await self.push_audio_frame(frame)
308
308
  else:
309
- await self.push_frame(frame)
309
+ await self.process_frame(frame, FrameDirection.DOWNSTREAM)
310
310
  except Exception as e:
311
311
  logger.error(f"{self} exception receiving data: {e.__class__.__name__} ({e})")
312
312
 
@@ -1,192 +0,0 @@
1
- name: Smart Auto-Release on PR Merge
2
-
3
- on:
4
- pull_request:
5
- types: [closed]
6
- branches: [dv-stage]
7
-
8
- env:
9
- PACKAGE_NAME: "dv-pipecat-ai"
10
- REQUIREMENTS_FILE: "examples/ringg-chatbot/remote-requirements.txt"
11
-
12
- jobs:
13
- smart-release:
14
- if: github.event.pull_request.merged == true
15
- runs-on: ubuntu-latest
16
- permissions:
17
- contents: write
18
- pull-requests: write
19
-
20
- steps:
21
- - name: Checkout code
22
- uses: actions/checkout@v4
23
- with:
24
- ref: dv-stage
25
- fetch-depth: 0
26
- token: ${{ secrets.GITHUB_TOKEN }}
27
-
28
- - name: Set up Python
29
- uses: actions/setup-python@v4
30
- with:
31
- python-version: '3.10'
32
-
33
- - name: Install dependencies
34
- run: |
35
- python -m pip install --upgrade pip
36
- pip install build twine requests packaging
37
-
38
- - name: Check for src/pipecat changes
39
- id: check-changes
40
- run: |
41
- echo "Checking for changes in src/pipecat..."
42
- if git diff --name-only ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }} | grep -q "src/pipecat"; then
43
- echo "HAS_PIPECAT_CHANGES=true" >> $GITHUB_OUTPUT
44
- echo "✅ Found changes in src/pipecat"
45
- else
46
- echo "HAS_PIPECAT_CHANGES=false" >> $GITHUB_OUTPUT
47
- echo "ℹ️ No changes in src/pipecat detected"
48
- fi
49
-
50
- - name: Get current versions
51
- if: steps.check-changes.outputs.HAS_PIPECAT_CHANGES == 'true'
52
- id: versions
53
- run: |
54
- echo "Getting current versions..."
55
-
56
- # Get merged branch (dv-stage) requirements version
57
- if [ -f "${{ env.REQUIREMENTS_FILE }}" ]; then
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
60
- else
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"
69
- fi
70
- echo "BASE_REQUIREMENTS_VERSION=$BASE_REQUIREMENTS_VERSION" >> $GITHUB_OUTPUT
71
-
72
- echo "📊 Version Status:"
73
- echo " Base branch requirements version: $BASE_REQUIREMENTS_VERSION"
74
- echo " Merged branch requirements version: $MERGED_REQUIREMENTS_VERSION"
75
-
76
- - name: Decide release action
77
- if: steps.check-changes.outputs.HAS_PIPECAT_CHANGES == 'true'
78
- id: decision
79
- run: |
80
- BASE_VERSION="${{ steps.versions.outputs.BASE_REQUIREMENTS_VERSION }}"
81
- MERGED_VERSION="${{ steps.versions.outputs.MERGED_REQUIREMENTS_VERSION }}"
82
-
83
- echo "🤔 Decision Logic:"
84
- echo " Base branch version: $BASE_VERSION"
85
- echo " Merged branch version: $MERGED_VERSION"
86
-
87
- if [ "$BASE_VERSION" = "$MERGED_VERSION" ]; then
88
- echo "SHOULD_RELEASE=true" >> $GITHUB_OUTPUT
89
- echo "REASON=Versions match between branches - auto-bumping needed" >> $GITHUB_OUTPUT
90
- echo "✅ Decision: AUTO-RELEASE (versions match between branches)"
91
- else
92
- echo "SHOULD_RELEASE=false" >> $GITHUB_OUTPUT
93
- echo "REASON=Developer already updated version in this PR" >> $GITHUB_OUTPUT
94
- echo "⏭️ Decision: SKIP (developer handled versioning)"
95
- fi
96
-
97
- - name: Skip release notification
98
- if: steps.check-changes.outputs.HAS_PIPECAT_CHANGES == 'false' || steps.decision.outputs.SHOULD_RELEASE == 'false'
99
- run: |
100
- if [ "${{ steps.check-changes.outputs.HAS_PIPECAT_CHANGES }}" = "false" ]; then
101
- echo "⏭️ SKIPPING: No src/pipecat changes detected"
102
- SKIP_REASON="No src/pipecat changes in this PR"
103
- else
104
- echo "⏭️ SKIPPING: ${{ steps.decision.outputs.REASON }}"
105
- SKIP_REASON="Developer already updated version in this PR"
106
- fi
107
- echo "Skip reason: $SKIP_REASON"
108
-
109
- - name: Build package
110
- if: steps.decision.outputs.SHOULD_RELEASE == 'true'
111
- run: |
112
- echo "🔨 Building package with setuptools_scm auto-versioning..."
113
- python -m build
114
- echo "✅ Package built successfully"
115
- ls -la dist/
116
-
117
- - name: Extract actual built version
118
- if: steps.decision.outputs.SHOULD_RELEASE == 'true'
119
- id: extract-version
120
- run: |
121
- echo "📦 Extracting version from built package..."
122
-
123
- # Get the wheel filename and extract version
124
- WHEEL_FILE=$(ls dist/*.whl | head -1)
125
- BUILT_VERSION=$(echo "$WHEEL_FILE" | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+)-.*/\1/')
126
-
127
- echo "BUILT_VERSION=$BUILT_VERSION" >> $GITHUB_OUTPUT
128
- echo "🔍 Actual built version: $BUILT_VERSION"
129
-
130
- # Verify this matches the tar.gz file too
131
- TAR_FILE=$(ls dist/*.tar.gz | head -1)
132
- TAR_VERSION=$(echo "$TAR_FILE" | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+)\.tar\.gz/\1/')
133
-
134
- if [ "$BUILT_VERSION" = "$TAR_VERSION" ]; then
135
- echo "✅ Version consistency check passed: $BUILT_VERSION"
136
- else
137
- echo "❌ Version mismatch between wheel ($BUILT_VERSION) and tar ($TAR_VERSION)"
138
- exit 1
139
- fi
140
-
141
- - name: Publish to PyPI
142
- if: steps.decision.outputs.SHOULD_RELEASE == 'true'
143
- uses: pypa/gh-action-pypi-publish@release/v1
144
- with:
145
- password: ${{ secrets.PYPI_API_TOKEN }}
146
- print-hash: true
147
- verbose: true
148
-
149
- - name: Update remote-requirements.txt
150
- if: steps.decision.outputs.SHOULD_RELEASE == 'true'
151
- run: |
152
- BUILT_VERSION="${{ steps.extract-version.outputs.BUILT_VERSION }}"
153
- echo "📝 Updating ${{ env.REQUIREMENTS_FILE }} with actual built version $BUILT_VERSION"
154
-
155
- # Update the version in remote-requirements.txt while preserving existing dependencies
156
- # Extract current dependencies from the existing line
157
- CURRENT_DEPS=$(grep "${{ env.PACKAGE_NAME }}" ${{ env.REQUIREMENTS_FILE }} | sed -n 's/.*\[\([^]]*\)\].*/\1/p')
158
- echo "🔍 Current dependencies: $CURRENT_DEPS"
159
-
160
- # Update only the version, keeping existing dependencies
161
- sed -i.bak "s/${{ env.PACKAGE_NAME }}\[.*\]==.*/${{ env.PACKAGE_NAME }}[$CURRENT_DEPS]==$BUILT_VERSION/" ${{ env.REQUIREMENTS_FILE }}
162
-
163
- # Show the change
164
- echo "📋 Updated requirements file:"
165
- grep "${{ env.PACKAGE_NAME }}" ${{ env.REQUIREMENTS_FILE }}
166
-
167
- # Configure git
168
- git config --local user.email "action@github.com"
169
- git config --local user.name "GitHub Action"
170
-
171
- # Commit the change
172
- git add ${{ env.REQUIREMENTS_FILE }}
173
- git commit -m "🤖 Auto-bump pipecat version to $BUILT_VERSION"
174
-
175
- # Push to dv-stage
176
- git push origin HEAD:dv-stage
177
-
178
- - name: Success notification
179
- if: steps.decision.outputs.SHOULD_RELEASE == 'true'
180
- run: |
181
- BUILT_VERSION="${{ steps.extract-version.outputs.BUILT_VERSION }}"
182
- echo "🎉 SUCCESS: Auto-release completed!"
183
- echo " 📦 Published: ${{ env.PACKAGE_NAME }} v$BUILT_VERSION"
184
- echo " 🔗 PyPI: https://pypi.org/project/${{ env.PACKAGE_NAME }}/$BUILT_VERSION/"
185
- echo " 📝 Updated: ${{ env.REQUIREMENTS_FILE }}"
186
- echo " 🚀 Deployment will proceed automatically"
187
-
188
- - name: Error notification
189
- if: failure() && steps.decision.outputs.SHOULD_RELEASE == 'true'
190
- run: |
191
- echo "❌ ERROR: Auto-release failed!"
192
- echo "Check the workflow logs for details."