qa_gen / app.py
AndrewRWilliams's picture
Update app.py
cc010e0
raw
history blame
2.09 kB
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()