easy-text-gen / app.py
Rooni's picture
Update app.py
018ca34
raw
history blame
1.6 kB
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()