Spaces:
Runtime error
Runtime error
File size: 4,790 Bytes
11a668a f92a51b 6eccccd ec1e4af 5cdf428 1ee36a6 11a668a 2a00b0f 718a02b 05c35aa d8abe74 6eccccd 23a6746 d8abe74 c8178ad 6eccccd 2a00b0f 814439a d8abe74 c8178ad 5395fc0 2ed3994 5395fc0 5af24ce 1ee36a6 5395fc0 c6b109e 1ee36a6 11a668a 5cdf428 11a668a 7cd9469 288b3ad 7cd9469 288b3ad 7cd9469 11a668a a5eff76 2290b15 f379d23 1177baa 99151d2 820232a 11a668a 6106374 |
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 84 85 86 87 88 89 90 91 |
# imports
import gradio as gr
import requests
import json
import os
import tempfile
import subprocess
# functions
def generate(clas, sloh, zad, theme, pred, model, max_tokens):
if not clas or not sloh or not zad:
return ""
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {os.getenv("API_KEY")}'
}
payload = {
'messages': [{'role': 'system', 'content': f'MARKDOWN НЕ ПОДДЕРЖИВАЕТСЯ! ПИШИ ПОЖАЛУЙСТА БЕЗ НЕГО. В этом чате тебе букду присылать описание школьных работ, а ты должен будешь сгенерировать текст для школы (для учителя, что бы учитель дал это задание ученикам)'}, {'role': 'system', 'content': f'Сгенерируй пожалуйста {zad} для учеников {clas} класса из мбоу школы в России, для урока \"{pred}\". Сложность: {sloh}/10.0. Тема: \"{theme}\", если пусто, то на твой выбор.'}],
'max_tokens': max_tokens,
'model': model
}
while True:
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']
print(f'Ошибка {error_message}')
return None
else:
print(f'Не удалось сгенерировать текст. Повторите попытку позже...')
return None
# css
css = """
footer {visibility: hidden !important;}
#generate {
display: inline-block;
color: #fff;
font-size: 16px;
padding: 10px 20px;
border: 3px solid #F6AE2D;
border-radius: 15px;
text-decoration: none;
transition: background-color 0.5s ease-in-out;
font-weight: normal;
background: transparent !important;
}
#generate:hover {
background: #F6AE2D !important;
}
"""
# ui
with gr.Blocks(css=css, theme='YTheme/Sketch') as vui:
with gr.Row():
with gr.Column():
with gr.Tab("Запрос", id='request v'):
with gr.Row():
with gr.Column(scale=3):
pred = gr.Dropdown(label="Предмет", value="Математика", choices=["Математика", "Русский язык", "Алгебра", "Физика", "Геометрия", "Химия", "Биология", "Информатика", "История", "Обществознание", "Литература", "География", "Английский язык", "Физическая культура", "Основы безопасности жизнедеятельности", "Труды", "Музыка", "Изобразительное искусство", "Технология", "Родной язык", "Основы Духовно Нравственной Культуры России"])
zad = gr.Dropdown(label="Задача", value="Контрольная работа", choices=["Контрольная работа", "Домашнее задание", "Тест", "Пятиминутка"])
theme = gr.Textbox(label="Тема", placeholder="Не обязательно")
sloh = gr.Slider(label="Сложность", value=2, minimum=0.5, maximum=10, step=0.5)
clas = gr.Slider(label="Класс", value=6, minimum=1, maximum=11, step=1)
with gr.Tab("Настройки", id='settingsv'):
with gr.Row():
with gr.Column():
model = gr.Radio(label="Модель", interactive=True, choices=["gpt-3.5-turbo", "gpt-3.5-turbo-16k", "gpt-3.5-turbo-16k-0613", "gpt-4", "gpt-4-vision-preview"], value="gpt-4-vision-preview")
max_tokens = gr.Slider(show_label=True, label="Максимальное количество токенов", minimum=100, maximum=4500, value=2500, step=1)
text_button = gr.Button("Генерация", variant='primary', elem_id="generate")
with gr.Column():
with gr.Tab("Ответ"):
text_output = gr.Textbox(show_label=False, placeholder="Здравствуйте, давайте начнём!")
text_button.click(generate, inputs=[clas, sloh, zad, theme, pred, model, max_tokens], outputs=text_output, queue=False)
#end
vui.queue(api_open=False).launch()
|