Allow more flexible assistant and system response (#1256)
This commit is contained in:
@@ -386,7 +386,16 @@ def generate_chat_conv(
|
||||
for message in request.messages:
|
||||
msg_role = message.role
|
||||
if msg_role == "system":
|
||||
conv.system_message = message.content
|
||||
if isinstance(message.content, str):
|
||||
conv.system_message = message.content
|
||||
elif isinstance(message.content, list):
|
||||
if (
|
||||
len(message.content) != 1
|
||||
or getattr(message.content[0], "type", None) != "text"
|
||||
):
|
||||
raise ValueError("The system message should be a single text.")
|
||||
else:
|
||||
conv.system_message = getattr(message.content[0], "text", "")
|
||||
elif msg_role == "user":
|
||||
# Handle the various types of Chat Request content types here.
|
||||
role = conv.roles[0]
|
||||
@@ -414,7 +423,20 @@ def generate_chat_conv(
|
||||
conv.append_image(content.image_url.url)
|
||||
conv.append_message(conv.roles[0], real_content)
|
||||
elif msg_role == "assistant":
|
||||
conv.append_message(conv.roles[1], message.content)
|
||||
parsed_content = ""
|
||||
if isinstance(message.content, str):
|
||||
parsed_content = message.content
|
||||
elif isinstance(message.content, list):
|
||||
if (
|
||||
len(message.content) != 1
|
||||
or getattr(message.content[0], "type", None) != "text"
|
||||
):
|
||||
raise ValueError(
|
||||
"The assistant's response should be a single text."
|
||||
)
|
||||
else:
|
||||
parsed_content = getattr(message.content[0], "text", "")
|
||||
conv.append_message(conv.roles[1], parsed_content)
|
||||
else:
|
||||
raise ValueError(f"Unknown role: {msg_role}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user