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