|
@@ -38,7 +38,9 @@ class LLMCallbackHandler:
|
|
|
:param response_stream: ChatCompletionChunk stream
|
|
|
:return: ChatCompletionMessage
|
|
|
"""
|
|
|
- message = ChatCompletionMessage(content="", role="assistant", tool_calls=[])
|
|
|
+ message = ChatCompletionMessage(
|
|
|
+ content="", role="assistant", tool_calls=[], audio=None
|
|
|
+ )
|
|
|
|
|
|
index = 0
|
|
|
try:
|
|
@@ -95,6 +97,28 @@ class LLMCallbackHandler:
|
|
|
self.event_handler.pub_message_delta(
|
|
|
self.message.id, index, delta.content, delta.role
|
|
|
)
|
|
|
+ elif delta.audio is not None:
|
|
|
+ if not self.final_message_started:
|
|
|
+ self.final_message_started = True
|
|
|
+
|
|
|
+ self.message = self.on_message_create_func(content="")
|
|
|
+ self.step = self.on_step_create_func(self.message.id)
|
|
|
+ logging.debug(
|
|
|
+ "create message and step (%s), (%s)",
|
|
|
+ self.message,
|
|
|
+ self.step,
|
|
|
+ )
|
|
|
+
|
|
|
+ self.event_handler.pub_run_step_created(self.step)
|
|
|
+ self.event_handler.pub_run_step_in_progress(self.step)
|
|
|
+ self.event_handler.pub_message_created(self.message)
|
|
|
+ self.event_handler.pub_message_in_progress(self.message)
|
|
|
+
|
|
|
+ # append message content delta
|
|
|
+ # message.audio += delta.audio
|
|
|
+ self.event_handler.pub_message_delta(
|
|
|
+ self.message.id, index, delta.content, delta.role, delta.audio
|
|
|
+ )
|
|
|
if chunk.usage:
|
|
|
self.event_handler.pub_message_usage(chunk)
|
|
|
continue
|