Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
import json | |
import os | |
import markdown2 | |
from pygments import highlight | |
from pygments.lexers import get_lexer_by_name | |
from pygments.formatters import HtmlFormatter | |
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() | |
# Преобразование Markdown в HTML | |
command_html = markdown2.markdown(command) | |
# Подсветка синтаксиса кода | |
lexer = get_lexer_by_name("html", stripall=True) | |
formatter = HtmlFormatter(style="colorful", full=True, noclasses=True) | |
highlighted_code = highlight(command, lexer, formatter) | |
return highlighted_code | |
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.Code(label="Ответ", language="html", live=True), title="GPT") | |
iface.launch() | |