dv-pipecat-ai 0.0.82.dev816__tar.gz → 0.0.82.dev857__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 (453) hide show
  1. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/CHANGELOG.md +349 -2
  2. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/CLAUDE.md +52 -7
  3. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/PKG-INFO +8 -3
  4. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/README.md +1 -1
  5. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/env.example +15 -0
  6. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/templates/deployment.yaml +13 -2
  7. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/values-prod.yaml +8 -0
  8. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/values-stage.yaml +3 -0
  9. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/values.yaml +19 -9
  10. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/pyproject.toml +20 -3
  11. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/dv_pipecat_ai.egg-info/PKG-INFO +8 -3
  12. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/dv_pipecat_ai.egg-info/SOURCES.txt +27 -0
  13. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/dv_pipecat_ai.egg-info/requires.txt +8 -1
  14. dv_pipecat_ai-0.0.82.dev857/src/pipecat/adapters/base_llm_adapter.py +95 -0
  15. dv_pipecat_ai-0.0.82.dev857/src/pipecat/adapters/services/anthropic_adapter.py +353 -0
  16. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +40 -2
  17. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/adapters/services/bedrock_adapter.py +40 -2
  18. dv_pipecat_ai-0.0.82.dev857/src/pipecat/adapters/services/gemini_adapter.py +311 -0
  19. dv_pipecat_ai-0.0.82.dev857/src/pipecat/adapters/services/open_ai_adapter.py +120 -0
  20. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +39 -1
  21. dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/dtmf/types.py +47 -0
  22. dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/dtmf/utils.py +70 -0
  23. dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/filters/aic_filter.py +199 -0
  24. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/utils.py +9 -7
  25. dv_pipecat_ai-0.0.82.dev857/src/pipecat/extensions/ivr/ivr_navigator.py +452 -0
  26. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/frames/frames.py +156 -43
  27. dv_pipecat_ai-0.0.82.dev857/src/pipecat/pipeline/llm_switcher.py +76 -0
  28. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/pipeline/parallel_pipeline.py +3 -3
  29. dv_pipecat_ai-0.0.82.dev857/src/pipecat/pipeline/service_switcher.py +144 -0
  30. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/pipeline/task.py +68 -28
  31. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/pipeline/task_observer.py +10 -0
  32. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/aggregators/dtmf_aggregator.py +2 -2
  33. dv_pipecat_ai-0.0.82.dev857/src/pipecat/processors/aggregators/llm_context.py +277 -0
  34. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/aggregators/llm_response.py +48 -15
  35. dv_pipecat_ai-0.0.82.dev857/src/pipecat/processors/aggregators/llm_response_universal.py +840 -0
  36. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/aggregators/openai_llm_context.py +3 -3
  37. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/dtmf_aggregator.py +0 -2
  38. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/filters/stt_mute_filter.py +0 -2
  39. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/frame_processor.py +18 -11
  40. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/frameworks/rtvi.py +17 -10
  41. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/metrics/sentry.py +2 -0
  42. dv_pipecat_ai-0.0.82.dev857/src/pipecat/runner/daily.py +233 -0
  43. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/runner/run.py +1 -1
  44. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/runner/utils.py +7 -7
  45. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/asterisk.py +19 -4
  46. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/exotel.py +1 -1
  47. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/plivo.py +1 -1
  48. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/telnyx.py +1 -1
  49. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/twilio.py +1 -1
  50. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/__init__.py +2 -2
  51. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/anthropic/llm.py +113 -28
  52. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/asyncai/tts.py +4 -0
  53. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/aws/llm.py +82 -8
  54. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/aws/tts.py +0 -10
  55. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/aws_nova_sonic/aws.py +5 -0
  56. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/cartesia/tts.py +28 -16
  57. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/cerebras/llm.py +15 -10
  58. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/deepgram/stt.py +8 -0
  59. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/deepseek/llm.py +13 -8
  60. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/fireworks/llm.py +13 -8
  61. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/fish/tts.py +8 -6
  62. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/gemini_multimodal_live/gemini.py +5 -0
  63. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/gladia/config.py +7 -1
  64. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/gladia/stt.py +23 -15
  65. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/llm.py +159 -59
  66. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/llm_openai.py +18 -3
  67. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/grok/llm.py +2 -1
  68. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/llm_service.py +38 -3
  69. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/mem0/memory.py +2 -1
  70. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/mistral/llm.py +5 -6
  71. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/nim/llm.py +2 -1
  72. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai/base_llm.py +88 -26
  73. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai/image.py +6 -1
  74. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai_realtime_beta/openai.py +5 -2
  75. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openpipe/llm.py +6 -8
  76. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/perplexity/llm.py +13 -8
  77. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/playht/tts.py +9 -6
  78. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/rime/tts.py +1 -1
  79. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/sambanova/llm.py +18 -13
  80. dv_pipecat_ai-0.0.82.dev857/src/pipecat/services/sarvam/tts.py +647 -0
  81. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/speechmatics/stt.py +2 -2
  82. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/tavus/video.py +1 -1
  83. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/tts_service.py +12 -5
  84. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/vistaar/llm.py +0 -1
  85. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/transports/base_input.py +32 -19
  86. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/transports/base_output.py +39 -5
  87. dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/services/daily.py → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/daily/transport.py +57 -36
  88. dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/services/helpers/daily_rest.py → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/daily/utils.py +4 -1
  89. dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/services/livekit.py → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/livekit/transport.py +54 -0
  90. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/network/fastapi_websocket.py +25 -0
  91. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/network/small_webrtc.py +25 -0
  92. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/network/webrtc_connection.py +25 -0
  93. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/network/websocket_client.py +25 -0
  94. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/network/websocket_server.py +25 -0
  95. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/services/daily.py +25 -0
  96. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/services/helpers/__init__.py +0 -0
  97. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/services/helpers/daily_rest.py +23 -0
  98. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/services/livekit.py +25 -0
  99. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/services/tavus.py +25 -0
  100. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/smallwebrtc/__init__.py +0 -0
  101. dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/network/webrtc_connection.py → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/smallwebrtc/connection.py +4 -3
  102. dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/network/small_webrtc.py → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/smallwebrtc/transport.py +3 -2
  103. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/tavus/__init__.py +0 -0
  104. dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/services/tavus.py → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/tavus/transport.py +1 -1
  105. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/websocket/__init__.py +0 -0
  106. dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/network/fastapi_websocket.py → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/websocket/fastapi.py +1 -1
  107. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/whatsapp/__init__.py +0 -0
  108. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/whatsapp/api.py +345 -0
  109. dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/whatsapp/client.py +364 -0
  110. dv_pipecat_ai-0.0.82.dev857/src/pipecat/utils/__init__.py +0 -0
  111. dv_pipecat_ai-0.0.82.dev857/src/pipecat/utils/asyncio/__init__.py +0 -0
  112. dv_pipecat_ai-0.0.82.dev857/src/pipecat/utils/text/__init__.py +0 -0
  113. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/uv.lock +53 -33
  114. dv_pipecat_ai-0.0.82.dev816/src/pipecat/adapters/base_llm_adapter.py +0 -57
  115. dv_pipecat_ai-0.0.82.dev816/src/pipecat/adapters/services/anthropic_adapter.py +0 -53
  116. dv_pipecat_ai-0.0.82.dev816/src/pipecat/adapters/services/gemini_adapter.py +0 -41
  117. dv_pipecat_ai-0.0.82.dev816/src/pipecat/adapters/services/open_ai_adapter.py +0 -39
  118. dv_pipecat_ai-0.0.82.dev816/src/pipecat/runner/daily.py +0 -132
  119. dv_pipecat_ai-0.0.82.dev816/src/pipecat/services/sarvam/tts.py +0 -242
  120. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.dockerignore +0 -0
  121. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
  122. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
  123. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
  124. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
  125. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
  126. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
  127. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
  128. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  129. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  130. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/build.yaml +0 -0
  131. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/coverage.yaml +0 -0
  132. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/format.yaml +0 -0
  133. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/github.yml +0 -0
  134. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/promote-prod.yml +0 -0
  135. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/publish.yaml +0 -0
  136. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/publish_test.yaml +0 -0
  137. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/python-compatibility.yaml +0 -0
  138. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/set-traffic-split.yml +0 -0
  139. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/smart-auto-release.yml +0 -0
  140. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/sync-quickstart.yaml +0 -0
  141. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.github/workflows/tests.yaml +0 -0
  142. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.gitignore +0 -0
  143. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.pre-commit-config.yaml +0 -0
  144. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/.readthedocs.yaml +0 -0
  145. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/CHANGELOG.md.template +0 -0
  146. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/CONTRIBUTING.md +0 -0
  147. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
  148. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/LICENSE +0 -0
  149. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/MANIFEST.in +0 -0
  150. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/ansible.cfg +0 -0
  151. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/ansible_deployment.sh +0 -0
  152. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/cleanup_old_containers.yml +0 -0
  153. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/codecov.yml +0 -0
  154. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/create-new-machine/ansible.cfg +0 -0
  155. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/create-new-machine/ansible_setup.sh +0 -0
  156. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/create-new-machine/inventory.ini +0 -0
  157. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/create-new-machine/replace_env.yml +0 -0
  158. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/create-new-machine/setup_playbook.yml +0 -0
  159. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/create_inventory.py +0 -0
  160. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/delete_old_dockers.sh +0 -0
  161. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/deploy.sh +0 -0
  162. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/deploy_playbook.yml +0 -0
  163. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/docker-compose.dev.yml +0 -0
  164. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/dump_logs.yml +0 -0
  165. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/fetch_logs.yml +0 -0
  166. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/inventory.ini +0 -0
  167. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/.helmignore +0 -0
  168. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/Chart.yaml +0 -0
  169. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
  170. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
  171. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
  172. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
  173. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
  174. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
  175. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
  176. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
  177. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/templates/service.yaml +0 -0
  178. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/dv-pipecat/values-canary.yaml +0 -0
  179. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/k8s/istio/destination-virtualservice.yaml +0 -0
  180. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/merge-code-into-single-file.sh +0 -0
  181. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/pipecat.png +0 -0
  182. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/restart.sh +0 -0
  183. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/restart_playbook.yml +0 -0
  184. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/setup.cfg +0 -0
  185. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
  186. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
  187. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/__init__.py +0 -0
  188. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/adapters/__init__.py +0 -0
  189. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/adapters/schemas/__init__.py +0 -0
  190. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/adapters/schemas/direct_function.py +0 -0
  191. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/adapters/schemas/function_schema.py +0 -0
  192. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
  193. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/adapters/services/__init__.py +0 -0
  194. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/__init__.py +0 -0
  195. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/audio/filters → dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/dtmf}/__init__.py +0 -0
  196. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/audio/interruptions → dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/filters}/__init__.py +0 -0
  197. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
  198. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/filters/koala_filter.py +0 -0
  199. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/filters/krisp_filter.py +0 -0
  200. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
  201. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
  202. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/audio/mixers → dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/interruptions}/__init__.py +0 -0
  203. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
  204. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
  205. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/audio/turn → dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/mixers}/__init__.py +0 -0
  206. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
  207. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
  208. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/resamplers/__init__.py +0 -0
  209. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
  210. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
  211. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
  212. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
  213. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/audio/turn/smart_turn → dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/turn}/__init__.py +0 -0
  214. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/turn/base_turn_analyzer.py +0 -0
  215. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/audio/vad → dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/turn/smart_turn}/__init__.py +0 -0
  216. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +0 -0
  217. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
  218. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +0 -0
  219. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
  220. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +0 -0
  221. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +0 -0
  222. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/audio/vad/data → dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/vad}/__init__.py +0 -0
  223. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/clocks → dv_pipecat_ai-0.0.82.dev857/src/pipecat/audio/vad/data}/__init__.py +0 -0
  224. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
  225. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/vad/silero.py +0 -0
  226. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
  227. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/extensions → dv_pipecat_ai-0.0.82.dev857/src/pipecat/clocks}/__init__.py +0 -0
  228. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/clocks/base_clock.py +0 -0
  229. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/clocks/system_clock.py +0 -0
  230. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/extensions/voicemail → dv_pipecat_ai-0.0.82.dev857/src/pipecat/extensions}/__init__.py +0 -0
  231. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/frames → dv_pipecat_ai-0.0.82.dev857/src/pipecat/extensions/ivr}/__init__.py +0 -0
  232. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/metrics → dv_pipecat_ai-0.0.82.dev857/src/pipecat/extensions/voicemail}/__init__.py +0 -0
  233. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/extensions/voicemail/voicemail_detector.py +0 -0
  234. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/observers → dv_pipecat_ai-0.0.82.dev857/src/pipecat/frames}/__init__.py +0 -0
  235. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/frames/frames.proto +0 -0
  236. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
  237. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/observers/loggers → dv_pipecat_ai-0.0.82.dev857/src/pipecat/metrics}/__init__.py +0 -0
  238. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/metrics/metrics.py +0 -0
  239. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/pipeline → dv_pipecat_ai-0.0.82.dev857/src/pipecat/observers}/__init__.py +0 -0
  240. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/observers/base_observer.py +0 -0
  241. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/processors → dv_pipecat_ai-0.0.82.dev857/src/pipecat/observers/loggers}/__init__.py +0 -0
  242. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
  243. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
  244. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
  245. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
  246. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/observers/turn_tracking_observer.py +0 -0
  247. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/processors/aggregators → dv_pipecat_ai-0.0.82.dev857/src/pipecat/pipeline}/__init__.py +0 -0
  248. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/pipeline/base_pipeline.py +0 -0
  249. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/pipeline/base_task.py +0 -0
  250. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/pipeline/pipeline.py +0 -0
  251. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/pipeline/runner.py +0 -0
  252. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
  253. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
  254. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/processors/audio → dv_pipecat_ai-0.0.82.dev857/src/pipecat/processors}/__init__.py +0 -0
  255. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/processors/filters → dv_pipecat_ai-0.0.82.dev857/src/pipecat/processors/aggregators}/__init__.py +0 -0
  256. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/aggregators/gated.py +0 -0
  257. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/aggregators/gated_openai_llm_context.py +0 -0
  258. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/aggregators/sentence.py +0 -0
  259. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/aggregators/user_response.py +0 -0
  260. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
  261. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/async_generator.py +0 -0
  262. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/processors/frameworks → dv_pipecat_ai-0.0.82.dev857/src/pipecat/processors/audio}/__init__.py +0 -0
  263. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
  264. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/consumer_processor.py +0 -0
  265. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/processors/gstreamer → dv_pipecat_ai-0.0.82.dev857/src/pipecat/processors/filters}/__init__.py +0 -0
  266. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/filters/frame_filter.py +0 -0
  267. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/filters/function_filter.py +0 -0
  268. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/filters/identity_filter.py +0 -0
  269. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/filters/null_filter.py +0 -0
  270. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
  271. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
  272. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/processors/metrics → dv_pipecat_ai-0.0.82.dev857/src/pipecat/processors/frameworks}/__init__.py +0 -0
  273. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/frameworks/langchain.py +0 -0
  274. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/services/asyncai → dv_pipecat_ai-0.0.82.dev857/src/pipecat/processors/gstreamer}/__init__.py +0 -0
  275. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
  276. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/idle_frame_processor.py +0 -0
  277. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/logger.py +0 -0
  278. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/services/mistral → dv_pipecat_ai-0.0.82.dev857/src/pipecat/processors/metrics}/__init__.py +0 -0
  279. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
  280. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/producer_processor.py +0 -0
  281. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/text_transformer.py +0 -0
  282. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/transcript_processor.py +0 -0
  283. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
  284. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/processors/user_idle_processor.py +0 -0
  285. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/py.typed +0 -0
  286. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/runner/__init__.py +0 -0
  287. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/runner/livekit.py +0 -0
  288. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/runner/types.py +0 -0
  289. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/__init__.py +0 -0
  290. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/base_serializer.py +0 -0
  291. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/convox.py +0 -0
  292. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/genesys.py +0 -0
  293. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/livekit.py +0 -0
  294. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/serializers/protobuf.py +0 -0
  295. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/ai_service.py +0 -0
  296. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/ai_services.py +0 -0
  297. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/anthropic/__init__.py +0 -0
  298. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/assemblyai/__init__.py +0 -0
  299. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/assemblyai/models.py +0 -0
  300. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/assemblyai/stt.py +0 -0
  301. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/services/soniox → dv_pipecat_ai-0.0.82.dev857/src/pipecat/services/asyncai}/__init__.py +0 -0
  302. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/aws/__init__.py +0 -0
  303. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/aws/stt.py +0 -0
  304. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/aws/utils.py +0 -0
  305. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
  306. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
  307. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
  308. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/aws_nova_sonic/ready.wav +0 -0
  309. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/azure/__init__.py +0 -0
  310. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/azure/common.py +0 -0
  311. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/azure/image.py +0 -0
  312. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/azure/llm.py +0 -0
  313. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/azure/stt.py +0 -0
  314. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/azure/tts.py +0 -0
  315. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/cartesia/__init__.py +0 -0
  316. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/cartesia/stt.py +0 -0
  317. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/cerebras/__init__.py +0 -0
  318. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/deepgram/__init__.py +0 -0
  319. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/deepgram/tts.py +0 -0
  320. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/deepseek/__init__.py +0 -0
  321. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/elevenlabs/__init__.py +0 -0
  322. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/elevenlabs/tts.py +0 -0
  323. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/fal/__init__.py +0 -0
  324. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/fal/image.py +0 -0
  325. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/fal/stt.py +0 -0
  326. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/fireworks/__init__.py +0 -0
  327. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/fish/__init__.py +0 -0
  328. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
  329. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
  330. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/gemini_multimodal_live/file_api.py +0 -0
  331. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/gladia/__init__.py +0 -0
  332. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/__init__.py +0 -0
  333. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/frames.py +0 -0
  334. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/google.py +0 -0
  335. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/image.py +0 -0
  336. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/llm_vertex.py +0 -0
  337. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/rtvi.py +0 -0
  338. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/stt.py +0 -0
  339. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/test-google-chirp.py +0 -0
  340. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/google/tts.py +0 -0
  341. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/grok/__init__.py +0 -0
  342. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/groq/__init__.py +0 -0
  343. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/groq/llm.py +0 -0
  344. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/groq/stt.py +0 -0
  345. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/groq/tts.py +0 -0
  346. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/hamsa/__init__.py +0 -0
  347. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/hamsa/stt.py +0 -0
  348. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/heygen/__init__.py +0 -0
  349. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/heygen/api.py +0 -0
  350. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/heygen/client.py +0 -0
  351. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/heygen/video.py +0 -0
  352. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/image_service.py +0 -0
  353. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/inworld/__init__.py +0 -0
  354. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/inworld/tts.py +0 -0
  355. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/lmnt/__init__.py +0 -0
  356. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/lmnt/tts.py +0 -0
  357. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/mcp_service.py +0 -0
  358. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/mem0/__init__.py +0 -0
  359. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/minimax/__init__.py +0 -0
  360. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/minimax/tts.py +0 -0
  361. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/sync → dv_pipecat_ai-0.0.82.dev857/src/pipecat/services/mistral}/__init__.py +0 -0
  362. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/moondream/__init__.py +0 -0
  363. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/moondream/vision.py +0 -0
  364. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/neuphonic/__init__.py +0 -0
  365. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/neuphonic/tts.py +0 -0
  366. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/nim/__init__.py +0 -0
  367. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/ollama/__init__.py +0 -0
  368. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/ollama/llm.py +0 -0
  369. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai/__init__.py +0 -0
  370. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai/llm.py +0 -0
  371. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai/stt.py +0 -0
  372. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai/tts.py +0 -0
  373. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai.py +0 -0
  374. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
  375. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
  376. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
  377. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
  378. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
  379. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openpipe/__init__.py +0 -0
  380. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openrouter/__init__.py +0 -0
  381. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/openrouter/llm.py +0 -0
  382. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/perplexity/__init__.py +0 -0
  383. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/piper/__init__.py +0 -0
  384. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/piper/tts.py +0 -0
  385. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/playht/__init__.py +0 -0
  386. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/qwen/__init__.py +0 -0
  387. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/qwen/llm.py +0 -0
  388. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/rime/__init__.py +0 -0
  389. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/riva/__init__.py +0 -0
  390. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/riva/stt.py +0 -0
  391. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/riva/tts.py +0 -0
  392. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/sambanova/__init__.py +0 -0
  393. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/sambanova/stt.py +0 -0
  394. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/sarvam/__init__.py +0 -0
  395. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/simli/__init__.py +0 -0
  396. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/simli/video.py +0 -0
  397. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/tests → dv_pipecat_ai-0.0.82.dev857/src/pipecat/services/soniox}/__init__.py +0 -0
  398. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/soniox/stt.py +0 -0
  399. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/speechmatics/__init__.py +0 -0
  400. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/stt_service.py +0 -0
  401. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/tavus/__init__.py +0 -0
  402. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/together/__init__.py +0 -0
  403. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/together/llm.py +0 -0
  404. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/ultravox/__init__.py +0 -0
  405. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/ultravox/stt.py +0 -0
  406. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/vision_service.py +0 -0
  407. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/vistaar/__init__.py +0 -0
  408. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/websocket_service.py +0 -0
  409. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/whisper/__init__.py +0 -0
  410. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/whisper/base_stt.py +0 -0
  411. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/whisper/stt.py +0 -0
  412. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/xtts/__init__.py +0 -0
  413. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/services/xtts/tts.py +0 -0
  414. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/transcriptions → dv_pipecat_ai-0.0.82.dev857/src/pipecat/sync}/__init__.py +0 -0
  415. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/sync/base_notifier.py +0 -0
  416. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/sync/event_notifier.py +0 -0
  417. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports → dv_pipecat_ai-0.0.82.dev857/src/pipecat/tests}/__init__.py +0 -0
  418. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/tests/utils.py +0 -0
  419. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/local → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transcriptions}/__init__.py +0 -0
  420. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/transcriptions/language.py +0 -0
  421. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/network → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports}/__init__.py +0 -0
  422. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/transports/base_transport.py +0 -0
  423. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/services → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/daily}/__init__.py +0 -0
  424. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/services/helpers → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/livekit}/__init__.py +0 -0
  425. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/utils → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/local}/__init__.py +0 -0
  426. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/transports/local/audio.py +0 -0
  427. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/transports/local/tk.py +0 -0
  428. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/utils/asyncio → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/network}/__init__.py +0 -0
  429. {dv_pipecat_ai-0.0.82.dev816/src/pipecat/utils/text → dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/services}/__init__.py +0 -0
  430. /dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/network/websocket_client.py → /dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/websocket/client.py +0 -0
  431. /dv_pipecat_ai-0.0.82.dev816/src/pipecat/transports/network/websocket_server.py → /dv_pipecat_ai-0.0.82.dev857/src/pipecat/transports/websocket/server.py +0 -0
  432. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/asyncio/task_manager.py +0 -0
  433. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/base_object.py +0 -0
  434. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/logger_config.py +0 -0
  435. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/network.py +0 -0
  436. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/string.py +0 -0
  437. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
  438. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/text/base_text_filter.py +0 -0
  439. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
  440. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
  441. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
  442. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
  443. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/time.py +0 -0
  444. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/tracing/__init__.py +0 -0
  445. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/tracing/class_decorators.py +0 -0
  446. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
  447. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/tracing/service_attributes.py +0 -0
  448. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/tracing/service_decorators.py +0 -0
  449. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/tracing/setup.py +0 -0
  450. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
  451. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
  452. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/src/pipecat/utils/utils.py +0 -0
  453. {dv_pipecat_ai-0.0.82.dev816 → dv_pipecat_ai-0.0.82.dev857}/stop_container.yml +0 -0
@@ -5,6 +5,353 @@ All notable changes to **Pipecat** will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.0.84] - 2025-09-05
9
+
10
+ ### Added
11
+
12
+ - Add the ability to send DTMF to `LiveKitTransport`.
13
+
14
+ - Expanded support for universal `LLMContext` to the Anthropic LLM service.
15
+ Using the universal `LLMContext` and associated `LLMContextAggregatorPair` is
16
+ a pre-requisite for using `LLMSwitcher` to switch between LLMs at runtime.
17
+
18
+ ### Changed
19
+
20
+ - Updated `daily-python` to 0.19.9.
21
+
22
+ - Restored `DailyTransport`'s native DTMF support using Daily's `send_dtmf()`
23
+ method instead of generated audio tones.
24
+
25
+ ### Fixed
26
+
27
+ - Fixed a `AWSBedrockLLMService` crash caused by an extra `await`.
28
+
29
+ - Fixed a `OpenAIImageGenService` issue where it was not creating
30
+ `URLImageRawFrame` correctly.
31
+
32
+ ## [0.0.83] - 2025-09-03
33
+
34
+ ### Added
35
+
36
+ - Added multilingual support for AsyncAI in `AsyncAITTSService` and `AsyncAIHttpTTSService`.
37
+
38
+ - New `languages`: `es`, `fr`, `de`, `it`.
39
+
40
+ - Added new frames `InputTransportMessageUrgentFrame` and
41
+ `DailyInputTransportMessageUrgentFrame` for transport messages received from
42
+ external sources.
43
+
44
+ - Added `UserSpeakingFrame`. This will be sent upstream and downstream while VAD
45
+ detects the user is speaking.
46
+
47
+ - Expanded support for universal `LLMContext` to more LLM services. Using the
48
+ universal `LLMContext` and associated `LLMContextAggregatorPair` is a
49
+ pre-requisite for using `LLMSwitcher` to switch between LLMs at runtime.
50
+ Here are the newly-supported services:
51
+
52
+ - Azure
53
+ - Cerebras
54
+ - Deepseek
55
+ - Fireworks AI
56
+ - Google Vertex AI
57
+ - Grok
58
+ - Groq
59
+ - Mistral
60
+ - NVIDIA NIM
61
+ - Ollama
62
+ - OpenPipe
63
+ - OpenRouter
64
+ - Perplexity
65
+ - Qwen
66
+ - SambaNova
67
+ - Together.ai
68
+
69
+ - Added support for WhatsApp User-initiated Calls.
70
+
71
+ - Added new audio filter `AICFilter`, speech enhancement for improving VAD/STT
72
+ performance, no ONNX dependency.
73
+ See https://ai-coustics.com/sdk/
74
+
75
+ - Added a timeout around cancel input tasks to prevent indefinite hangs when
76
+ cancellation is swallowed by third-party code.
77
+
78
+ - Added `pipecat.extensions.ivr` for automated IVR system navigation with
79
+ configurable goals and conversation handling. Supports DTMF input, verbal
80
+ responses, and intelligent menu traversal.
81
+
82
+ Basic usage:
83
+
84
+ ```python
85
+ from pipecat.extensions.ivr.ivr_navigator import IVRNavigator
86
+
87
+ # Create IVR navigator with your goal
88
+ ivr_navigator = IVRNavigator(
89
+ llm=llm_service,
90
+ ivr_prompt="Navigate to billing department to dispute a charge"
91
+ )
92
+
93
+ # Handle different outcomes
94
+ @ivr_navigator.event_handler("on_conversation_detected")
95
+ async def on_conversation(processor, conversation_history):
96
+ # Switch to normal conversation mode
97
+ pass
98
+
99
+ @ivr_navigator.event_handler("on_ivr_status_changed")
100
+ async def on_ivr_status(processor, status):
101
+ if status == IVRStatus.COMPLETED:
102
+ # End pipeline, transfer call, or start bot conversation
103
+ elif status == IVRStatus.STUCK:
104
+ # Handle navigation failure
105
+ ```
106
+
107
+ - `BaseOutputTransport` now implements `write_dtmf()` by loading DTMF audio and
108
+ sending it through the transport. This makes sending DTMF generic across all
109
+ output transports.
110
+
111
+ - Added new config parameters to `GladiaSTTService`.
112
+ - PreProcessingConfig > `audio_enhancer` to enhance audio quality.
113
+ - CustomVocabularyItem > `pronunciations` and `language` to specify special
114
+ pronunciations and in which language it will be pronounced.
115
+
116
+ ### Changed
117
+
118
+ - `UserStartedSpeakingFrame` and `UserStoppedSpeakingFrame` are also pushed
119
+ upstream.
120
+
121
+ - `ParallelPipeline` now waits for `CancelFrame` to finish in all branches
122
+ before pushing it downstream.
123
+
124
+ - Added `sip_codecs` to the `DailyRoomSipParams`.
125
+
126
+ - Updated the `configure()` function in `pipecat.runner.daily` to include new
127
+ args to create SIP-enabled rooms. Additionally, added new args to control the
128
+ room and token expiration durations.
129
+
130
+ - `pipecat.frames.frames.KeypadEntry` is deprecated and has been moved to
131
+ `pipecat.audio.dtmf.types.KeypadEntry`.
132
+
133
+ - Updated `RimeTTSService`'s flush_audio message to conform with Rime's official
134
+ API.
135
+
136
+ - Updated the default model for `CerebrasLLMService` to GPT-OSS-120B.
137
+
138
+ ### Removed
139
+
140
+ - Remove `StopInterruptionFrame`. This was a legacy frame that was not being
141
+ used really anywhere and it didn't provide any useful meaning. It was only
142
+ pushed after `UserStoppedSpeakingFrame`, so developers can just use
143
+ `UserStoppedSpeakingFrame`.
144
+
145
+ - `DailyTransport.write_dtmf()` has been removed in favor of the generic
146
+ `BaseOutputTransport.write_dtmf()`.
147
+
148
+ - Remove deprecated `DailyTransport.send_dtmf()`.
149
+
150
+ ### Deprecated
151
+
152
+ - Transports have been re-organized.
153
+
154
+ ```
155
+ pipecat.transports.network.small_webrtc -> pipecat.transports.smallwebrtc.transport
156
+ pipecat.transports.network.webrtc_connection -> pipecat.transports.smallwebrtc.connection
157
+ pipecat.transports.network.websocket_client -> pipecat.transports.websocket.client
158
+ pipecat.transports.network.websocket_server -> pipecat.transports.websocket.server
159
+ pipecat.transports.network.fastapi_websocket -> pipecat.transports.websocket.fastapi
160
+ pipecat.transports.services.daily -> pipecat.transports.daily.transport
161
+ pipecat.transports.services.helpers.daily_rest -> pipecat.transports.daily.utils
162
+ pipecat.transports.services.livekit -> pipecat.transports.livekit.transport
163
+ pipecat.transports.services.tavus -> pipecat.transports.tavus.transport
164
+ ```
165
+
166
+ - `pipecat.frames.frames.KeypadEntry` is deprecated use
167
+ `pipecat.audio.dtmf.types.KeypadEntry` instead.
168
+
169
+ ### Fixed
170
+
171
+ - Fixed an issue where messages received from the transport were always being resent.
172
+
173
+ - Fixed `SmallWebRTCTransport` to not use `mid` to decide if the transceiver should
174
+ be `sendrecv` or not.
175
+
176
+ - Fixed an issue where Deepgram swallowed `asyncio.CancelledError` during
177
+ disconnect, preventing tasks from being cancelled.
178
+
179
+ - Fixed an issue where `PipelineTask` was not cleaning up the observers.
180
+
181
+ ### Performance
182
+
183
+ - Reduced latency and improved memory performance in `Mem0MemoryService`.
184
+
185
+ ## [0.0.82] - 2025-08-28
186
+
187
+ ### Added
188
+
189
+ - Added a new `LLMRunFrame` to trigger an LLM response:
190
+
191
+ ```python
192
+ await task.queue_frames([LLMRunFrame()])
193
+ ```
194
+
195
+ This replaces `OpenAILLMContextFrame`, which you’d previously typically use
196
+ like this:
197
+
198
+ ```python
199
+ await task.queue_frames([context_aggregator.user().get_context_frame()])
200
+ ```
201
+
202
+ Use this way of kicking off your conversation when you’ve already initialized
203
+ your context and are simply instructing the bot when to go:
204
+
205
+ ```python
206
+ context = OpenAILLMContext(messages, tools)
207
+ context_aggregator = llm.create_context_aggregator(context)
208
+
209
+ # ...
210
+
211
+ @transport.event_handler("on_client_connected")
212
+ async def on_client_connected(transport, client):
213
+ # Kick off the conversation.
214
+ await task.queue_frames([LLMRunFrame()])
215
+ ```
216
+
217
+ Note that if you want to add new messages when kicking off the conversation,
218
+ you could use `LLMMessagesAppendFrame` with `run_llm=True` instead:
219
+
220
+ ```python
221
+ @transport.event_handler("on_client_connected")
222
+ async def on_client_connected(transport, client):
223
+ # Kick off the conversation.
224
+ await task.queue_frames([LLMMessagesAppendFrame(new_messages, run_llm=True)])
225
+ ```
226
+
227
+ In the rare case you don’t have a context aggregator in your pipeline, then
228
+ you may continue using a context frame.
229
+
230
+ - Added support for switching between audio+text to text-only modes within the
231
+ same pipeline. This is done by pushing
232
+ `LLMConfigureOutputFrame(skip_tts=True)` to enter text-only mode, and
233
+ disabling it to return to audio+text. The LLM will still generate tokens and
234
+ add them to the context, but they will not be sent to TTS.
235
+
236
+ - Added `skip_tts` field to `TextFrame`. This lets a text frame bypass TTS while
237
+ still being included in the LLM context. Useful for cases like structured text
238
+ that isn’t meant to be spoken but should still contribute to context.
239
+
240
+ - Added a `cancel_timeout_secs` argument to `PipelineTask` which defines how
241
+ long the pipeline has to complete cancellation. When `PipelineTask.cancel()`
242
+ is called, a `CancelFrame` is pushed through the pipeline and must reach the
243
+ end. If it does not reach the end within the specified time, a warning is
244
+ shown and the wait is aborted.
245
+
246
+ - Added a new "universal" (LLM-agnostic) `LLMContext` and accompanying
247
+ `LLMContextAggregatorPair`, which will eventually replace `OpenAILLMContext`
248
+ (and the other under-the-hood contexts) and the other context aggregators.
249
+ The new universal `LLMContext` machinery allows a single context to be shared
250
+ between different LLMs, enabling runtime LLM switching and scenarios like
251
+ failover.
252
+
253
+ From the developer's point of view, switching to using the new universal
254
+ context machinery will usually be a matter of going from this:
255
+
256
+ ```python
257
+ context = OpenAILLMContext(messages, tools)
258
+ context_aggregator = llm.create_context_aggregator(context)
259
+ ```
260
+
261
+ To this:
262
+
263
+ ```python
264
+ context = LLMContext(messages, tools)
265
+ context_aggregator = LLMContextAggregatorPair(context)
266
+ ```
267
+
268
+ To start, the universal `LLMContext` is supported with the following LLM
269
+ services:
270
+
271
+ - `OpenAILLMService`
272
+ - `GoogleLLMService`
273
+
274
+ - Added a new `LLMSwitcher` class to enable runtime LLM switching, built atop a
275
+ new generic `ServiceSwitcher`.
276
+
277
+ Switchers take a switching strategy. The first available strategy is
278
+ `ServiceSwitcherStrategyManual`.
279
+
280
+ To switch LLMs at runtime, the LLMs must be sharing one instance of the new
281
+ universal `LLMContext` (see above bullet).
282
+
283
+ ```python
284
+ # Instantiate your LLM services
285
+ llm_openai = OpenAILLMService(api_key=os.getenv("OPENAI_API_KEY"))
286
+ llm_google = GoogleLLMService(api_key=os.getenv("GOOGLE_API_KEY"))
287
+
288
+ # Instantiate a switcher
289
+ # (ServiceSwitcherStrategyManual defaults to OpenAI, as it's first in the list)
290
+ llm_switcher = LLMSwitcher(
291
+ llms=[llm_openai, llm_google], strategy_type=ServiceSwitcherStrategyManual
292
+ )
293
+
294
+ # Create your pipeline
295
+ pipeline = Pipeline(
296
+ [
297
+ transport.input(),
298
+ stt,
299
+ context_aggregator.user(),
300
+ llm_switcher,
301
+ tts,
302
+ transport.output(),
303
+ context_aggregator.assistant(),
304
+ ]
305
+ )
306
+ task = PipelineTask(pipeline, params=PipelineParams(allow_interruptions=True))
307
+
308
+ # ...
309
+ # Whenever is appropriate, switch LLMs!
310
+ await task.queue_frames([ManuallySwitchServiceFrame(service=llm_google)])
311
+ ```
312
+
313
+ - Added an `LLMService.run_inference()` method to LLM services to enable
314
+ direct, out-of-band (i.e. out-of-pipeline) inference.
315
+
316
+ ### Changed
317
+
318
+ - Updated `daily-python` to 0.19.8.
319
+
320
+ - `PipelineTask` now waits for `StartFrame` to reach the end of the pipeline
321
+ before pushing any other frames.
322
+
323
+ - Updated `CartesiaTTSService` and `CartesiaHttpTTSService` to align with
324
+ Cartesia's changes for the `speed` parameter. It now takes only an enum of
325
+ `slow`, `normal`, or `fast`.
326
+
327
+ - Added support to `AWSBedrockLLMService` for setting authentication
328
+ credentials through environment variables.
329
+
330
+ - Updated `SarvamTTSService` to use WebSocket streaming for real-time audio
331
+ generation with multiple Indian languages, with HTTP support still available
332
+ via `SarvamHttpTTSService`.
333
+
334
+ ### Fixed
335
+
336
+ - Fixed an RTVI issue that was causing frames to be pushed before pipeline was
337
+ properly initialized.
338
+
339
+ - Fixed some `get_messages_for_logging()` that were returning a JSON string
340
+ instead of a list.
341
+
342
+ - Fixed a `DailyTransport` issue that prevented DTMF tones from being sent.
343
+
344
+ - Fixed a missing import in `SentryMetrics`.
345
+
346
+ - Fixed `AWSPollyTTSService` to support AWS credential provider chain (IAM
347
+ roles, IRSA, instance profiles) instead of requiring explicit environment
348
+ variables.
349
+
350
+ - Fixed a `CartesiaTTSService` issue that was causing the application to hang
351
+ after Cartesia's 5 minutes timed out.
352
+
353
+ - Fixed an issue preventing `SpeechmaticsSTTService` from transcribing audio.
354
+
8
355
  ## [0.0.81] - 2025-08-25
9
356
 
10
357
  ### Added
@@ -54,8 +401,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
54
401
 
55
402
  ### Deprecated
56
403
 
57
- - `FrameProcessor.wait_for_task()` is deprecated. Use `await task` or `await
58
- asyncio.wait_for(task, timeout)` instead.
404
+ - `FrameProcessor.wait_for_task()` is deprecated. Use `await task` or
405
+ `await asyncio.wait_for(task, timeout)` instead.
59
406
 
60
407
  ### Removed
61
408
 
@@ -60,6 +60,25 @@ python scripts/version-utils.py update 0.0.75.dev123 # Manual version update
60
60
 
61
61
  See **[docs/AUTO_RELEASE.md](docs/AUTO_RELEASE.md)** for complete documentation.
62
62
 
63
+ ## Recent Releases
64
+
65
+ ### [0.0.84] - 2025-09-05
66
+ **Major Updates:**
67
+ - **DTMF Support**: Added DTMF capabilities to `LiveKitTransport` and restored native DTMF for `DailyTransport`
68
+ - **Universal LLM Context**: Expanded support for universal `LLMContext` to Anthropic, enabling LLM switching at runtime
69
+ - **Performance**: Updated `daily-python` to 0.19.9
70
+ - **Bug Fixes**: Fixed `AWSBedrockLLMService` crash and `OpenAIImageGenService` frame creation issues
71
+
72
+ ### [0.0.83] - 2025-09-03
73
+ **Major Features:**
74
+ - **Multilingual TTS**: AsyncAI TTS with support for Spanish, French, German, Italian
75
+ - **Enhanced Frame System**: New `InputTransportMessageUrgentFrame`, `DailyInputTransportMessageUrgentFrame`, and `UserSpeakingFrame`
76
+ - **Universal LLM Support**: Extended to 15+ services (Azure, Cerebras, Deepseek, Fireworks AI, Google Vertex AI, Grok, Groq, Mistral, NVIDIA NIM, Ollama, OpenPipe, OpenRouter, Perplexity, Qwen, SambaNova, Together.ai)
77
+ - **WhatsApp Integration**: Support for WhatsApp user-initiated calls
78
+ - **IVR Navigator**: New `pipecat.extensions.ivr` for automated IVR system navigation
79
+ - **Audio Enhancement**: `AICFilter` for speech enhancement without ONNX dependency
80
+ - **DTMF Processing**: Generic DTMF audio loading across all output transports
81
+
63
82
  ### Ringg Chatbot Development (Primary Codebase)
64
83
  The main development work happens in `examples/ringg-chatbot/`, which is a production telephony chatbot system.
65
84
 
@@ -113,9 +132,12 @@ Pipecat is a **pipeline-based real-time AI conversation framework** for building
113
132
  ### AI Services Integration
114
133
  - **AIService** base class with common functionality
115
134
  - **LLMService**, **STTService**, **TTSService**, **VisionService** for different AI capabilities
135
+ - **Universal LLMContext**: LLM-agnostic context enabling runtime LLM switching
136
+ - **LLMSwitcher**: Runtime switching between different LLM services
137
+ - **LLMContextAggregatorPair**: Universal context aggregator for cross-LLM compatibility
116
138
  - Context aggregators manage conversation state
117
139
  - Function calling support with result callbacks
118
- - Multiple providers: OpenAI, Anthropic, Google, AWS, Azure, Deepgram, ElevenLabs, etc.
140
+ - Multiple providers: OpenAI, Anthropic, Google, AWS, Azure, Deepgram, ElevenLabs, AsyncAI, etc.
119
141
 
120
142
  ### Transport Layer
121
143
  - **BaseTransport** provides input/output interface
@@ -138,18 +160,20 @@ AssemblyAI, AWS Transcribe, Azure, Cartesia, Deepgram, Fal Wizper, Gladia, Googl
138
160
  Anthropic, AWS Bedrock, Azure, Cerebras, DeepSeek, Fireworks AI, Google Gemini/Vertex AI, Grok, Groq, NVIDIA NIM, Ollama, OpenAI, OpenPipe, OpenRouter, Perplexity, Qwen, SambaNova, Together AI
139
161
 
140
162
  ### Text-to-Speech (TTS)
141
- AWS Polly, Azure, Cartesia, Deepgram, ElevenLabs, Fish, Google, Groq, LMNT, MiniMax, Neuphonic, NVIDIA Riva, OpenAI, Piper, PlayHT, Rime, Sarvam, XTTS
163
+ AsyncAI, AWS Polly, Azure, Cartesia, Deepgram, ElevenLabs, Fish, Google, Groq, LMNT, MiniMax, Neuphonic, NVIDIA Riva, OpenAI, Piper, PlayHT, Rime, Sarvam, XTTS
142
164
 
143
165
  ### Transport & Communication
144
- Daily (WebRTC), SmallWebRTC, FastAPI WebSocket, WebSocket Server, Tavus
166
+ Daily (WebRTC), SmallWebRTC, FastAPI WebSocket, WebSocket Server, Tavus, WhatsApp
145
167
 
146
168
  ### Additional Services
147
169
  - **Speech-to-Speech**: AWS Nova Sonic, Gemini, OpenAI
148
170
  - **Image Generation**: fal, Google Imagen, OpenAI
149
- - **Video**: Simli, Tavus
171
+ - **Video**: HeyGen, Simli, Tavus
150
172
  - **Memory**: Mem0
151
173
  - **Vision**: Moondream
152
174
  - **Analytics**: Sentry
175
+ - **IVR Navigation**: Automated IVR system navigation with DTMF and voice response
176
+ - **Audio Enhancement**: AICoustics filter for VAD/STT performance improvement
153
177
 
154
178
  ## Typical Data Flow Pattern
155
179
 
@@ -174,15 +198,21 @@ Based on Pipecat documentation, key frame types include:
174
198
  - Subclasses: `InputAudioRawFrame`, `OutputAudioRawFrame`, `TTSAudioRawFrame`
175
199
  - **ImageRawFrame**: Image data with `size` and `format`
176
200
  - Subclasses: `InputImageRawFrame`, `VisionImageRawFrame`, `URLImageRawFrame`
177
- - **TextFrame**: Text chunks for processing
201
+ - **TextFrame**: Text chunks for processing (supports `skip_tts` field)
178
202
  - **TranscriptionFrame**: Speech transcriptions with `user_id`, `timestamp`, `language`
179
- - **LLMMessagesFrame**: Message arrays for LLM processing
203
+ - **LLMMessagesFrame**: Message arrays for LLM processing (deprecated, use `LLMMessagesUpdateFrame`)
204
+ - **InputTransportMessageUrgentFrame**: Urgent transport messages from external sources
205
+ - **DailyInputTransportMessageUrgentFrame**: Daily-specific urgent transport messages
206
+ - **UserSpeakingFrame**: Bidirectional frame sent while VAD detects user speaking
207
+ - **LLMRunFrame**: Trigger LLM response without context changes
180
208
 
181
209
  ### System Control
182
210
  - **StartFrame/EndFrame**: Pipeline lifecycle control
183
- - **StartInterruptionFrame/StopInterruptionFrame**: User speech interruption handling
211
+ - **StartInterruptionFrame**: User speech interruption handling (StopInterruptionFrame removed in v0.0.83)
184
212
  - **BotStartedSpeakingFrame/BotStoppedSpeakingFrame**: Bot speech activity
185
213
  - **FunctionCallInProgressFrame/FunctionCallResultFrame**: LLM function calling
214
+ - **LLMConfigureOutputFrame**: Configure LLM output behavior (e.g., `skip_tts=True` for text-only mode)
215
+ - **ManuallySwitchServiceFrame**: Switch between services at runtime (used with LLMSwitcher)
186
216
 
187
217
  ## Common Development Patterns
188
218
 
@@ -206,6 +236,21 @@ task = PipelineTask(pipeline)
206
236
  await task.run()
207
237
  ```
208
238
 
239
+ ### Runtime LLM Switching
240
+ ```python
241
+ # Using Universal LLMContext and LLMSwitcher
242
+ context = LLMContext(messages, tools) # Universal context
243
+ context_aggregator = LLMContextAggregatorPair(context)
244
+
245
+ # Create LLM switcher with multiple providers
246
+ llm_openai = OpenAILLMService(api_key=openai_key)
247
+ llm_anthropic = AnthropicLLMService(api_key=anthropic_key)
248
+ llm_switcher = LLMSwitcher([llm_openai, llm_anthropic])
249
+
250
+ # Switch LLMs at runtime
251
+ await task.queue_frames([ManuallySwitchServiceFrame(service=llm_anthropic)])
252
+ ```
253
+
209
254
  ### Adding New Frame Types
210
255
  - Define in `src/pipecat/frames/frames.py`
211
256
  - Extend appropriate base frame class
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.82.dev816
3
+ Version: 0.0.82.dev857
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
@@ -15,6 +15,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
15
15
  Requires-Python: >=3.10
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
+ Requires-Dist: aiofiles<25,>=24.1.0
18
19
  Requires-Dist: aiohttp<4,>=3.11.12
19
20
  Requires-Dist: audioop-lts~=0.2.1; python_version >= "3.13"
20
21
  Requires-Dist: docstring_parser~=0.16
@@ -31,6 +32,8 @@ Requires-Dist: soxr~=0.5.0
31
32
  Requires-Dist: openai<=1.99.1,>=1.74.0
32
33
  Requires-Dist: numba==0.61.2
33
34
  Requires-Dist: wait_for2>=0.4.1; python_version < "3.12"
35
+ Provides-Extra: aic
36
+ Requires-Dist: aic-sdk~=1.0.1; extra == "aic"
34
37
  Provides-Extra: anthropic
35
38
  Requires-Dist: anthropic~=0.49.0; extra == "anthropic"
36
39
  Provides-Extra: assemblyai
@@ -50,7 +53,7 @@ Requires-Dist: websockets<15.0,>=13.1; extra == "cartesia"
50
53
  Provides-Extra: cerebras
51
54
  Provides-Extra: deepseek
52
55
  Provides-Extra: daily
53
- Requires-Dist: daily-python~=0.19.7; extra == "daily"
56
+ Requires-Dist: daily-python~=0.19.9; extra == "daily"
54
57
  Provides-Extra: deepgram
55
58
  Requires-Dist: deepgram-sdk~=4.7.0; extra == "deepgram"
56
59
  Provides-Extra: elevenlabs
@@ -130,6 +133,8 @@ Requires-Dist: uvicorn<1.0.0,>=0.32.0; extra == "runner"
130
133
  Requires-Dist: fastapi<0.117.0,>=0.115.6; extra == "runner"
131
134
  Requires-Dist: pipecat-ai-small-webrtc-prebuilt>=1.0.0; extra == "runner"
132
135
  Provides-Extra: sambanova
136
+ Provides-Extra: sarvam
137
+ Requires-Dist: websockets<15.0,>=13.1; extra == "sarvam"
133
138
  Provides-Extra: sentry
134
139
  Requires-Dist: sentry-sdk~=2.23.1; extra == "sentry"
135
140
  Provides-Extra: local-smart-turn
@@ -231,7 +236,7 @@ You can connect to Pipecat from any platform using our official SDKs:
231
236
  | Video | [HeyGen](https://docs.pipecat.ai/server/services/video/heygen), [Tavus](https://docs.pipecat.ai/server/services/video/tavus), [Simli](https://docs.pipecat.ai/server/services/video/simli) |
232
237
  | Memory | [mem0](https://docs.pipecat.ai/server/services/memory/mem0) |
233
238
  | Vision & Image | [fal](https://docs.pipecat.ai/server/services/image-generation/fal), [Google Imagen](https://docs.pipecat.ai/server/services/image-generation/fal), [Moondream](https://docs.pipecat.ai/server/services/vision/moondream) |
234
- | Audio Processing | [Silero VAD](https://docs.pipecat.ai/server/utilities/audio/silero-vad-analyzer), [Krisp](https://docs.pipecat.ai/server/utilities/audio/krisp-filter), [Koala](https://docs.pipecat.ai/server/utilities/audio/koala-filter), [Noisereduce](https://docs.pipecat.ai/server/utilities/audio/noisereduce-filter) |
239
+ | Audio Processing | [Silero VAD](https://docs.pipecat.ai/server/utilities/audio/silero-vad-analyzer), [Krisp](https://docs.pipecat.ai/server/utilities/audio/krisp-filter), [Koala](https://docs.pipecat.ai/server/utilities/audio/koala-filter), [ai-coustics](https://docs.pipecat.ai/server/utilities/audio/aic-filter), [Noisereduce](https://docs.pipecat.ai/server/utilities/audio/noisereduce-filter) |
235
240
  | Analytics & Metrics | [OpenTelemetry](https://docs.pipecat.ai/server/utilities/opentelemetry), [Sentry](https://docs.pipecat.ai/server/services/analytics/sentry) |
236
241
 
237
242
  📚 [View full services documentation →](https://docs.pipecat.ai/server/services/supported-services)
@@ -62,7 +62,7 @@ You can connect to Pipecat from any platform using our official SDKs:
62
62
  | Video | [HeyGen](https://docs.pipecat.ai/server/services/video/heygen), [Tavus](https://docs.pipecat.ai/server/services/video/tavus), [Simli](https://docs.pipecat.ai/server/services/video/simli) |
63
63
  | Memory | [mem0](https://docs.pipecat.ai/server/services/memory/mem0) |
64
64
  | Vision & Image | [fal](https://docs.pipecat.ai/server/services/image-generation/fal), [Google Imagen](https://docs.pipecat.ai/server/services/image-generation/fal), [Moondream](https://docs.pipecat.ai/server/services/vision/moondream) |
65
- | Audio Processing | [Silero VAD](https://docs.pipecat.ai/server/utilities/audio/silero-vad-analyzer), [Krisp](https://docs.pipecat.ai/server/utilities/audio/krisp-filter), [Koala](https://docs.pipecat.ai/server/utilities/audio/koala-filter), [Noisereduce](https://docs.pipecat.ai/server/utilities/audio/noisereduce-filter) |
65
+ | Audio Processing | [Silero VAD](https://docs.pipecat.ai/server/utilities/audio/silero-vad-analyzer), [Krisp](https://docs.pipecat.ai/server/utilities/audio/krisp-filter), [Koala](https://docs.pipecat.ai/server/utilities/audio/koala-filter), [ai-coustics](https://docs.pipecat.ai/server/utilities/audio/aic-filter), [Noisereduce](https://docs.pipecat.ai/server/utilities/audio/noisereduce-filter) |
66
66
  | Analytics & Metrics | [OpenTelemetry](https://docs.pipecat.ai/server/utilities/opentelemetry), [Sentry](https://docs.pipecat.ai/server/services/analytics/sentry) |
67
67
 
68
68
  📚 [View full services documentation →](https://docs.pipecat.ai/server/services/supported-services)
@@ -1,3 +1,6 @@
1
+ # AI-COUSTICS
2
+ AICOUSTICS_LICENSE_KEY=...
3
+
1
4
  # Anthropic
2
5
  ANTHROPIC_API_KEY=...
3
6
 
@@ -59,6 +62,9 @@ GOOGLE_VERTEX_TEST_CREDENTIALS=...
59
62
  LMNT_API_KEY=...
60
63
  LMNT_VOICE_ID=...
61
64
 
65
+ # Perplexity
66
+ PERPLEXITY_API_KEY=...
67
+
62
68
  # PlayHT
63
69
  PLAY_HT_USER_ID=...
64
70
  PLAY_HT_API_KEY=...
@@ -140,3 +146,12 @@ SENTRY_DSN=...
140
146
 
141
147
  # Heygen
142
148
  HEYGEN_API_KEY=...
149
+
150
+ # Mistral
151
+ MISTRAL_API_KEY=...
152
+
153
+ # NVIDIA
154
+ NVIDIA_API_KEY=...
155
+
156
+ # Qwen
157
+ QWEN_API_KEY=...
@@ -53,6 +53,15 @@ spec:
53
53
  {{- toYaml .Values.securityContext | nindent 12 }}
54
54
  image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
55
55
  imagePullPolicy: {{ .Values.image.pullPolicy }}
56
+ lifecycle:
57
+ preStop:
58
+ exec:
59
+ command:
60
+ - /bin/sh
61
+ - -c
62
+ - >-
63
+ wget -q -T 2 -O- http://127.0.0.1:{{ .Values.service.targetPort }}/drain/start || true;
64
+ sleep ${PRESTOP_DRAIN_SECONDS:-{{ .Values.preStopDrainSeconds | default 45 }}}
56
65
  # Load environment variables from the secret defined in values.yaml
57
66
  envFrom:
58
67
  - secretRef:
@@ -60,6 +69,8 @@ spec:
60
69
  # Define any additional non-secret env vars if needed
61
70
  env:
62
71
  {{- toYaml .Values.env | nindent 12 }} # Keep using toYaml for the simpler env list
72
+ - name: PRESTOP_DRAIN_SECONDS
73
+ value: "{{ .Values.preStopDrainSeconds | default 45 }}"
63
74
  ports:
64
75
  - name: http
65
76
  containerPort: {{ .Values.service.targetPort }}
@@ -69,9 +80,9 @@ spec:
69
80
  path: /pc/v1/healthcheck # Updated path
70
81
  port: http # Use named port 'http'
71
82
  initialDelaySeconds: 60 # Increased delay
72
- periodSeconds: 30
83
+ periodSeconds: 10
73
84
  timeoutSeconds: 5
74
- failureThreshold: 3
85
+ failureThreshold: 2
75
86
  livenessProbe:
76
87
  httpGet:
77
88
  path: /pc/v1/healthcheck # Updated path
@@ -91,3 +91,11 @@ keda:
91
91
  # Production fallback behavior
92
92
  failureThreshold: 5 # More tolerant of temporary failures
93
93
  fallbackReplicas: 50 # Higher fallback replicas for production
94
+
95
+ # Pod Disruption Budget for production
96
+ pdb:
97
+ enabled: true
98
+ minAvailable: "95%"
99
+
100
+ # Draining delay for production (seconds)
101
+ preStopDrainSeconds: 60
@@ -84,3 +84,6 @@ keda:
84
84
  # Staging fallback behavior
85
85
  failureThreshold: 5 # More tolerant of temporary failures
86
86
  fallbackReplicas: 1 # Higher fallback replicas for staging
87
+
88
+ # Draining delay for staging (seconds)
89
+ preStopDrainSeconds: 45