dv-pipecat-ai 0.0.85.dev858__py3-none-any.whl → 0.0.85.dev860__py3-none-any.whl

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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.85.dev858
3
+ Version: 0.0.85.dev860
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
@@ -1,4 +1,4 @@
1
- dv_pipecat_ai-0.0.85.dev858.dist-info/licenses/LICENSE,sha256=DWY2QGf2eMCFhuu2ChairtT6CB7BEFffNVhXWc4Od08,1301
1
+ dv_pipecat_ai-0.0.85.dev860.dist-info/licenses/LICENSE,sha256=DWY2QGf2eMCFhuu2ChairtT6CB7BEFffNVhXWc4Od08,1301
2
2
  pipecat/__init__.py,sha256=j0Xm6adxHhd7D06dIyyPV_GlBYLlBnTAERVvD_jAARQ,861
3
3
  pipecat/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  pipecat/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -67,7 +67,7 @@ pipecat/audio/vad/silero.py,sha256=Cz4_hJjaBKbmUwZVbqMzED8orHOCsnF3zpERgBTw1Rw,7
67
67
  pipecat/audio/vad/vad_analyzer.py,sha256=dPqMhgj_SmXVlIreItxj0i2mDpss-GImYKAfNPZvN9Y,7990
68
68
  pipecat/audio/vad/data/README.md,sha256=ePSLSq--Ja-XX7gAFFf6JhTpXyp3x79XvUGVtH5QFTc,562
69
69
  pipecat/audio/vad/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- pipecat/audio/vad/data/silero_vad.onnx,sha256=WX0ws-wHZgjQWUd7sUz-_9-VG_XK43DTj2XTO7_oIAQ,2327524
70
+ pipecat/audio/vad/data/silero_vad.onnx,sha256=GhU6IvRQnikqlOZ9b5uF6N6yW0mIaCt-F0xlJ52HiOM,2327524
71
71
  pipecat/audio/vad/data/silero_vad_v2.onnx,sha256=JiOilT9v89LB5hdAxs23FoEzR5smff7xFKSjzFvdeI8,2327524
72
72
  pipecat/clocks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
73
  pipecat/clocks/base_clock.py,sha256=PuTmCtPKz5VG0VxhN5cyhbvduEBnfNPgA6GLAu1eSns,929
@@ -79,7 +79,7 @@ pipecat/extensions/voicemail/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
79
79
  pipecat/extensions/voicemail/voicemail_detector.py,sha256=JxmU2752iWP_1_GmzZReNESUTFAeyEa4XBPL20_C208,30004
80
80
  pipecat/frames/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
81
  pipecat/frames/frames.proto,sha256=JXZm3VXLR8zMOUcOuhVoe2mhM3MQIQGMJXLopdJO_5Y,839
82
- pipecat/frames/frames.py,sha256=248d54lNOyO04dq9ni51yUTWUItmGw8b9QKarrDGNeo,50354
82
+ pipecat/frames/frames.py,sha256=kHHqbvIuEY5uwTfEqps4PoEsTO0P-JQCWCM3VOTy6FI,50740
83
83
  pipecat/frames/protobufs/frames_pb2.py,sha256=VHgGV_W7qQ4sfQK6RHb5_DggLm3PiSYMr6aBZ8_p1cQ,2590
84
84
  pipecat/metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
85
  pipecat/metrics/connection_metrics.py,sha256=8rBsEeufL3meWyJHcUbe35TS963W9B0wSnz0dQkv12A,1734
@@ -123,7 +123,7 @@ pipecat/processors/aggregators/gated.py,sha256=tii0sRrBkRW6y9Xq5iTWPnqlOEejU4VqP
123
123
  pipecat/processors/aggregators/gated_llm_context.py,sha256=CPv6sMA8irD1zZ3fU1gSv6D7qcPvCA0MdpFhBtJ_ekI,3007
124
124
  pipecat/processors/aggregators/gated_open_ai_llm_context.py,sha256=DgqmdPj1u3fP_SVmxtfP7NjHqnyhN_RVVTDfmjbkxAs,361
125
125
  pipecat/processors/aggregators/llm_context.py,sha256=wNbZA0Vt0FzNc5cu06xiv1z7DIClIlfqR1ZD8EusbVw,11085
126
- pipecat/processors/aggregators/llm_response.py,sha256=--6D736k5mNnIhmauRbA7ZG7H9tBR16okniz3Mpypns,48573
126
+ pipecat/processors/aggregators/llm_response.py,sha256=Ddl6inB4MRNwO6HScMv5KGcdR8mjkOQpi48RhKWXS5I,48809
127
127
  pipecat/processors/aggregators/llm_response_universal.py,sha256=5PqmpATpekD8BVWyBExZgatKHsNbZem8M-A7_VwTbiQ,34334
128
128
  pipecat/processors/aggregators/openai_llm_context.py,sha256=cC8DXdVPERRN04i0i-1Ys6kusvnbMALeH-Z8Pu5K684,12999
129
129
  pipecat/processors/aggregators/sentence.py,sha256=E7e3knfQl6HEGpYMKPklF1aO_gOn-rr7SnynErwfkQk,2235
@@ -281,7 +281,7 @@ pipecat/services/nim/llm.py,sha256=o4WPGI6kOmSiMV7WwOZ0cNEAoq9hW4Aqs2R8X7c9i94,4
281
281
  pipecat/services/ollama/__init__.py,sha256=aw-25zYsR8LR74OFFlMKMTnJjaKwOzdPWVsClueNRkI,255
282
282
  pipecat/services/ollama/llm.py,sha256=rfpG92LRHGJlpENKhF6ld8CLVS9DxlKW-WRVNldOIGs,1605
283
283
  pipecat/services/openai/__init__.py,sha256=V0ZVa8PzEm3hmcStYICbAsYwfgk4ytZ6kiQoq9UZPmI,354
284
- pipecat/services/openai/base_llm.py,sha256=OYzxsbSw49FH6CoY6au95PEs7W3JClkt-IM8gFRP7jI,22066
284
+ pipecat/services/openai/base_llm.py,sha256=q98gvk50dEfv-n8GIrRVJKOdYIGPmeAZfssZth-wYBI,21893
285
285
  pipecat/services/openai/image.py,sha256=3e3h-dVQ6DQuQE7fp8akXwRMd-oYOdGuZg7RCOjHu9A,2994
286
286
  pipecat/services/openai/llm.py,sha256=_aKtz1VebSFUUenT3tH6mBW9pSCm65_u45cDu_dkTzs,7396
287
287
  pipecat/services/openai/stt.py,sha256=Idf0k73kxFyDgNRBt62MFpoKKNsBV9bwvJteJ6MGWzQ,2419
@@ -417,7 +417,7 @@ pipecat/utils/tracing/service_decorators.py,sha256=fwzxFpi8DJl6BJbK74G0UEB4ccMJg
417
417
  pipecat/utils/tracing/setup.py,sha256=7TEgPNpq6M8lww8OQvf0P9FzYc5A30xICGklVA-fua0,2892
418
418
  pipecat/utils/tracing/turn_context_provider.py,sha256=ikon3plFOx0XbMrH6DdeHttNpb-U0gzMZIm3bWLc9eI,2485
419
419
  pipecat/utils/tracing/turn_trace_observer.py,sha256=dma16SBJpYSOE58YDWy89QzHyQFc_9gQZszKeWixuwc,9725
420
- dv_pipecat_ai-0.0.85.dev858.dist-info/METADATA,sha256=skQyLk2xRWMvuIMOi7At9niD00oe-fbvkONlfxf2Css,32955
421
- dv_pipecat_ai-0.0.85.dev858.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
422
- dv_pipecat_ai-0.0.85.dev858.dist-info/top_level.txt,sha256=kQzG20CxGf-nSsHmtXHx3hY2-8zHA3jYg8jk0TajqXc,8
423
- dv_pipecat_ai-0.0.85.dev858.dist-info/RECORD,,
420
+ dv_pipecat_ai-0.0.85.dev860.dist-info/METADATA,sha256=93MAyWMB71En75-izqkyjK84JCeSV56tjPtIn0ae-Lw,32955
421
+ dv_pipecat_ai-0.0.85.dev860.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
422
+ dv_pipecat_ai-0.0.85.dev860.dist-info/top_level.txt,sha256=kQzG20CxGf-nSsHmtXHx3hY2-8zHA3jYg8jk0TajqXc,8
423
+ dv_pipecat_ai-0.0.85.dev860.dist-info/RECORD,,
Binary file
pipecat/frames/frames.py CHANGED
@@ -586,6 +586,18 @@ class LLMRunFrame(DataFrame):
586
586
  pass
587
587
 
588
588
 
589
+ @dataclass
590
+ class LLMProcessingInitiatedFrame(SystemFrame):
591
+ """Frame indicating that LLM processing has been initiated.
592
+
593
+ Emitted by context aggregators when they push a context frame to the LLM,
594
+ signaling that LLM processing is about to begin. This frame flows downstream
595
+ through the pipeline, allowing processors to react to the LLM being triggered.
596
+ """
597
+
598
+ pass
599
+
600
+
589
601
  @dataclass
590
602
  class WarmupLLMFrame(DataFrame):
591
603
  """Frame to trigger prompt caching/warmup in supported LLM providers.
@@ -42,6 +42,7 @@ from pipecat.frames.frames import (
42
42
  LLMMessagesAppendFrame,
43
43
  LLMMessagesFrame,
44
44
  LLMMessagesUpdateFrame,
45
+ LLMProcessingInitiatedFrame,
45
46
  LLMRunFrame,
46
47
  LLMSetToolChoiceFrame,
47
48
  LLMSetToolsFrame,
@@ -346,6 +347,7 @@ class LLMContextResponseAggregator(BaseLLMResponseAggregator):
346
347
  Args:
347
348
  direction: The direction to push the frame (upstream or downstream).
348
349
  """
350
+ await self.push_frame(LLMProcessingInitiatedFrame(), direction)
349
351
  frame = self._get_context_frame()
350
352
  await self.push_frame(frame, direction)
351
353
 
@@ -529,6 +531,8 @@ class LLMUserContextAggregator(LLMContextResponseAggregator):
529
531
  """Process the current aggregation and push it downstream."""
530
532
  aggregation = self._aggregation
531
533
  await self.reset()
534
+ # Notify the BotSpeakingFrameMonitor to update the vad params
535
+ await self.push_frame(LLMProcessingInitiatedFrame())
532
536
  await self.handle_aggregation(aggregation)
533
537
  frame = OpenAILLMContextFrame(self._context)
534
538
  self.logger.debug("Pushing aggregation frame:")
@@ -206,12 +206,13 @@ class BaseOpenAILLMService(LLMService):
206
206
  params = self.build_chat_completion_params(params_from_context)
207
207
 
208
208
  await self.start_connection_metrics()
209
-
209
+
210
210
  try:
211
211
  if self._retry_on_timeout:
212
212
  try:
213
213
  chunks = await asyncio.wait_for(
214
- self._client.chat.completions.create(**params), timeout=self._retry_timeout_secs
214
+ self._client.chat.completions.create(**params),
215
+ timeout=self._retry_timeout_secs,
215
216
  )
216
217
  await self.stop_connection_metrics(success=True, connection_type="http")
217
218
  return chunks
@@ -444,13 +445,8 @@ class BaseOpenAILLMService(LLMService):
444
445
  """Process frames for LLM completion requests.
445
446
 
446
447
  Handles OpenAILLMContextFrame, LLMContextFrame, LLMMessagesFrame,
447
- <<<<<<< HEAD
448
448
  and LLMUpdateSettingsFrame to trigger LLM completions and manage
449
449
  settings.
450
- =======
451
- VisionImageRawFrame, and LLMUpdateSettingsFrame to trigger LLM
452
- completions and manage settings.
453
- >>>>>>> dv-stage
454
450
 
455
451
  Args:
456
452
  frame: The frame to process.