import requests import os import time from gtts import gTTS HF_API_KEY = os.getenv("HUGGING_FACE_API_KEY") MISTRAL_API_KEY = os.getenv("MISTRAL_IA_API_KEY") # Summarisation model def query(payload): headers = {"Authorization": f"Bearer {HF_API_KEY}"} API_URL_SUMMARISATION_MODEL = "https://api-inference.huggingface.co/models/facebook/bart-large-cnn" response = requests.post(API_URL_SUMMARISATION_MODEL, headers=headers, json=payload) return response.json()[0]['summary_text'] def summarize_text(text): payload = {"inputs": text} return query(payload) #Text generation model def get_diagnosis(prediction, confidence): labels = ["glioma", "meningioma", "notumor", "pituitary"] result = labels[prediction] prompt = f'Tu es un médecin (neurologue) qui s\'appelle Skym qui doit annoncer à un patient X le type de tumeur qu\'il a. Le type de tumeur prédit est "{result}" avec une confiance de {confidence}. Veuillez fournir un diagnostic concis, précis et des conseils.' return prompt, result def generate_text(input_text, max_retries=3): MISTRAL_API_URL = "https://api.mistral.ai/v1/chat/completions" headers = { "Authorization": f"Bearer {MISTRAL_API_KEY}", "Content-Type": "application/json" } payload = { "model": "mistral-small-latest", "messages": [{"role": "user", "content": input_text}] } for _ in range(max_retries): response = requests.post(MISTRAL_API_URL, headers=headers, json=payload) if response.status_code == 200: return response.json()['choices'][0]['message']['content'] else: time.sleep(5) return "Failed to generate text after multiple attempts" # Translation model def translate_fr_to_es(input_text, max_retries=5): API_URL = "https://api-inference.huggingface.co/models/Helsinki-NLP/opus-mt-fr-es" headers = {"Authorization": f"Bearer {HF_API_KEY}"} payload = {"inputs": input_text} for _ in range(max_retries): response = requests.post(API_URL, headers=headers, json=payload) if response.status_code == 200: return response.json()[0]['translation_text'] else: time.sleep(5) return "Une erreur s'est produite veuillez reessayer plus tard." # Audio to text model def text_to_speech(input_text): outputh_path = "text_to_speech.mp3" tts = gTTS(text=input_text, lang="fr") tts.save(outputh_path) return outputh_path