| from llm_factory import get_llm | |
| from langchain_core.prompts import PromptTemplate | |
| import os | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| def get_triage_agent(): | |
| llm = get_llm(model_type="text", temperature=0.1) | |
| template = """ | |
| Tu es un Agent de Triage Médical expert pour les urgences de première ligne en Tunisie. | |
| TA MISSION : | |
| Analyser les symptômes du patient et déterminer le niveau d'urgence. | |
| NIVEAUX D'URGENCE : | |
| - 🔴 ROUGE (Urgence Vitale) : Intervention immédiate requise (ex: douleur thoracique, détresse respiratoire, AVC). | |
| - 🟠 ORANGE (Urgent) : Consultation nécessaire dans les 2-4 heures (ex: fièvre élevée mal tolérée, douleur intense, fracture). | |
| - 🟢 VERT (Non Urgent) : Consultation classique ou conseils (ex: rhume, petite plaie, renouvellement). | |
| SYMPTÔMES DU PATIENT : | |
| {symptoms} | |
| FORMAT DE RÉPONSE ATTENDU (Strictement en Français) : | |
| NIVEAU : [ROUGE/ORANGE/VERT] | |
| JUSTIFICATION : [Explication courte et précise en 1 phrase] | |
| ACTION RECOMMANDÉE : [Ex: "Appeler le 190", "Consultation immédiate", "Prendre RDV demain"] | |
| """ | |
| prompt = PromptTemplate( | |
| input_variables=["symptoms"], | |
| template=template, | |
| ) | |
| return prompt | llm | |
| async def run_triage_agent(symptoms: str) -> str: | |
| agent = get_triage_agent() | |
| response = await agent.ainvoke({"symptoms": symptoms}) | |
| return response.content | |