File size: 2,503 Bytes
d941304
 
2526b2b
d941304
 
 
 
 
 
 
 
 
 
2526b2b
 
d941304
 
 
 
 
10482e4
 
dc1d24c
d941304
2526b2b
d941304
1b53686
d941304
 
 
2526b2b
d941304
 
95eec11
 
d941304
c37fa3d
 
 
 
d941304
 
 
 
 
 
 
07a7baf
d941304
 
 
 
 
 
 
 
07a7baf
d941304
 
 
 
07a7baf
d941304
1262b51
d941304
 
 
 
3a41fb9
 
 
d941304
 
 
 
 
 
 
 
 
3a41fb9
d941304
 
 
 
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
import gradio as gr

from utils import Test



title = "Психологічний тест"
description = "Визначте хто ви з синтезу"
info = "Пройдіть тест до кінця"



# Define your list of questions and answers
test = Test()


def question_interface(question_state, answer):
    question_state["value"] += 1
    current_question_index = question_state["value"]

    if (current_question_index != 0):
        question_state["responses"].append(answer)

    # Check if all questions have been answered
    if current_question_index == len(test):
        # Show all responses
        answer_ids = test.convert_to_answer_ids(question_state["responses"])
        return response_text

    # Display the current question
    question = test.get_question(current_question_index)

    # Create an input component for the answer
    answers = test.get_answers(current_question_index)
    radio = gr.Radio.update(choices = answers)

    image_description = test.get_description(current_question_index)
    image_path = test.get_image_path(current_question_index)

    return question_state, question, radio, image_description, image_path






with gr.Blocks() as blocks:
    question_state = gr.State(value = {"value":-1, "responses":[]})
    gr.Markdown("<h1 style='text-align: center; margin-bottom: 1rem'>"
                + title
                + "</h1>")
    gr.Markdown(description)
    with gr.Row():
        with gr.Column():
            textbox = gr.Textbox(
                label="Question",
                value="Натисніть Submit для того щоб розпочати тест",
                interactive=False,
            )
            radio = gr.Radio(
                label="Answer options",
                choices=[],
                #value=default_lang,
                #type="index",
                interactive=True,
            )
            with gr.Row():
                submit = gr.Button("Submit", variant="primary", interactive=True)
        with gr.Column():
            result = gr.Textbox(label="Test result", interactive=False)
            resultImage = gr.Image(label="Image", interactive=False)
    gr.Markdown(info)
    # gr.Markdown("<center>"
    #             +f'<img src={badge} alt="visitors badge"/>'
    #             +"</center>")

    # actions
    submit.click(
        question_interface,
        [question_state, radio],
        [question_state, textbox, radio, result, resultImage],
    )


blocks.launch()