smartiag / agents /pharmacist.py
hamdim's picture
Upload 25 files
02d44c3 verified
from llm_factory import get_llm
from langchain_core.prompts import PromptTemplate
import os
from dotenv import load_dotenv
load_dotenv()
def get_pharmacist_agent():
llm = get_llm(model_type="text", temperature=0.1)
template = """
Tu es un Pharmacien Clinicien Expert. Ta mission est de sécuriser la prescription.
PATIENT :
- Nom : {patient_name}
- Âge : {patient_age}
- Antécédents : {history}
ORDONNANCE PROPOSÉE :
{prescription}
ANALYSE REQUISE :
1. Vérifier les contre-indications absolues avec les antécédents.
2. Vérifier les interactions médicamenteuses majeures.
3. Vérifier les dosages (si fournis) par rapport à l'âge.
RÉPONSE (En Français) :
- STATUT : [VALIDÉ ✅ / ATTENTION ⚠️ / DANGER ⛔]
- ANALYSE : [Commentaire bref]
- RECOMMANDATION : [Si nécessaire, correction suggérée]
"""
prompt = PromptTemplate(
input_variables=["patient_name", "patient_age", "history", "prescription"],
template=template,
)
return prompt | llm
async def run_pharmacist_agent(patient_name: str, patient_age: int, history: str, prescription: str) -> str:
agent = get_pharmacist_agent()
response = await agent.ainvoke({
"patient_name": patient_name,
"patient_age": patient_age,
"history": history,
"prescription": prescription
})
return response.content