Spaces:
Runtime error
Runtime error
#!/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) | |