condeac's picture
Update app.py
c1de63a verified
raw
history blame
2.07 kB
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Jun 1 17:30:57 2024
@author: air
"""
import streamlit as st
import requests
import os
# URL de l'API Hugging Face
API_URL = "https://api-inference.huggingface.co/models/condeac/condeac-Llama-2-7b-chat-finetune-medical"
# Récupérer le token d'accès Hugging Face depuis les variables d'environnement
hf_token = os.getenv("HF_API_TOKEN")
headers = {"Authorization": f"Bearer {hf_token}"}
# Limiter la longueur du prompt
MAX_PROMPT_LENGTH = 512
# Définir une fonction pour générer du texte en utilisant l'API
def generate_text(prompt, max_length=200):
# Tronquer le prompt si nécessaire
prompt = prompt[:MAX_PROMPT_LENGTH]
payload = {
"inputs": prompt,
"parameters": {
"max_length": max_length,
"num_beams": 3, # Réduire le nombre de faisceaux pour optimiser les ressources
"no_repeat_ngram_size": 2,
"early_stopping": True
}
}
response = requests.post(API_URL, headers=headers, json=payload)
response_json = response.json()
# Afficher le contenu de la réponse pour le débogage
print(response_json)
# Gérer les erreurs et les structures inattendues de la réponse
if response.status_code != 200:
return f"Erreur: {response.status_code} - {response_json}"
if isinstance(response_json, dict) and 'error' in response_json:
return f"Erreur: {response_json['error']}"
if isinstance(response_json, list) and len(response_json) > 0:
return response_json[0].get('generated_text', 'Aucun texte généré')
return "Réponse inattendue de l'API."
# Interface Streamlit
st.title("Chatbot Médical")
st.write("Posez une question ou entrez un prompt ci-dessous pour obtenir une réponse.")
# Zone de texte pour l'utilisateur
user_input = st.text_input("Vous : ", "hello !")
if st.button("Envoyer"):
with st.spinner('en cours...'):
response = generate_text(user_input)
st.success("Chatbot : " + response)