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