|
@@ -156,7 +156,8 @@ class ThreadRunner:
|
|
|
chat_messages = self.__generate_chat_messages(
|
|
|
MessageService.get_message_list(
|
|
|
session=self.session, thread_id=run.thread_id
|
|
|
- )
|
|
|
+ ),
|
|
|
+ run,
|
|
|
)
|
|
|
|
|
|
tool_call_messages = []
|
|
@@ -380,12 +381,13 @@ class ThreadRunner:
|
|
|
api_key=llm_settings.OPENAI_API_KEY,
|
|
|
)
|
|
|
|
|
|
- def __generate_chat_messages(self, messages: List[Message]):
|
|
|
+ def __generate_chat_messages(self, messages: List[Message], run: Run):
|
|
|
"""
|
|
|
根据历史信息生成 chat message
|
|
|
"""
|
|
|
|
|
|
chat_messages = []
|
|
|
+ is_audio_content = True
|
|
|
for message in messages:
|
|
|
role = message.role
|
|
|
if role == "user":
|
|
@@ -409,10 +411,15 @@ class ThreadRunner:
|
|
|
message_content.append(
|
|
|
{"type": "text", "text": content["text"]["value"]}
|
|
|
)
|
|
|
- elif content["type"] == "image_url":
|
|
|
+ elif content["type"] == "image_url" and run.audio is None:
|
|
|
message_content.append(content)
|
|
|
- elif content.get("type") == "input_audio":
|
|
|
+ elif (
|
|
|
+ content.get("type") == "input_audio"
|
|
|
+ and run.audio is not None
|
|
|
+ and is_audio_content
|
|
|
+ ):
|
|
|
message_content.append(content)
|
|
|
+ is_audio_content = False
|
|
|
chat_messages.append(msg_util.new_message(role, message_content))
|
|
|
elif role == "assistant":
|
|
|
message_content = ""
|