File size: 1,945 Bytes
36c42b2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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()