enh: channel model @ image support

This commit is contained in:
Timothy Jaeryang Baek 2025-09-24 16:08:36 -05:00
parent e7061b70e9
commit 9f0010e234
1 changed files with 25 additions and 4 deletions

View File

@ -290,6 +290,7 @@ async def model_response_handler(request, channel, message, user):
) )
thread_history = [] thread_history = []
images = []
message_users = {} message_users = {}
for thread_message in thread_messages: for thread_message in thread_messages:
@ -318,6 +319,11 @@ async def model_response_handler(request, channel, message, user):
f"{username}: {replace_mentions(thread_message.content)}" f"{username}: {replace_mentions(thread_message.content)}"
) )
thread_message_files = thread_message.data.get("files", [])
for file in thread_message_files:
if file.get("type", "") == "image":
images.append(file.get("url", ""))
system_message = { system_message = {
"role": "system", "role": "system",
"content": f"You are {model.get('name', model_id)}, an AI assistant participating in a threaded conversation. Be helpful, concise, and conversational." "content": f"You are {model.get('name', model_id)}, an AI assistant participating in a threaded conversation. Be helpful, concise, and conversational."
@ -328,14 +334,29 @@ async def model_response_handler(request, channel, message, user):
), ),
} }
content = f"{user.name if user else 'User'}: {message_content}"
if images:
content = [
{
"type": "text",
"text": content,
},
*[
{
"type": "image_url",
"image_url": {
"url": image,
},
}
for image in images
],
]
form_data = { form_data = {
"model": model_id, "model": model_id,
"messages": [ "messages": [
system_message, system_message,
{ {"role": "user", "content": content},
"role": "user",
"content": f"{user.name if user else 'User'}: {message_content}",
},
], ],
"stream": False, "stream": False,
} }