Upload devoir.py
Browse files
devoir.py
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
import requests
|
| 3 |
+
|
| 4 |
+
API_URL_BART = "https://api-inference.huggingface.co/models/chinhon/bart-large-cnn-summarizer_03"
|
| 5 |
+
API_URL_TRANSLATION = "https://api-inference.huggingface.co/models/FacebookAI/xlm-mlm-enfr-1024"
|
| 6 |
+
API_URL_DIALOGPT = "https://api-inference.huggingface.co/models/Mohammed-Altaf/Medical-ChatBot"
|
| 7 |
+
HEADERS = {"Authorization": f"Bearer {huggingface_token}"}
|
| 8 |
+
|
| 9 |
+
def query(api_url, payload):
|
| 10 |
+
response = requests.post(api_url, headers=HEADERS, json=payload)
|
| 11 |
+
return response.json()
|
| 12 |
+
|
| 13 |
+
def main():
|
| 14 |
+
st.title("Application NLP")
|
| 15 |
+
|
| 16 |
+
# Sidebar pour la navigation entre les modèles
|
| 17 |
+
st.sidebar.image("Keyce.jpg")
|
| 18 |
+
st.write("FOSSO TCHATAT SIDOINE")
|
| 19 |
+
model_selection = st.sidebar.selectbox("Sélectionnez le modèle", ["BART Summarization", "Translation (fr->en)", "Conversation (BlenderBot-400M)"])
|
| 20 |
+
|
| 21 |
+
if model_selection == "BART Summarization":
|
| 22 |
+
|
| 23 |
+
st.subheader("BART Summarization")
|
| 24 |
+
st.image("resume.jpg")
|
| 25 |
+
# Interface utilisateur pour l'entrée de l'utilisateur
|
| 26 |
+
user_input_bart = st.text_area("Entrez le texte :")
|
| 27 |
+
|
| 28 |
+
if st.button("Resumer avec BART"):
|
| 29 |
+
# Faites appel au modèle de résumé BART
|
| 30 |
+
payload_bart = {"inputs": user_input_bart}
|
| 31 |
+
result_bart = query(API_URL_BART, payload_bart)
|
| 32 |
+
|
| 33 |
+
# Affichez le résumé
|
| 34 |
+
st.subheader("Résumé:")
|
| 35 |
+
st.write(result_bart[0]["generated_text"])
|
| 36 |
+
|
| 37 |
+
elif model_selection == "Translation (fr->en)":
|
| 38 |
+
|
| 39 |
+
st.subheader("Translation (fr->en)")
|
| 40 |
+
st.image("TRANSLATE.jpg")
|
| 41 |
+
|
| 42 |
+
# Interface utilisateur pour l'entrée de l'utilisateur
|
| 43 |
+
user_input_translation = st.text_area("Entrez le texte que vous souhaitez traduire:")
|
| 44 |
+
|
| 45 |
+
if st.button("🌐 Translate"):
|
| 46 |
+
# Faites appel au modèle de traduction fr->en
|
| 47 |
+
payload_translation = {"inputs": user_input_translation}
|
| 48 |
+
result_translation = query(API_URL_TRANSLATION, payload_translation)
|
| 49 |
+
#print(result_translation)
|
| 50 |
+
# Vérifiez si la clé "translation_text" existe dans la réponse
|
| 51 |
+
|
| 52 |
+
st.subheader("Traduction:")
|
| 53 |
+
st.write(result_translation[0]["translation_text"])
|
| 54 |
+
|
| 55 |
+
elif model_selection == "Conversation (BlenderBot-400M)":
|
| 56 |
+
st.subheader("Conversation with BlenderBot-400M")
|
| 57 |
+
|
| 58 |
+
# Interface utilisateur pour l'entrée de l'utilisateur
|
| 59 |
+
user_input_blenderbot = st.text_area("Entrez votre message à BlenderBot-400M:")
|
| 60 |
+
|
| 61 |
+
if st.button("Obtenir la réponse de BlenderBot-400M"):
|
| 62 |
+
# Faites appel au modèle BlenderBot-400M
|
| 63 |
+
payload_blenderbot = {
|
| 64 |
+
"inputs": {
|
| 65 |
+
"past_user_inputs": ["Which movie is the best ?"],
|
| 66 |
+
"generated_responses": ["It is Die Hard for sure."],
|
| 67 |
+
"text": user_input_blenderbot
|
| 68 |
+
}
|
| 69 |
+
}
|
| 70 |
+
result_blenderbot = query(API_URL_DIALOGPT, payload_blenderbot)
|
| 71 |
+
|
| 72 |
+
# Affichez la conversation de manière plus visuelle
|
| 73 |
+
st.subheader("Conversation avec BlenderBot-400M:")
|
| 74 |
+
|
| 75 |
+
# Vérifiez si la clé 'choices' existe dans la réponse
|
| 76 |
+
if "choices" in result_blenderbot and result_blenderbot["choices"]:
|
| 77 |
+
# Afficher les messages précédents
|
| 78 |
+
for i, past_message in enumerate(result_blenderbot["choices"][-1]["message"]["past_user_inputs"]):
|
| 79 |
+
st.write(f"BlenderBot-400M:")
|
| 80 |
+
st.write(f"> {past_message}")
|
| 81 |
+
|
| 82 |
+
# Afficher le dernier message de l'utilisateur
|
| 83 |
+
st.write("Vous:")
|
| 84 |
+
st.write(f"> {user_input_blenderbot}")
|
| 85 |
+
|
| 86 |
+
# Afficher la réponse de BlenderBot-400M
|
| 87 |
+
st.write(f"BlenderBot-400M:")
|
| 88 |
+
st.write(f"> {result_blenderbot['choices'][-1]['message']['content']}")
|
| 89 |
+
else:
|
| 90 |
+
st.warning("La clé 'choices' n'existe pas dans la réponse de l'API ou la liste est vide.")
|
| 91 |
+
|
| 92 |
+
if __name__ == "__main__":
|
| 93 |
+
main()
|