File size: 1,457 Bytes
02d44c3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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