File size: 4,063 Bytes
5f16de5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import streamlit as st
import requests

API_URL_BART = "https://api-inference.huggingface.co/models/chinhon/bart-large-cnn-summarizer_03"
API_URL_TRANSLATION = "https://api-inference.huggingface.co/models/FacebookAI/xlm-mlm-enfr-1024"
API_URL_DIALOGPT = "https://api-inference.huggingface.co/models/Mohammed-Altaf/Medical-ChatBot"
HEADERS = {"Authorization": f"Bearer {huggingface_token}"}

def query(api_url, payload):
    response = requests.post(api_url, headers=HEADERS, json=payload)
    return response.json()

def main():
    st.title("Application NLP")

    # Sidebar pour la navigation entre les modèles
    st.sidebar.image("Keyce.jpg")
    st.write("FOSSO TCHATAT SIDOINE")
    model_selection = st.sidebar.selectbox("Sélectionnez le modèle", ["BART Summarization", "Translation (fr->en)", "Conversation (BlenderBot-400M)"])

    if model_selection == "BART Summarization":
        
        st.subheader("BART Summarization")
        st.image("resume.jpg")
        # Interface utilisateur pour l'entrée de l'utilisateur
        user_input_bart = st.text_area("Entrez le texte :")

        if st.button("Resumer avec BART"):
            # Faites appel au modèle de résumé BART
            payload_bart = {"inputs": user_input_bart}
            result_bart = query(API_URL_BART, payload_bart)
            
            # Affichez le résumé
            st.subheader("Résumé:")
            st.write(result_bart[0]["generated_text"])

    elif model_selection == "Translation (fr->en)":
        
        st.subheader("Translation (fr->en)")
        st.image("TRANSLATE.jpg")

        # Interface utilisateur pour l'entrée de l'utilisateur
        user_input_translation = st.text_area("Entrez le texte que vous souhaitez traduire:")

        if st.button("🌐 Translate"):
            # Faites appel au modèle de traduction fr->en
            payload_translation = {"inputs": user_input_translation}
            result_translation = query(API_URL_TRANSLATION, payload_translation)
            #print(result_translation)
            # Vérifiez si la clé "translation_text" existe dans la réponse
            
            st.subheader("Traduction:")
            st.write(result_translation[0]["translation_text"])
           
    elif model_selection == "Conversation (BlenderBot-400M)":
        st.subheader("Conversation with BlenderBot-400M")

        # Interface utilisateur pour l'entrée de l'utilisateur
        user_input_blenderbot = st.text_area("Entrez votre message à BlenderBot-400M:")

        if st.button("Obtenir la réponse de BlenderBot-400M"):
            # Faites appel au modèle BlenderBot-400M
            payload_blenderbot = {
                "inputs": {
                    "past_user_inputs": ["Which movie is the best ?"],
                    "generated_responses": ["It is Die Hard for sure."],
                    "text": user_input_blenderbot
                }
            }
            result_blenderbot = query(API_URL_DIALOGPT, payload_blenderbot)

            # Affichez la conversation de manière plus visuelle
            st.subheader("Conversation avec BlenderBot-400M:")

            # Vérifiez si la clé 'choices' existe dans la réponse
            if "choices" in result_blenderbot and result_blenderbot["choices"]:
                # Afficher les messages précédents
                for i, past_message in enumerate(result_blenderbot["choices"][-1]["message"]["past_user_inputs"]):
                    st.write(f"BlenderBot-400M:")
                    st.write(f"> {past_message}")

                # Afficher le dernier message de l'utilisateur
                st.write("Vous:")
                st.write(f"> {user_input_blenderbot}")

                # Afficher la réponse de BlenderBot-400M
                st.write(f"BlenderBot-400M:")
                st.write(f"> {result_blenderbot['choices'][-1]['message']['content']}")
            else:
                st.warning("La clé 'choices' n'existe pas dans la réponse de l'API ou la liste est vide.")

if __name__ == "__main__":
    main()