import gradio as gr from huggingface_hub import InferenceClient # Initialiser le client d'inférence client = InferenceClient("HuggingFaceH4/zephyr-7b-beta") def creer_materiel_pedagogique(chat_message): system_message = "Aidez à créer du matériel pédagogique basé sur la conversation suivante." response = client.chat_completion( [{"role": "system", "content": system_message}, {"role": "user", "content": chat_message}], max_tokens=512, temperature=0.7, top_p=0.95 ).choices[0].message.content return response def creation_devoir(chat_message): system_message = "Aidez à créer des devoirs basés sur la conversation suivante." response = client.chat_completion( [{"role": "system", "content": system_message}, {"role": "user", "content": chat_message}], max_tokens=512, temperature=0.7, top_p=0.95 ).choices[0].message.content return response def lettre_recommandation(chat_message): system_message = "Aidez à rédiger une lettre de recommandation basée sur la conversation suivante." response = client.chat_completion( [{"role": "system", "content": system_message}, {"role": "user", "content": chat_message}], max_tokens=512, temperature=0.7, top_p=0.95 ).choices[0].message.content return response def brainstorming_idees(chat_message): system_message = "Aidez à faire un brainstorming d'idées basé sur la conversation suivante." response = client.chat_completion( [{"role": "system", "content": system_message}, {"role": "user", "content": chat_message}], max_tokens=512, temperature=0.7, top_p=0.95 ).choices[0].message.content return response def generation_questions_exercice(chat_message): system_message = "Aidez à générer des questions d'exercice basées sur la conversation suivante." response = client.chat_completion( [{"role": "system", "content": system_message}, {"role": "user", "content": chat_message}], max_tokens=512, temperature=0.7, top_p=0.95 ).choices[0].message.content return response # Définir l'interface Gradio with gr.Blocks() as demo: gr.Markdown(""" # Eddy Teacher Assistant 🌟 Bienvenue dans l'Assistant Enseignant Eddy ! Cet outil offre plusieurs fonctionnalités pour vous aider dans votre enseignement, que ce soit pour créer du matériel pédagogique, des devoirs, des lettres de recommandation, brainstormer des idées ou générer des questions d'exercice. """) with gr.Tab("Créer du matériel pédagogique 📚"): with gr.Row(): chat_message = gr.Textbox(label="Entrez votre message", lines=5) response = gr.Textbox(label="Réponse", interactive=False, lines=15, max_lines=50) gr.Button("Envoyer").click(creer_materiel_pedagogique, chat_message, response) with gr.Tab("Création de devoirs 📝"): with gr.Row(): chat_message = gr.Textbox(label="Entrez votre message", lines=5) response = gr.Textbox(label="Réponse", interactive=False, lines=15, max_lines=50) gr.Button("Envoyer").click(creation_devoir, chat_message, response) with gr.Tab("Lettres de recommandation ✒️"): with gr.Row(): chat_message = gr.Textbox(label="Entrez votre message", lines=5) response = gr.Textbox(label="Réponse", interactive=False, lines=15, max_lines=50) gr.Button("Envoyer").click(lettre_recommandation, chat_message, response) with gr.Tab("Brainstorming d'idées 💡"): with gr.Row(): chat_message = gr.Textbox(label="Entrez votre message", lines=5) response = gr.Textbox(label="Réponse", interactive=False, lines=15, max_lines=50) gr.Button("Envoyer").click(brainstorming_idees, chat_message, response) with gr.Tab("Génération de questions d'exercice ❓"): with gr.Row(): chat_message = gr.Textbox(label="Entrez votre message", lines=5) response = gr.Textbox(label="Réponse", interactive=False, lines=15, max_lines=50) gr.Button("Envoyer").click(generation_questions_exercice, chat_message, response) gr.Markdown("---\nConstruit avec ❤️ par [Bahae Eddine HALIM](https://www.linkedin.com/in/halimbahae/)") if __name__ == "__main__": demo.launch(share=True)