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