Spaces:
Runtime error
Runtime error
File size: 2,377 Bytes
e92393d 65c5950 e92393d df67f71 73bef9c e92393d 65c5950 df67f71 65c5950 c0e5dbf 66118cd 65c5950 c0e5dbf 00ccf46 c0e5dbf e92393d 65c5950 df67f71 73bef9c 65c5950 c0e5dbf 65c5950 00ccf46 c0e5dbf 00ccf46 e92393d 00ccf46 757f1cf 00ccf46 771e484 757f1cf 00ccf46 e92393d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
import gradio as gr
from PIL import Image
import requests
import json
import os
import io
import base64
def process_image(image_data):
try:
image = Image.open(io.BytesIO(image_data))
# Дополнительная обработка изображения, если требуется
processed_image = image
return processed_image
except Exception as e:
return None
def generate_minecraft_command(input_data, image_data=None):
try:
if isinstance(input_data, str):
description = input_data
else:
description = input_data.read()
processed_image = process_image(image_data)
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {os.getenv("API_KEY")}'
}
payload = {
'messages': [{'role': 'system', 'content': f'{description}'}],
'max_tokens': 10000,
'model': os.getenv("MODEL")
}
if processed_image is not None:
# Конвертируем обработанное изображение в base64 и добавляем к запросу
buffered = io.BytesIO()
processed_image.save(buffered, format="PNG")
img_str = base64.b64encode(buffered.getvalue()).decode('utf-8')
payload['messages'].append({'role': 'user', 'content': f'data:image/png;base64,{img_str}'})
response = requests.post(os.getenv("BASE_URL"), headers=headers, json=payload)
response.raise_for_status()
data = json.loads(response.text)
if 'choices' in data and len(data['choices']) > 0:
command = data['choices'][0]['message']['content'].strip()
return command
elif 'error' in data:
error_message = data['error']['message']
return f'Ошибка: {error_message}'
else:
return f'Не удалось сгенерировать команду. {data}'
except Exception as e:
return f'Произошла ошибка: {str(e)}'
iface = gr.Interface(
fn=generate_minecraft_command,
inputs=[
gr.Textbox(label="Запрос"),
gr.File(label="Загрузить изображение", type="binary")
],
outputs=gr.Textbox(label="Ответ"),
title="GPT"
)
iface.launch()
|