Spaces:
Sleeping
Sleeping
File size: 2,590 Bytes
f92a51b 6eccccd ec1e4af c7ba344 f92a51b eb4df2e fde6e17 eb4df2e d8abe74 6eccccd 23a6746 d8abe74 6eccccd b2592e7 fde6e17 01868c2 d8abe74 ec1e4af 6eccccd 2ed3994 6eccccd 18f89c2 715e65d d74acb3 2ed3994 715e65d 10954e8 715e65d 10954e8 adc769b fde6e17 eb4df2e |
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 72 73 74 75 76 77 78 79 80 81 82 83 |
import gradio as gr
import requests
import json
import os
import markdown2
# HTML-код для анимации загрузки
loading_html = """
<div>
<style>
.lds-ring {
display: inline-block;
position: relative;
width: 80px;
height: 80px;
}
.lds-ring div {
box-sizing: border-box;
display: block;
position: absolute;
width: 64px;
height: 64px;
margin: 8px;
border: 8px solid #000;
border-radius: 50%;
animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
border-color: #000 transparent transparent transparent;
}
.lds-ring div:nth-child(1) {
animation-delay: -0.45s;
}
.lds-ring div:nth-child(2) {
animation-delay: -0.3s;
}
.lds-ring div:nth-child(3) {
animation-delay: -0.15s;
}
@keyframes lds-ring {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style>
<div class="lds-ring"><div></div><div></div><div></div><div></div></div>
</div>
"""
def generate_minecraft_command(description):
# Оставим это без изменений
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")
}
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()
command_html = markdown2.markdown(command)
return command_html
elif 'error' in data:
error_message = data['error']['message']
return f'Ошибка: {error_message}'
else:
return f'Не удалось сгенерировать команду. {data}'
iface = gr.Interface(fn=generate_minecraft_command, inputs=[
gr.Textbox(label="Запрос")
], outputs=gr.HTML(label="Ответ"), title="GPT")
# Добавляем анимацию загрузки через HTML
iface.launch(inline=True, examples=[
["Пример запроса"]
], examples_per_page=1, enable_queue=True, layout="unaligned", server_port=os.getenv("PORT"))
|