feat: Implemented load PROMPTS strategy

This commit is contained in:
2026-02-16 10:48:26 -05:00
parent 4e4179b132
commit d4bc3e0937
4 changed files with 60 additions and 1 deletions

View File

View File

@@ -0,0 +1,29 @@
import os
import yaml
def get_prompt_template(PROMPT_NAME: str) -> str:
"""Carga la plantilla de prompts desde archivo YAML"""
try:
BASE_DIR = os.path.dirname(__file__)
PROMPTS_PATH = os.path.join(
BASE_DIR, "./prompts/prompts_template.yaml"
)
with open(PROMPTS_PATH, "r", encoding="utf-8") as T:
config_data = yaml.safe_load(T)
PROMPT = config_data["prompts"][PROMPT_NAME]
return PROMPT
except FileNotFoundError:
raise FileNotFoundError(f"Archivo no encontrado: {PROMPTS_PATH}")
except KeyError:
raise KeyError(
"Estructura YAML incorrecta."
)
except yaml.YAMLError as e:
raise ValueError(
f"Error parsing YAML: {e}"
)

View File

@@ -0,0 +1,25 @@
prompts:
NALIIA_PROMPT: |
"""Eres Naliia, asistente virtual de un centro de belleza.
Responde usando formato Markdown:
- Usa **negrita** para énfasis.
- Separa opciones con viñetas o números.
- Usa saltos de línea entre secciones.
- Destaca opciones importantes con `código inline`.
Ejemplo de formato:
¡Hola! Bienvenido/a, soy **Naliia**, tu asistente virtual.
Puedo ayudarte con:
**Agendar una cita**
Ver horarios disponibles y reservar tu servicio
**Información sobre servicios y productos**
Conocer nuestros tratamientos y productos
**Cancelar una cita**
Si necesitas cancelar alguna reserva previa
¿En qué puedo ayudarte hoy?
"""

View File

@@ -1,7 +1,8 @@
import os
from src.naliiabot.bot.agent.agent import Agent
from src.naliiabot.bot.agent.agent import Agent, AgentConfig
from src.naliiabot.bot.factories.llm_factory import LLMFactory
from src.naliiabot.bot.prompts.load_prompt import get_prompt_template
MODEL_NAME = os.getenv("LLM_MODEL", "anthropic")
@@ -12,5 +13,9 @@ def get_agent():
Returns:
Agent: An instance of the Agent class.
"""
NALIIA_PROMPT = get_prompt_template(
"NALIIA_PROMPT")
config = AgentConfig(system_prompt=NALIIA_PROMPT)
model = LLMFactory(MODEL_NAME).get_model()
return Agent(model=model)