From 5be8fcce19a8e9a742ae556f3730092825c4b1e4 Mon Sep 17 00:00:00 2001 From: huker667 Date: Thu, 13 Aug 2026 18:26:46 +0300 Subject: фикс имаге MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- supergenerator.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'supergenerator.py') diff --git a/supergenerator.py b/supergenerator.py index fda127e..36d9929 100644 --- a/supergenerator.py +++ b/supergenerator.py @@ -3,8 +3,6 @@ import re import shelve import time import ai -import json -import traceback from configparser import DEFAULTSECT @@ -71,7 +69,7 @@ async def generate( if images: if settings.get("vision"): for image in images: - content += [{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image}"}}] + content += [{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image['data']}"}}] else: for image in images: try: @@ -95,9 +93,13 @@ async def generate( user_contexts[user_id].append({"role": "user", "content": content}) user_contexts[user_id] = user_contexts[user_id][-MAX_CONTEXT:] - messages = [{"role": "system", "content": system_prompt}] + user_contexts[ - user_id - ] + context = [] + for i, m in enumerate(user_contexts[user_id]): + if m.get("role") == "user" and i < len(user_contexts[user_id]) - 1: + m = {**m, "content": [p for p in m["content"] if p.get("type") != "image_url"]} + context.append(m) + + messages = [{"role": "system", "content": system_prompt}] + context else: model = DEFAULT_MODEL.split("*", 2) settings = MODELS.get(model[0]).get(model[1]) @@ -166,22 +168,20 @@ async def image2text(image) -> str: return "" model = IMAGE_MODEL.split("*", 1) api = PROVIDERS[model[0]] - text = "" messages = [ { "role": "user", "content": [ - {"type": "input_text", "text": IMAGE_PROMPT}, - {"type": "input_image", "image_url": f"data:image/jpeg;base64,{image}"}, + {"type": "text", "text": IMAGE_PROMPT}, + {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image}"}}, ], } ] - async for response in ai.responses( - url=api["url"], api_key=api["key"], model=model[1], input=messages, stream=False + async for completion in ai.completions( + url=api["url"], api_key=api["key"], model=model[1], messages=messages, stream=False ): pass - text = response.output_text - return text + return completion["choices"][0]["message"]["content"] async def openai_generate_text( -- cgit v1.3.1