File size: 2,091 Bytes
4581c90
 
 
 
 
 
 
 
 
06b74c7
 
a39de4a
327d778
ffc804b
7e09f8c
4581c90
 
 
 
e1490d2
8798382
e1490d2
 
 
 
 
 
 
 
 
 
 
4581c90
 
 
 
e1490d2
4581c90
23e60bd
136b1dc
8fd989b
23e60bd
59f98a6
4581c90
718ffdc
7e09f8c
 
cc010e0
 
 
7e09f8c
 
 
 
ae9da43
cc010e0
71c5936
 
4581c90
327d778
7e09f8c
327d778
4581c90
 
e1490d2
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

import gradio as gr
import transformers

import os
import sys
import openai
from openai import Completion as complete

mcq_prompt = "Generate French MCQs on the above text. Each MCQ must have four choices. Generate ten questions with answers:"

openai.api_key = os.environ["openai_api_key"]
access_code = os.environ["access_code"]

def generate_questions(context, credentials, num_questions, mcq_prompt=mcq_prompt):
    """
    Generate questions by calling davinci-003.
    """
    prompt = context + mcq_prompt
    try: 
        if credentials != access_code:
            return "mauvais code d'accès"
        else:
            try:
                completion = complete.create(model="text-davinci-003", prompt=prompt, max_tokens=1875)
                return str(completion.choices[0].text)
            except Exception as e:
                # return str(e)
                # return python version
                return str(sys.version)
    except:
        return str(sys.version)


# def append_completion(selected_text, feedback):
#     return selected_text, selected_text + feedback
with gr.Blocks() as demo:

    with gr.Row():

        gr.Markdown("Pour créer des questions à choix multiples, insérez un texte dans la boîte à gauche, puis cliquez sur 'Générer dix questions.' Attention! N'oubliez pas le code d'accès.")
    
        credentials = gr.Textbox("Code d'accès.", interactive=True)

    with gr.Row():

        with gr.Column():

            quiz_button = gr.Button("Générer dix questions.")

            context = gr.Textbox(placeholder="Insérez le texte ici.", lines=10)

            slider = gr.Slider(minimum=1, maximum=10, value=5, step=1, label="Nombre de questions.")


        qa_pairs = gr.Textbox(placeholder="Les questions apparaîtront ici.", lines=17)
    
        #todo: test generating with just one phrase for one MCQ with smaller models

    quiz_button.click(fn=generate_questions,
                         inputs=[context, credentials, slider],	
                         outputs=qa_pairs)

if __name__ == "__main__":
    demo.launch()