from transformers import pipeline from datetime import datetime # Charger le pipeline de génération de texte avec le modèle Llama # Use a pipeline as a high-level helper pipe = pipeline("text-generation", model="benjleite/t5-french-qa") # Fonction pour obtenir une réponse avec le modèle def get_llama_response(question: str) -> str: current_date = datetime.now().strftime('%Y-%m-%d') prompt = ( "Tu es un assistant francophone expert. " f"\nNous sommes le {current_date}." "\nRéponds avec concision et précision, en adoptant un ton professionnel. " "Évite les phrases inutiles et n'invente rien si les données ne sont pas disponibles. " f"\nQuestion: {question}" ) # Utilisation du pipeline pour générer une réponse response = pipe(prompt, max_length=200, num_return_sequences=1) # La réponse générée est dans le champ 'generated_text' de la sortie return response[0]['generated_text'] # Fonction qui orchestre la réponse du chatbot en utilisant la question def chatbot_respond(message): response = get_llama_response(message) return "", [(message, response)] # Création de l'interface Gradio with gr.Blocks() as demo: gr.Markdown("## Chatbot d'analyse de performance réseau") # Composant affichant l'historique de la conversation chatbot_display = gr.Chatbot(label="Conversation") # Champ de saisie pour la question utilisateur message_input = gr.Textbox(label="Votre question", placeholder="Tapez votre question ici...", lines=1) # Bouton pour envoyer la question send_btn = gr.Button("Envoyer") # Liaison du bouton à la fonction chatbot_respond send_btn.click( fn=chatbot_respond, inputs=message_input, outputs=[message_input, chatbot_display], api_name="chatbot_respond", queue=True ) # Lancement de l'interface demo.launch()