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, mcq_prompt=mcq_prompt): """ Generate questions by calling davinci-003. """ prompt = context + mcq_prompt if credentials == access_code: 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) else: return "mauvais code d'accès" # def append_completion(selected_text, feedback): # return selected_text, selected_text + feedback with gr.Blocks(title="Générateur de questions à choix multiples") 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.") with gr.Row(): context = gr.Textbox(placeholder="insérez le texte ici.", lines=10) qa_pairs = gr.Textbox(placeholder="Les questions apparaîtront ici.", lines=10) #todo: test generating with just one phrase for one MCQ with smaller models quiz_button = gr.Button("Générer dix questions.") if credentials == access_code: quiz_button.click(fn= generate_questions, inputs=[context, credentials], outputs=qa_pairs ) if __name__ == "__main__": demo.launch(debug=True)