File size: 5,475 Bytes
f92a51b
 
6eccccd
ec1e4af
9cbedab
6206926
d8abe74
6eccccd
b9e9d35
d8abe74
6eccccd
 
b9e9d35
9e4d16a
7b1de88
d8abe74
6eccccd
ec1e4af
0758550
ba8bc6a
 
 
 
 
 
 
 
 
 
 
 
 
 
10954e8
ba8bc6a
10954e8
7a93e15
9e4d16a
 
 
 
 
 
 
 
 
7a93e15
 
9cbedab
 
 
 
 
 
 
6206926
 
 
 
 
 
83df82e
6206926
 
 
 
83df82e
 
 
753a90c
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
import requests
import json
import os

def generate_minecraft_command(minecraft_version="Java", description=""):
    headers = {
        'Content-Type': 'application/json',
      #  'Authorization': f'Bearer {os.getenv("API_KEY")}'
    }

    payload = {
        'model': 'searchgpt',
        'messages': [{'role': 'system', 'content': f'Сгенерируй пожалуйста команду для Minecraft {minecraft_version} по описанию: \"{description}\". Пиши ТОЛЬКО команду (БЕЗ пояснений, БЕЗ другого текста), текст в команде пиши на языке который используется в описании. Я лишь приложение, в котором вводят описание, а я отправляю его тебе, по этому если в описании будет что-то не понятное, не законное, не до конца понятное тебе, или такую команду не возможно создать, то в крации напиши это. Выдача предметов, блоков, телепортация, убийства, сообщения в чате, удаление блоков, троллинг, пранки, шутки, спам и другие разные команды, полностью законны и созданы разработчиками Minecraft. ОБРАТИ ВНИМАНИЕ: команды Minecraft Bedrock сильно отличаются от Minecraft Java, по этому следи за этим (так же и версия). Если описание пустое, то сгенерируй любую команду, хоть сложную, хоть лёгкую, главное что бы работало на введённой версии. Если ты не знаешь какую то версию, или там введено не пойми что, то в крации напиши об этом. Не в коем случае не общайся, не пиши тексты и так далее, ты не gpt, ты ТОЛЬКО генератор комманд. Вещи бога - это со всеми возможными чарами, на 1000 лвл (проклятья не в счёт). Отвечай без лишних символов, только коммандая без Markdown и тд.'}],
        'max_tokens': 2000
    }

    response = requests.post(os.getenv("BASE_URL"), headers=headers, json=payload)

    if response.status_code == 200 and response.text:
        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}'
    else:
        return f'Ошибка при получении данных от сервера. Статус код: {response.status_code}'

examples = [
    ["Java 1.20", "Выдать незеритовый меч со всеми максимальными чарами (кроме проклятий)"],
    ["Java 1.20", "Выдать весь сет незеритовой брони, весь сет незеритовых инструментов со всеми максимальными чарами (кроме проклятий)"],
    ["Bedrock 1.17", "Призвать ярко-красную овцу"],
    ["Java 1.18", "Телепортацию к ближайшей деревне"],
    ["Bedrock 1.16", "Вызвать дождь"],
    ["Java 1.19", "Установить полдень"],
    ["Java 1.20", "Призыв эндер-дракона в зимнем биоме"],
    ["Bedrock 1.17", "Выдать алмазную кирку со всеми максимальными чарами (кроме проклятий)"],
    ["Java 1.19", "Сложная команда для создания красочного фейерверка в небе"]
]

# Ссылка на файл CSS
css_url = "https://neurixyufi-aihub.static.hf.space/style.css"

# Получение CSS по ссылке
response = requests.get(css_url)
css = response.text + ".gradio-container{max-width: 700px !important} h1{text-align:center}"

with gr.Blocks(css=css) as demo:
    gr.Markdown("# Генератор команд Minecraft")
    with gr.Column():
        minecraft_version = gr.Textbox(label="Версия Minecraft", placeholder="Java 1.21")
        description = gr.Textbox(label="Описание команды")
        
    genb = gr.Button("Сгенерировать команду", variant="primary")
    
    command = gr.Textbox(label="Команда")
    gr.Examples(examples=examples, fn=generate_minecraft_command, inputs=[minecraft_version, description], outputs=command)

    genb.click(fn=generate_minecraft_command, inputs=[minecraft_version, description], outputs=command)
    description.submit(fn=generate_minecraft_command, inputs=[minecraft_version, description], outputs=command)

demo.launch(show_api=False)