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
|
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.factories.llm_factory import LLMFactory
|
||||||
|
from src.naliiabot.bot.prompts.load_prompt import get_prompt_template
|
||||||
|
|
||||||
MODEL_NAME = os.getenv("LLM_MODEL", "anthropic")
|
MODEL_NAME = os.getenv("LLM_MODEL", "anthropic")
|
||||||
|
|
||||||
@@ -12,5 +13,9 @@ def get_agent():
|
|||||||
Returns:
|
Returns:
|
||||||
Agent: An instance of the Agent class.
|
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()
|
model = LLMFactory(MODEL_NAME).get_model()
|
||||||
return Agent(model=model)
|
return Agent(model=model)
|
||||||
Reference in New Issue
Block a user