917 B
917 B
application/prompts.py
Propósito
Centraliza la construcción de prompts para:
- Extracción reducida limitada a los campos seleccionados.
- Normalización de JSON al esquema canónico.
API pública
PromptBuilder.build(selected_fields, schema, profile_name=None) -> str
Devuelve un JSON de instrucciones para extracción, respetando exactamente las claves solicitadas.
PromptBuilder.build_normalization_messages(profile_name, template, source_json) -> list[dict[str, str]]
Construye los mensajes system y user para solicitar al LLM la normalización al template.
Ejemplo
from application.prompts import PromptBuilder
prompt = PromptBuilder.build(
["radicado", "items/*/codigo"],
{"radicado": "str", "items/*/codigo": "str"},
profile_name="invoice"
)
msgs = PromptBuilder.build_normalization_messages("invoice", {"radicado": None}, {"radicado": "R-1"})