File size: 1,978 Bytes
0b5e31f
a99e915
0b5e31f
fbc714c
bbf5d22
a99e915
 
bb05441
 
fbc714c
 
bb05441
49f4b63
fbc714c
 
bb05441
a99e915
 
 
fbc714c
a99e915
 
 
fbc714c
a99e915
 
fbc714c
a99e915
 
 
 
 
 
 
 
 
 
fbc714c
a99e915
 
 
0b5e31f
bb05441
 
 
0b5e31f
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
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()