feat: Implemented load PROMPTS strategy
This commit is contained in:
0
src/naliiabot/bot/prompts/__init__.py
Normal file
0
src/naliiabot/bot/prompts/__init__.py
Normal file
29
src/naliiabot/bot/prompts/load_prompt.py
Normal file
29
src/naliiabot/bot/prompts/load_prompt.py
Normal 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}"
|
||||
)
|
||||
25
src/naliiabot/bot/prompts/prompts/prompts_template.yaml
Normal file
25
src/naliiabot/bot/prompts/prompts/prompts_template.yaml
Normal 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?
|
||||
"""
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user