Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import pipeline | |
# Načtení textového generátoru | |
generator = pipeline("text-generation", model="utter-project/EuroLLM-1.7B") | |
def generate_quiz(subject, num_questions, difficulty): | |
print(" ******* ") | |
print("button clicked") | |
questions = [] | |
for _ in range(int(num_questions)): # Cyklus pro generování specifikovaného počtu otázek | |
print("generate question") | |
prompt = f"Generuj otázku na téma: '{subject}'. Vytvoř jednoduchou otázku k danému tématu. " | |
generated = generator(prompt, max_length=50, num_return_sequences=1) | |
questions.append(generated[0]['generated_text']) | |
print("generate question - done") | |
return questions | |
def evaluate_quiz(answers): | |
# Zjednodušené hodnocení odpovědí | |
correct_answers_count = sum([1 for answer in answers if answer.strip()]) | |
return f"Vyhodnocení: Správně zodpovězeno {correct_answers_count} z {len(answers)} otázek." | |
# Definování Gradio komponentů | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
input_subject = gr.Textbox(label="Obor", placeholder="Např. matematika") | |
input_num_questions = gr.Number(label="Počet otázek", value=5) | |
input_difficulty = gr.Dropdown(choices=["lehka", "stredni", "tezka"], label="Obtížnost") | |
questions_output = gr.Textbox(lines=10) | |
generate_btn = gr.Button("Generovat otázky") | |
generate_btn.click(fn=generate_quiz, | |
inputs=[input_subject, input_num_questions, input_difficulty], | |
outputs=questions_output) | |
with gr.Column(): | |
answer_inputs = [gr.Textbox(label=f"Odpověď na otázku {i+1}") for i in range(5)] | |
evaluate_btn = gr.Button("Vyhodnotit odpovědi") | |
evaluation_output = gr.Textbox(label="Výsledek") | |
evaluate_btn.click(fn=evaluate_quiz, inputs=answer_inputs, outputs=evaluation_output) | |
print(" ******* ") | |
print("start") | |
print(" ******* ") | |
demo.launch() |