diff --git a/src/naliiabot/bot/prompts/__init__.py b/src/naliiabot/bot/prompts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/naliiabot/bot/prompts/load_prompt.py b/src/naliiabot/bot/prompts/load_prompt.py new file mode 100644 index 0000000..a6d76ef --- /dev/null +++ b/src/naliiabot/bot/prompts/load_prompt.py @@ -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}" + ) diff --git a/src/naliiabot/bot/prompts/prompts/prompts_template.yaml b/src/naliiabot/bot/prompts/prompts/prompts_template.yaml new file mode 100644 index 0000000..3885520 --- /dev/null +++ b/src/naliiabot/bot/prompts/prompts/prompts_template.yaml @@ -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? + """ diff --git a/src/naliiabotapi/api/dependencies.py b/src/naliiabotapi/api/dependencies.py index 2f07a5b..26f48d9 100644 --- a/src/naliiabotapi/api/dependencies.py +++ b/src/naliiabotapi/api/dependencies.py @@ -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) \ No newline at end of file