dv-pipecat-ai 0.0.85.dev5__tar.gz → 0.0.85.dev10__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 (466) hide show
  1. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/PKG-INFO +4 -1
  2. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/pyproject.toml +1 -0
  3. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/dv_pipecat_ai.egg-info/PKG-INFO +4 -1
  4. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/dv_pipecat_ai.egg-info/SOURCES.txt +3 -0
  5. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/dv_pipecat_ai.egg-info/requires.txt +4 -0
  6. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/turn/base_turn_analyzer.py +9 -1
  7. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +14 -8
  8. dv_pipecat_ai-0.0.85.dev10/src/pipecat/audio/turn/smart_turn/data/smart-turn-v3.0.onnx +0 -0
  9. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +6 -2
  10. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +1 -1
  11. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +1 -1
  12. dv_pipecat_ai-0.0.85.dev10/src/pipecat/audio/turn/smart_turn/local_smart_turn_v3.py +124 -0
  13. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/vistaar/llm.py +4 -0
  14. dv_pipecat_ai-0.0.85.dev10/src/pipecat/utils/text/__init__.py +0 -0
  15. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.dockerignore +0 -0
  16. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
  17. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
  18. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
  19. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
  20. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
  21. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
  22. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
  23. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  24. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  25. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/build.yaml +0 -0
  26. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/coverage.yaml +0 -0
  27. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/force_push_to_pypi.yml +0 -0
  28. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/format.yaml +0 -0
  29. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/github.yml +0 -0
  30. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/promote-prod.yml +0 -0
  31. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/publish.yaml +0 -0
  32. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/publish_test.yaml +0 -0
  33. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/python-compatibility.yaml +0 -0
  34. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/set-traffic-split.yml +0 -0
  35. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/sync-quickstart.yaml +0 -0
  36. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.github/workflows/tests.yaml +0 -0
  37. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.gitignore +0 -0
  38. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.pre-commit-config.yaml +0 -0
  39. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/.readthedocs.yaml +0 -0
  40. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/CHANGELOG.md +0 -0
  41. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/CHANGELOG.md.template +0 -0
  42. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/CLAUDE.md +0 -0
  43. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/CONTRIBUTING.md +0 -0
  44. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
  45. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/LICENSE +0 -0
  46. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/MANIFEST.in +0 -0
  47. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/README.md +0 -0
  48. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/ansible.cfg +0 -0
  49. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/ansible_deployment.sh +0 -0
  50. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/cleanup_old_containers.yml +0 -0
  51. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/codecov.yml +0 -0
  52. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/create-new-machine/ansible.cfg +0 -0
  53. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/create-new-machine/ansible_setup.sh +0 -0
  54. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/create-new-machine/inventory.ini +0 -0
  55. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/create-new-machine/replace_env.yml +0 -0
  56. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/create-new-machine/setup_playbook.yml +0 -0
  57. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/create_inventory.py +0 -0
  58. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/delete_old_dockers.sh +0 -0
  59. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/deploy.sh +0 -0
  60. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/deploy_playbook.yml +0 -0
  61. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/docker-compose.dev.yml +0 -0
  62. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/dump_logs.yml +0 -0
  63. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/env.example +0 -0
  64. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/fetch_logs.yml +0 -0
  65. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/inventory.ini +0 -0
  66. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/.helmignore +0 -0
  67. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/Chart.yaml +0 -0
  68. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
  69. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
  70. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
  71. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
  72. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
  73. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
  74. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
  75. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
  76. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
  77. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/pdb.yaml +0 -0
  78. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/templates/service.yaml +0 -0
  79. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/values-canary.yaml +0 -0
  80. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/values-prod.yaml +0 -0
  81. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/values-stage.yaml +0 -0
  82. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/dv-pipecat/values.yaml +0 -0
  83. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/k8s/istio/destination-virtualservice.yaml +0 -0
  84. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/merge-code-into-single-file.sh +0 -0
  85. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/pipecat.png +0 -0
  86. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/restart.sh +0 -0
  87. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/restart_playbook.yml +0 -0
  88. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/setup.cfg +0 -0
  89. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
  90. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
  91. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/__init__.py +0 -0
  92. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/__init__.py +0 -0
  93. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/base_llm_adapter.py +0 -0
  94. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/schemas/__init__.py +0 -0
  95. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/schemas/direct_function.py +0 -0
  96. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/schemas/function_schema.py +0 -0
  97. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
  98. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/services/__init__.py +0 -0
  99. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/services/anthropic_adapter.py +0 -0
  100. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +0 -0
  101. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/services/bedrock_adapter.py +0 -0
  102. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/services/gemini_adapter.py +0 -0
  103. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/services/open_ai_adapter.py +0 -0
  104. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +0 -0
  105. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/__init__.py +0 -0
  106. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/__init__.py +0 -0
  107. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-0.wav +0 -0
  108. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-1.wav +0 -0
  109. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-2.wav +0 -0
  110. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-3.wav +0 -0
  111. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-4.wav +0 -0
  112. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-5.wav +0 -0
  113. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-6.wav +0 -0
  114. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-7.wav +0 -0
  115. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-8.wav +0 -0
  116. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-9.wav +0 -0
  117. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-pound.wav +0 -0
  118. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/dtmf-star.wav +0 -0
  119. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/types.py +0 -0
  120. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/dtmf/utils.py +0 -0
  121. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/filters/__init__.py +0 -0
  122. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/filters/aic_filter.py +0 -0
  123. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
  124. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/filters/koala_filter.py +0 -0
  125. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/filters/krisp_filter.py +0 -0
  126. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
  127. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
  128. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/interruptions/__init__.py +0 -0
  129. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
  130. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
  131. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/mixers/__init__.py +0 -0
  132. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
  133. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
  134. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/resamplers/__init__.py +0 -0
  135. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
  136. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
  137. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
  138. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
  139. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/turn/__init__.py +0 -0
  140. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
  141. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/audio/vad → dv_pipecat_ai-0.0.85.dev10/src/pipecat/audio/turn/smart_turn/data}/__init__.py +0 -0
  142. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
  143. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
  144. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/utils.py +0 -0
  145. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/audio/vad/data → dv_pipecat_ai-0.0.85.dev10/src/pipecat/audio/vad}/__init__.py +0 -0
  146. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/clocks → dv_pipecat_ai-0.0.85.dev10/src/pipecat/audio/vad/data}/__init__.py +0 -0
  147. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
  148. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/vad/data/silero_vad_v2.onnx +0 -0
  149. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/vad/silero.py +0 -0
  150. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
  151. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/extensions → dv_pipecat_ai-0.0.85.dev10/src/pipecat/clocks}/__init__.py +0 -0
  152. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/clocks/base_clock.py +0 -0
  153. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/clocks/system_clock.py +0 -0
  154. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/extensions/ivr → dv_pipecat_ai-0.0.85.dev10/src/pipecat/extensions}/__init__.py +0 -0
  155. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/extensions/voicemail → dv_pipecat_ai-0.0.85.dev10/src/pipecat/extensions/ivr}/__init__.py +0 -0
  156. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/extensions/ivr/ivr_navigator.py +0 -0
  157. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/frames → dv_pipecat_ai-0.0.85.dev10/src/pipecat/extensions/voicemail}/__init__.py +0 -0
  158. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/extensions/voicemail/voicemail_detector.py +0 -0
  159. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/metrics → dv_pipecat_ai-0.0.85.dev10/src/pipecat/frames}/__init__.py +0 -0
  160. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/frames/frames.proto +0 -0
  161. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/frames/frames.py +0 -0
  162. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
  163. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/observers → dv_pipecat_ai-0.0.85.dev10/src/pipecat/metrics}/__init__.py +0 -0
  164. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/metrics/metrics.py +0 -0
  165. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/observers/loggers → dv_pipecat_ai-0.0.85.dev10/src/pipecat/observers}/__init__.py +0 -0
  166. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/observers/base_observer.py +0 -0
  167. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/pipeline → dv_pipecat_ai-0.0.85.dev10/src/pipecat/observers/loggers}/__init__.py +0 -0
  168. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
  169. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
  170. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
  171. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
  172. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/observers/turn_tracking_observer.py +0 -0
  173. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/processors → dv_pipecat_ai-0.0.85.dev10/src/pipecat/pipeline}/__init__.py +0 -0
  174. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/base_pipeline.py +0 -0
  175. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/base_task.py +0 -0
  176. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/llm_switcher.py +0 -0
  177. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
  178. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/pipeline.py +0 -0
  179. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/runner.py +0 -0
  180. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/service_switcher.py +0 -0
  181. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
  182. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/task.py +0 -0
  183. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/task_observer.py +0 -0
  184. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
  185. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/pipeline/tts_switcher.py +0 -0
  186. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/processors/aggregators → dv_pipecat_ai-0.0.85.dev10/src/pipecat/processors}/__init__.py +0 -0
  187. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/processors/audio → dv_pipecat_ai-0.0.85.dev10/src/pipecat/processors/aggregators}/__init__.py +0 -0
  188. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/aggregators/dtmf_aggregator.py +0 -0
  189. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/aggregators/gated.py +0 -0
  190. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/aggregators/gated_openai_llm_context.py +0 -0
  191. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/aggregators/llm_context.py +0 -0
  192. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/aggregators/llm_response.py +0 -0
  193. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/aggregators/llm_response_universal.py +0 -0
  194. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
  195. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/aggregators/sentence.py +0 -0
  196. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/aggregators/user_response.py +0 -0
  197. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
  198. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/async_generator.py +0 -0
  199. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/processors/filters → dv_pipecat_ai-0.0.85.dev10/src/pipecat/processors/audio}/__init__.py +0 -0
  200. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
  201. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/consumer_processor.py +0 -0
  202. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/dtmf_aggregator.py +0 -0
  203. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/processors/frameworks → dv_pipecat_ai-0.0.85.dev10/src/pipecat/processors/filters}/__init__.py +0 -0
  204. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/filters/frame_filter.py +0 -0
  205. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/filters/function_filter.py +0 -0
  206. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/filters/identity_filter.py +0 -0
  207. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/filters/null_filter.py +0 -0
  208. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/filters/stt_mute_filter.py +0 -0
  209. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
  210. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
  211. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/frame_processor.py +0 -0
  212. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/processors/gstreamer → dv_pipecat_ai-0.0.85.dev10/src/pipecat/processors/frameworks}/__init__.py +0 -0
  213. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/frameworks/langchain.py +0 -0
  214. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/frameworks/rtvi.py +0 -0
  215. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/processors/metrics → dv_pipecat_ai-0.0.85.dev10/src/pipecat/processors/gstreamer}/__init__.py +0 -0
  216. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
  217. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/idle_frame_processor.py +0 -0
  218. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/logger.py +0 -0
  219. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/services/asyncai → dv_pipecat_ai-0.0.85.dev10/src/pipecat/processors/metrics}/__init__.py +0 -0
  220. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
  221. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/metrics/sentry.py +0 -0
  222. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/producer_processor.py +0 -0
  223. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/text_transformer.py +0 -0
  224. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/transcript_processor.py +0 -0
  225. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
  226. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/processors/user_idle_processor.py +0 -0
  227. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/py.typed +0 -0
  228. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/runner/__init__.py +0 -0
  229. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/runner/daily.py +0 -0
  230. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/runner/livekit.py +0 -0
  231. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/runner/run.py +0 -0
  232. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/runner/types.py +0 -0
  233. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/runner/utils.py +0 -0
  234. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/__init__.py +0 -0
  235. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/asterisk.py +0 -0
  236. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/base_serializer.py +0 -0
  237. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/convox.py +0 -0
  238. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/custom.py +0 -0
  239. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/exotel.py +0 -0
  240. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/livekit.py +0 -0
  241. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/plivo.py +0 -0
  242. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/protobuf.py +0 -0
  243. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/telnyx.py +0 -0
  244. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/serializers/twilio.py +0 -0
  245. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/__init__.py +0 -0
  246. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/ai_service.py +0 -0
  247. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/ai_services.py +0 -0
  248. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/anthropic/__init__.py +0 -0
  249. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/anthropic/llm.py +0 -0
  250. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/assemblyai/__init__.py +0 -0
  251. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/assemblyai/models.py +0 -0
  252. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/assemblyai/stt.py +0 -0
  253. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/services/mistral → dv_pipecat_ai-0.0.85.dev10/src/pipecat/services/asyncai}/__init__.py +0 -0
  254. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/asyncai/tts.py +0 -0
  255. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/aws/__init__.py +0 -0
  256. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/aws/llm.py +0 -0
  257. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/aws/stt.py +0 -0
  258. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/aws/tts.py +0 -0
  259. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/aws/utils.py +0 -0
  260. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
  261. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/aws_nova_sonic/aws.py +0 -0
  262. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
  263. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
  264. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/aws_nova_sonic/ready.wav +0 -0
  265. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/azure/__init__.py +0 -0
  266. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/azure/common.py +0 -0
  267. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/azure/image.py +0 -0
  268. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/azure/llm.py +0 -0
  269. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/azure/stt.py +0 -0
  270. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/azure/tts.py +0 -0
  271. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/cartesia/__init__.py +0 -0
  272. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/cartesia/stt.py +0 -0
  273. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/cartesia/tts.py +0 -0
  274. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/cerebras/__init__.py +0 -0
  275. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/cerebras/llm.py +0 -0
  276. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/deepgram/__init__.py +0 -0
  277. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/deepgram/stt.py +0 -0
  278. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/deepgram/tts.py +0 -0
  279. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/deepseek/__init__.py +0 -0
  280. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/deepseek/llm.py +0 -0
  281. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/elevenlabs/__init__.py +0 -0
  282. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/elevenlabs/stt.py +0 -0
  283. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/elevenlabs/tts.py +0 -0
  284. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/fal/__init__.py +0 -0
  285. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/fal/image.py +0 -0
  286. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/fal/stt.py +0 -0
  287. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/fireworks/__init__.py +0 -0
  288. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/fireworks/llm.py +0 -0
  289. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/fish/__init__.py +0 -0
  290. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/fish/tts.py +0 -0
  291. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
  292. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
  293. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/gemini_multimodal_live/file_api.py +0 -0
  294. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/gemini_multimodal_live/gemini.py +0 -0
  295. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/gladia/__init__.py +0 -0
  296. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/gladia/config.py +0 -0
  297. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/gladia/stt.py +0 -0
  298. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/google/__init__.py +0 -0
  299. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/google/frames.py +0 -0
  300. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/google/google.py +0 -0
  301. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/google/image.py +0 -0
  302. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/google/llm.py +0 -0
  303. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/google/llm_openai.py +0 -0
  304. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/google/llm_vertex.py +0 -0
  305. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/google/rtvi.py +0 -0
  306. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/google/stt.py +0 -0
  307. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/google/tts.py +0 -0
  308. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/grok/__init__.py +0 -0
  309. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/grok/llm.py +0 -0
  310. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/groq/__init__.py +0 -0
  311. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/groq/llm.py +0 -0
  312. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/groq/stt.py +0 -0
  313. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/groq/tts.py +0 -0
  314. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/hamsa/__init__.py +0 -0
  315. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/hamsa/stt.py +0 -0
  316. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/heygen/__init__.py +0 -0
  317. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/heygen/api.py +0 -0
  318. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/heygen/client.py +0 -0
  319. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/heygen/video.py +0 -0
  320. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/image_service.py +0 -0
  321. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/inworld/__init__.py +0 -0
  322. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/inworld/tts.py +0 -0
  323. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/llm_service.py +0 -0
  324. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/lmnt/__init__.py +0 -0
  325. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/lmnt/tts.py +0 -0
  326. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/mcp_service.py +0 -0
  327. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/mem0/__init__.py +0 -0
  328. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/mem0/memory.py +0 -0
  329. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/minimax/__init__.py +0 -0
  330. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/minimax/tts.py +0 -0
  331. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/services/soniox → dv_pipecat_ai-0.0.85.dev10/src/pipecat/services/mistral}/__init__.py +0 -0
  332. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/mistral/llm.py +0 -0
  333. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/moondream/__init__.py +0 -0
  334. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/moondream/vision.py +0 -0
  335. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/neuphonic/__init__.py +0 -0
  336. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/neuphonic/tts.py +0 -0
  337. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/nim/__init__.py +0 -0
  338. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/nim/llm.py +0 -0
  339. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/ollama/__init__.py +0 -0
  340. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/ollama/llm.py +0 -0
  341. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai/__init__.py +0 -0
  342. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai/base_llm.py +0 -0
  343. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai/image.py +0 -0
  344. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai/llm.py +0 -0
  345. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai/stt.py +0 -0
  346. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai/tts.py +0 -0
  347. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
  348. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
  349. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
  350. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
  351. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
  352. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openai_realtime_beta/openai.py +0 -0
  353. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openpipe/__init__.py +0 -0
  354. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openpipe/llm.py +0 -0
  355. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openrouter/__init__.py +0 -0
  356. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/openrouter/llm.py +0 -0
  357. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/perplexity/__init__.py +0 -0
  358. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/perplexity/llm.py +0 -0
  359. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/piper/__init__.py +0 -0
  360. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/piper/tts.py +0 -0
  361. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/playht/__init__.py +0 -0
  362. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/playht/tts.py +0 -0
  363. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/qwen/__init__.py +0 -0
  364. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/qwen/llm.py +0 -0
  365. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/rime/__init__.py +0 -0
  366. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/rime/tts.py +0 -0
  367. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/riva/__init__.py +0 -0
  368. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/riva/stt.py +0 -0
  369. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/riva/tts.py +0 -0
  370. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/sambanova/__init__.py +0 -0
  371. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/sambanova/llm.py +0 -0
  372. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/sambanova/stt.py +0 -0
  373. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/sarvam/__init__.py +0 -0
  374. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/sarvam/stt.py +0 -0
  375. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/sarvam/tts.py +0 -0
  376. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/simli/__init__.py +0 -0
  377. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/simli/video.py +0 -0
  378. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/sync → dv_pipecat_ai-0.0.85.dev10/src/pipecat/services/soniox}/__init__.py +0 -0
  379. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/soniox/stt.py +0 -0
  380. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/speechmatics/__init__.py +0 -0
  381. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/speechmatics/stt.py +0 -0
  382. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/stt_service.py +0 -0
  383. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/tavus/__init__.py +0 -0
  384. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/tavus/video.py +0 -0
  385. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/together/__init__.py +0 -0
  386. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/together/llm.py +0 -0
  387. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/tts_service.py +0 -0
  388. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/ultravox/__init__.py +0 -0
  389. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/ultravox/stt.py +0 -0
  390. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/vision_service.py +0 -0
  391. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/vistaar/__init__.py +0 -0
  392. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/websocket_service.py +0 -0
  393. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/whisper/__init__.py +0 -0
  394. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/whisper/base_stt.py +0 -0
  395. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/whisper/stt.py +0 -0
  396. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/xtts/__init__.py +0 -0
  397. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/services/xtts/tts.py +0 -0
  398. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/tests → dv_pipecat_ai-0.0.85.dev10/src/pipecat/sync}/__init__.py +0 -0
  399. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/sync/base_notifier.py +0 -0
  400. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/sync/event_notifier.py +0 -0
  401. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transcriptions → dv_pipecat_ai-0.0.85.dev10/src/pipecat/tests}/__init__.py +0 -0
  402. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/tests/utils.py +0 -0
  403. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transcriptions}/__init__.py +0 -0
  404. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transcriptions/language.py +0 -0
  405. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports/daily → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports}/__init__.py +0 -0
  406. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/base_input.py +0 -0
  407. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/base_output.py +0 -0
  408. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/base_transport.py +0 -0
  409. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports/livekit → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports/daily}/__init__.py +0 -0
  410. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/daily/transport.py +0 -0
  411. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/daily/utils.py +0 -0
  412. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports/local → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports/livekit}/__init__.py +0 -0
  413. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/livekit/transport.py +0 -0
  414. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports/network → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports/local}/__init__.py +0 -0
  415. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/local/audio.py +0 -0
  416. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/local/tk.py +0 -0
  417. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports/services → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports/network}/__init__.py +0 -0
  418. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/network/fastapi_websocket.py +0 -0
  419. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/network/small_webrtc.py +0 -0
  420. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/network/webrtc_connection.py +0 -0
  421. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/network/websocket_client.py +0 -0
  422. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/network/websocket_server.py +0 -0
  423. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports/services/helpers → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports/services}/__init__.py +0 -0
  424. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/services/daily.py +0 -0
  425. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports/smallwebrtc → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports/services/helpers}/__init__.py +0 -0
  426. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
  427. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/services/livekit.py +0 -0
  428. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/services/tavus.py +0 -0
  429. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports/tavus → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports/smallwebrtc}/__init__.py +0 -0
  430. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/smallwebrtc/connection.py +0 -0
  431. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/smallwebrtc/transport.py +0 -0
  432. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports/websocket → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports/tavus}/__init__.py +0 -0
  433. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/tavus/transport.py +0 -0
  434. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/transports/whatsapp → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports/websocket}/__init__.py +0 -0
  435. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/websocket/client.py +0 -0
  436. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/websocket/fastapi.py +0 -0
  437. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/websocket/server.py +0 -0
  438. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/utils → dv_pipecat_ai-0.0.85.dev10/src/pipecat/transports/whatsapp}/__init__.py +0 -0
  439. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/whatsapp/api.py +0 -0
  440. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/transports/whatsapp/client.py +0 -0
  441. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/utils/asyncio → dv_pipecat_ai-0.0.85.dev10/src/pipecat/utils}/__init__.py +0 -0
  442. {dv_pipecat_ai-0.0.85.dev5/src/pipecat/utils/text → dv_pipecat_ai-0.0.85.dev10/src/pipecat/utils/asyncio}/__init__.py +0 -0
  443. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/asyncio/task_manager.py +0 -0
  444. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/base_object.py +0 -0
  445. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/logger_config.py +0 -0
  446. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/network.py +0 -0
  447. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/string.py +0 -0
  448. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
  449. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/text/base_text_filter.py +0 -0
  450. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
  451. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
  452. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
  453. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
  454. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/time.py +0 -0
  455. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/tracing/__init__.py +0 -0
  456. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/tracing/class_decorators.py +0 -0
  457. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
  458. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/tracing/service_attributes.py +0 -0
  459. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/tracing/service_decorators.py +0 -0
  460. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/tracing/setup.py +0 -0
  461. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
  462. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
  463. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/src/pipecat/utils/utils.py +0 -0
  464. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/stop_container.yml +0 -0
  465. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/test_elevenlabs_stt_segmented.py +0 -0
  466. {dv_pipecat_ai-0.0.85.dev5 → dv_pipecat_ai-0.0.85.dev10}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.85.dev5
3
+ Version: 0.0.85.dev10
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
@@ -143,6 +143,9 @@ Requires-Dist: coremltools>=8.0; extra == "local-smart-turn"
143
143
  Requires-Dist: transformers; extra == "local-smart-turn"
144
144
  Requires-Dist: torch<3,>=2.5.0; extra == "local-smart-turn"
145
145
  Requires-Dist: torchaudio<3,>=2.5.0; extra == "local-smart-turn"
146
+ Provides-Extra: local-smart-turn-v3
147
+ Requires-Dist: transformers; extra == "local-smart-turn-v3"
148
+ Requires-Dist: onnxruntime<2,>=1.20.1; extra == "local-smart-turn-v3"
146
149
  Provides-Extra: remote-smart-turn
147
150
  Provides-Extra: silero
148
151
  Requires-Dist: onnxruntime~=1.20.1; extra == "silero"
@@ -95,6 +95,7 @@ sambanova = []
95
95
  sarvam = [ "sarvamai>=0.1.19,<1", "websockets>=13.1,<15.0" ]
96
96
  sentry = [ "sentry-sdk~=2.23.1" ]
97
97
  local-smart-turn = [ "coremltools>=8.0", "transformers", "torch>=2.5.0,<3", "torchaudio>=2.5.0,<3" ]
98
+ local-smart-turn-v3 = [ "transformers", "onnxruntime>=1.20.1,<2" ]
98
99
  remote-smart-turn = []
99
100
  silero = [ "onnxruntime~=1.20.1" ]
100
101
  simli = [ "simli-ai~=0.1.10"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.85.dev5
3
+ Version: 0.0.85.dev10
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
@@ -143,6 +143,9 @@ Requires-Dist: coremltools>=8.0; extra == "local-smart-turn"
143
143
  Requires-Dist: transformers; extra == "local-smart-turn"
144
144
  Requires-Dist: torch<3,>=2.5.0; extra == "local-smart-turn"
145
145
  Requires-Dist: torchaudio<3,>=2.5.0; extra == "local-smart-turn"
146
+ Provides-Extra: local-smart-turn-v3
147
+ Requires-Dist: transformers; extra == "local-smart-turn-v3"
148
+ Requires-Dist: onnxruntime<2,>=1.20.1; extra == "local-smart-turn-v3"
146
149
  Provides-Extra: remote-smart-turn
147
150
  Provides-Extra: silero
148
151
  Requires-Dist: onnxruntime~=1.20.1; extra == "silero"
@@ -139,6 +139,9 @@ src/pipecat/audio/turn/smart_turn/http_smart_turn.py
139
139
  src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py
140
140
  src/pipecat/audio/turn/smart_turn/local_smart_turn.py
141
141
  src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py
142
+ src/pipecat/audio/turn/smart_turn/local_smart_turn_v3.py
143
+ src/pipecat/audio/turn/smart_turn/data/__init__.py
144
+ src/pipecat/audio/turn/smart_turn/data/smart-turn-v3.0.onnx
142
145
  src/pipecat/audio/vad/__init__.py
143
146
  src/pipecat/audio/vad/silero.py
144
147
  src/pipecat/audio/vad/vad_analyzer.py
@@ -121,6 +121,10 @@ transformers
121
121
  torch<3,>=2.5.0
122
122
  torchaudio<3,>=2.5.0
123
123
 
124
+ [local-smart-turn-v3]
125
+ transformers
126
+ onnxruntime<2,>=1.20.1
127
+
124
128
  [mcp]
125
129
  mcp[cli]~=1.9.4
126
130
 
@@ -14,6 +14,8 @@ from abc import ABC, abstractmethod
14
14
  from enum import Enum
15
15
  from typing import Optional, Tuple
16
16
 
17
+ from pydantic import BaseModel
18
+
17
19
  from pipecat.metrics.metrics import MetricsData
18
20
 
19
21
 
@@ -29,6 +31,12 @@ class EndOfTurnState(Enum):
29
31
  INCOMPLETE = 2
30
32
 
31
33
 
34
+ class BaseTurnParams(BaseModel):
35
+ """Base class for turn analyzer parameters."""
36
+
37
+ pass
38
+
39
+
32
40
  class BaseTurnAnalyzer(ABC):
33
41
  """Abstract base class for analyzing user end of turn.
34
42
 
@@ -78,7 +86,7 @@ class BaseTurnAnalyzer(ABC):
78
86
 
79
87
  @property
80
88
  @abstractmethod
81
- def params(self):
89
+ def params(self) -> BaseTurnParams:
82
90
  """Get the current turn analyzer parameters.
83
91
 
84
92
  Returns:
@@ -11,15 +11,17 @@ machine learning models to determine when a user has finished speaking, going
11
11
  beyond simple silence-based detection.
12
12
  """
13
13
 
14
+ import asyncio
14
15
  import time
15
16
  from abc import abstractmethod
17
+ from concurrent.futures import ThreadPoolExecutor
16
18
  from typing import Any, Dict, Optional, Tuple
17
19
 
18
20
  import numpy as np
19
21
  from loguru import logger
20
22
  from pydantic import BaseModel
21
23
 
22
- from pipecat.audio.turn.base_turn_analyzer import BaseTurnAnalyzer, EndOfTurnState
24
+ from pipecat.audio.turn.base_turn_analyzer import BaseTurnAnalyzer, BaseTurnParams, EndOfTurnState
23
25
  from pipecat.metrics.metrics import MetricsData, SmartTurnMetricsData
24
26
 
25
27
  # Default timing parameters
@@ -29,7 +31,7 @@ MAX_DURATION_SECONDS = 8 # Max allowed segment duration
29
31
  USE_ONLY_LAST_VAD_SEGMENT = True
30
32
 
31
33
 
32
- class SmartTurnParams(BaseModel):
34
+ class SmartTurnParams(BaseTurnParams):
33
35
  """Configuration parameters for smart turn analysis.
34
36
 
35
37
  Parameters:
@@ -77,6 +79,9 @@ class BaseSmartTurn(BaseTurnAnalyzer):
77
79
  self._speech_triggered = False
78
80
  self._silence_ms = 0
79
81
  self._speech_start_time = 0
82
+ # Thread executor that will run the model. We only need one thread per
83
+ # analyzer because one analyzer just handles one audio stream.
84
+ self._executor = ThreadPoolExecutor(max_workers=1)
80
85
 
81
86
  @property
82
87
  def speech_triggered(self) -> bool:
@@ -151,7 +156,10 @@ class BaseSmartTurn(BaseTurnAnalyzer):
151
156
  Tuple containing the end-of-turn state and optional metrics data
152
157
  from the ML model analysis.
153
158
  """
154
- state, result = await self._process_speech_segment(self._audio_buffer)
159
+ loop = asyncio.get_running_loop()
160
+ state, result = await loop.run_in_executor(
161
+ self._executor, self._process_speech_segment, self._audio_buffer
162
+ )
155
163
  if state == EndOfTurnState.COMPLETE or USE_ONLY_LAST_VAD_SEGMENT:
156
164
  self._clear(state)
157
165
  logger.debug(f"End of Turn result: {state}")
@@ -169,9 +177,7 @@ class BaseSmartTurn(BaseTurnAnalyzer):
169
177
  self._speech_start_time = 0
170
178
  self._silence_ms = 0
171
179
 
172
- async def _process_speech_segment(
173
- self, audio_buffer
174
- ) -> Tuple[EndOfTurnState, Optional[MetricsData]]:
180
+ def _process_speech_segment(self, audio_buffer) -> Tuple[EndOfTurnState, Optional[MetricsData]]:
175
181
  """Process accumulated audio segment using ML model."""
176
182
  state = EndOfTurnState.INCOMPLETE
177
183
 
@@ -203,7 +209,7 @@ class BaseSmartTurn(BaseTurnAnalyzer):
203
209
  if len(segment_audio) > 0:
204
210
  start_time = time.perf_counter()
205
211
  try:
206
- result = await self._predict_endpoint(segment_audio)
212
+ result = self._predict_endpoint(segment_audio)
207
213
  state = (
208
214
  EndOfTurnState.COMPLETE
209
215
  if result["prediction"] == 1
@@ -249,6 +255,6 @@ class BaseSmartTurn(BaseTurnAnalyzer):
249
255
  return state, result_data
250
256
 
251
257
  @abstractmethod
252
- async def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
258
+ def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
253
259
  """Predict end-of-turn using ML model from audio data."""
254
260
  pass
@@ -104,11 +104,15 @@ class HttpSmartTurnAnalyzer(BaseSmartTurn):
104
104
  logger.error(f"Failed to send raw request to Daily Smart Turn: {e}")
105
105
  raise Exception("Failed to send raw request to Daily Smart Turn.")
106
106
 
107
- async def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
107
+ def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
108
108
  """Predict end-of-turn using remote HTTP ML service."""
109
109
  try:
110
110
  serialized_array = self._serialize_array(audio_array)
111
- return await self._send_raw_request(serialized_array)
111
+ loop = asyncio.get_running_loop()
112
+ future = asyncio.run_coroutine_threadsafe(
113
+ self._send_raw_request(serialized_array), loop
114
+ )
115
+ return future.result()
112
116
  except Exception as e:
113
117
  logger.error(f"Smart turn prediction failed: {str(e)}")
114
118
  # Return an incomplete prediction when a failure occurs
@@ -64,7 +64,7 @@ class LocalSmartTurnAnalyzer(BaseSmartTurn):
64
64
  self._turn_model.eval()
65
65
  logger.debug("Loaded Local Smart Turn")
66
66
 
67
- async def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
67
+ def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
68
68
  """Predict end-of-turn using local PyTorch model."""
69
69
  inputs = self._turn_processor(
70
70
  audio_array,
@@ -73,7 +73,7 @@ class LocalSmartTurnAnalyzerV2(BaseSmartTurn):
73
73
  self._turn_model.eval()
74
74
  logger.debug("Loaded Local Smart Turn v2")
75
75
 
76
- async def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
76
+ def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
77
77
  """Predict end-of-turn using local PyTorch model."""
78
78
  inputs = self._turn_processor(
79
79
  audio_array,
@@ -0,0 +1,124 @@
1
+ #
2
+ # Copyright (c) 2025, Daily
3
+ #
4
+ # SPDX-License-Identifier: BSD 2-Clause License
5
+ #
6
+
7
+ """Local turn analyzer for on-device ML inference using the smart-turn-v3 model.
8
+
9
+ This module provides a smart turn analyzer that uses an ONNX model for
10
+ local end-of-turn detection without requiring network connectivity.
11
+ """
12
+
13
+ from typing import Any, Dict, Optional
14
+
15
+ import numpy as np
16
+ from loguru import logger
17
+
18
+ from pipecat.audio.turn.smart_turn.base_smart_turn import BaseSmartTurn
19
+
20
+ try:
21
+ import onnxruntime as ort
22
+ from transformers import WhisperFeatureExtractor
23
+ except ModuleNotFoundError as e:
24
+ logger.error(f"Exception: {e}")
25
+ logger.error(
26
+ "In order to use LocalSmartTurnAnalyzerV3, you need to `pip install pipecat-ai[local-smart-turn-v3]`."
27
+ )
28
+ raise Exception(f"Missing module: {e}")
29
+
30
+
31
+ class LocalSmartTurnAnalyzerV3(BaseSmartTurn):
32
+ """Local turn analyzer using the smart-turn-v3 ONNX model.
33
+
34
+ Provides end-of-turn detection using locally-stored ONNX model,
35
+ enabling offline operation without network dependencies.
36
+ """
37
+
38
+ def __init__(self, *, smart_turn_model_path: Optional[str] = None, **kwargs):
39
+ """Initialize the local ONNX smart-turn-v3 analyzer.
40
+
41
+ Args:
42
+ smart_turn_model_path: Path to the ONNX model file. If this is not
43
+ set, the bundled smart-turn-v3.0 model will be used.
44
+ **kwargs: Additional arguments passed to BaseSmartTurn.
45
+ """
46
+ super().__init__(**kwargs)
47
+
48
+ logger.debug("Loading Local Smart Turn v3 model...")
49
+
50
+ if not smart_turn_model_path:
51
+ # Load bundled model
52
+ model_name = "smart-turn-v3.0.onnx"
53
+ package_path = "pipecat.audio.turn.smart_turn.data"
54
+
55
+ try:
56
+ import importlib_resources as impresources
57
+
58
+ smart_turn_model_path = str(impresources.files(package_path).joinpath(model_name))
59
+ except BaseException:
60
+ from importlib import resources as impresources
61
+
62
+ try:
63
+ with impresources.path(package_path, model_name) as f:
64
+ smart_turn_model_path = f
65
+ except BaseException:
66
+ smart_turn_model_path = str(
67
+ impresources.files(package_path).joinpath(model_name)
68
+ )
69
+
70
+ so = ort.SessionOptions()
71
+ so.execution_mode = ort.ExecutionMode.ORT_SEQUENTIAL
72
+ so.inter_op_num_threads = 1
73
+ so.graph_optimization_level = ort.GraphOptimizationLevel.ORT_ENABLE_ALL
74
+
75
+ self._feature_extractor = WhisperFeatureExtractor(chunk_length=8)
76
+ self._session = ort.InferenceSession(smart_turn_model_path, sess_options=so)
77
+
78
+ logger.debug("Loaded Local Smart Turn v3")
79
+
80
+ def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
81
+ """Predict end-of-turn using local ONNX model."""
82
+
83
+ def truncate_audio_to_last_n_seconds(audio_array, n_seconds=8, sample_rate=16000):
84
+ """Truncate audio to last n seconds or pad with zeros to meet n seconds."""
85
+ max_samples = n_seconds * sample_rate
86
+ if len(audio_array) > max_samples:
87
+ return audio_array[-max_samples:]
88
+ elif len(audio_array) < max_samples:
89
+ # Pad with zeros at the beginning
90
+ padding = max_samples - len(audio_array)
91
+ return np.pad(audio_array, (padding, 0), mode="constant", constant_values=0)
92
+ return audio_array
93
+
94
+ # Truncate to 8 seconds (keeping the end) or pad to 8 seconds
95
+ audio_array = truncate_audio_to_last_n_seconds(audio_array, n_seconds=8)
96
+
97
+ # Process audio using Whisper's feature extractor
98
+ inputs = self._feature_extractor(
99
+ audio_array,
100
+ sampling_rate=16000,
101
+ return_tensors="np",
102
+ padding="max_length",
103
+ max_length=8 * 16000,
104
+ truncation=True,
105
+ do_normalize=True,
106
+ )
107
+
108
+ # Extract features and ensure correct shape for ONNX
109
+ input_features = inputs.input_features.squeeze(0).astype(np.float32)
110
+ input_features = np.expand_dims(input_features, axis=0) # Add batch dimension
111
+
112
+ # Run ONNX inference
113
+ outputs = self._session.run(None, {"input_features": input_features})
114
+
115
+ # Extract probability (ONNX model returns sigmoid probabilities)
116
+ probability = outputs[0][0].item()
117
+
118
+ # Make prediction (1 for Complete, 0 for Incomplete)
119
+ prediction = 1 if probability > 0.5 else 0
120
+
121
+ return {
122
+ "prediction": prediction,
123
+ "probability": probability,
124
+ }
@@ -464,3 +464,7 @@ class VistaarLLMService(LLMService):
464
464
  await self.cancel_task(self._interim_task)
465
465
  self._interim_task = None
466
466
  logger.debug(message)
467
+
468
+ def can_generate_metrics(self) -> bool:
469
+ """Check if this service can generate processing metrics."""
470
+ return True