File size: 3,218 Bytes
f92a51b
 
6eccccd
ec1e4af
f92a51b
15ba952
d8abe74
6eccccd
23a6746
d8abe74
6eccccd
 
0bea11d
c2365b9
3415bc3
d8abe74
6eccccd
ec1e4af
6eccccd
2ed3994
6eccccd
18f89c2
6eccccd
d74acb3
2ed3994
d74acb3
10954e8
0f346f1
10954e8
5c44b7c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ea5b96c
15ba952
8958c61
5c44b7c
0bea11d
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
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'}],
        'max_tokens': 6000,
        'model': 'gpt-3.5-turbo'
    }

    response = requests.post(os.getenv("BASE_URL"), headers=headers, json=payload)
    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}'

# Функция для копирования в буфер обмена в браузере с помощью JavaScript
copy_to_clipboard_js = """
function copyToClipboard() {
  /* Выбираем текстовое поле с результатом */
  var commandOutput = document.getElementById("output");
  
  /* Выбираем текст в поле */
  commandOutput.select();
  commandOutput.setSelectionRange(0, 99999); /* Для мобильных устройств */

  /* Копируем текст в буфер обмена */
  document.execCommand("copy");

  /* Сбрасываем выделение текста */
  window.getSelection().removeAllRanges();
  
  /* Визуальное подтверждение копирования */
  alert("Скопировано в буфер обмена: " + commandOutput.value);
}
"""

iface = gr.Interface(fn=generate_minecraft_command, inputs=[
    gr.Textbox(label="Версия Minecraft", placeholder="Minecraft Java 1.20"),
    gr.Textbox(label="Описание команды")
], outputs=[gr.Textbox(output_id="output"), gr.Button(text="Копировать", onclick=copy_to_clipboard_js)], title="Minecraft Command Generator")
iface.launch()