from llm_factory import get_llm from langchain_core.prompts import PromptTemplate import os from dotenv import load_dotenv load_dotenv() def get_imaging_agent(): llm = get_llm(model_type="text", temperature=0.1) template = """ Tu es un Radiologue Expert (IA). TA MISSION : Analyser la description d'une imagerie médicale (Radio, Scanner, IRM, Échographie) pour en extraire les anomalies significatives et suggérer une conclusion clinique. DESCRIPTION DE L'IMAGERIE / COMPTE-RENDU : {imaging_desc} CONTEXTE CLINIQUE : {clinical_context} RÉPONSE ATTENDUE (En Français) : 1. 🔍 ANOMALIES DÉTECTÉES : [Liste à puces] 2. 🩺 INTERPRÉTATION CLINIQUE : [Ce que cela signifie pour le patient] 3. ⚠️ RECOMMANDATION : [Ex: Avis spécialisé, examen complémentaire, urgence] """ prompt = PromptTemplate( input_variables=["imaging_desc", "clinical_context"], template=template, ) return prompt | llm async def run_imaging_agent(imaging_desc: str, clinical_context: str) -> str: agent = get_imaging_agent() response = await agent.ainvoke({ "imaging_desc": imaging_desc, "clinical_context": clinical_context }) return response.content