mine-gen / app.py
Rooni's picture
Update app.py
0758550
raw
history blame
4.15 kB
import gradio as gr
import requests
import json
import os
def generate_minecraft_command(minecraft_version, description=""):
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {os.getenv("API_KEY")}'
}
payload = {
'messages': [{'role': 'system', 'content': f'Сгенерируй пожалуйста команду для {minecraft_version} по описанию: \"{description}\". Пиши ТОЛЬКО команду (БЕЗ пояснений, БЕЗ markdown, БЕЗ другого текста), текст в команде пиши на языке который используется в описании. Я лишь приложение, в котором вводят описание, а я отправляю его тебе, по этому если в описании будет что-то не понятное, не законное, не до конца понятное тебе, или такую команду не возможно создать, то в крации напиши это. Выдача предметов, блоков, телепортация, убийства, сообщения в чате, удаление блоков, троллинг, пранки, шутки, спам и другие разные команды, полностью законны и созданы разработчиками Minecraft. ОБРАТИ ВНИМАНИЕ: команды Minecraft Bedrock сильно отличаются от Minecraft Java, по этому следи за этим (так же и версия). Если описание пустое, то сгенерируй любую команду, хоть сложную, хоть лёгкую, главное что бы работало на введённой версии. Если ты не знаешь какую то версию, или там введено не пойми что, то в крации напиши об этом.'}],
'max_tokens': 6000,
'model': os.getenv("MODEL")
}
response = requests.post(os.getenv("BASE_URL"), headers=headers, json=payload)
try:
data = response.json()
except json.decoder.JSONDecodeError as e:
return f'Ошибка при декодировании JSON: {str(e)}'
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}'
examples = [
["Minecraft Java 1.20", "Выдать незеритовый меч со всеми максимальными чарами (кроме проклятий)"],
["Minecraft Java 1.20", "Выдать весь сет незеритовой брони, весь сет незеритовых инструментов со всеми максимальными чарами (кроме проклятий)"],
["Minecraft Bedrock 1.17", "Призвать ярко-красную овцу"],
["Minecraft Java 1.18", "Телепортацию к ближайшей деревне"],
["Minecraft Bedrock 1.16", "Вызвать дождь"],
["Minecraft Java 1.19", "Установить полдень"],
["Minecraft Java 1.20", "Призыв эндер-дракона в зимнем биоме"],
["Minecraft Bedrock 1.17", "Выдать алмазную кирку со всеми максимальными чарами (кроме проклятий)"],
["Minecraft Java 1.19", "Сложная команда для создания красочного фейерверка в небе"]
]
iface = gr.Interface(fn=generate_minecraft_command, inputs=[
gr.Textbox(label="Версия Minecraft", placeholder="Minecraft Java 1.20"),
gr.Textbox(label="Описание команды")
], outputs=gr.Textbox(label="Команда"), examples=examples, title="Minecraft Command Generator")
iface.launch()