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()