Files
ontology_graph/lib/build_entity_schema_prompt.py
T
fn-registry agent 40bea81603 chore: initial sync
2026-04-28 22:13:08 +02:00

44 lines
1.5 KiB
Python

"""Genera la seccion del system prompt que describe los entity types disponibles para extraccion."""
def build_entity_schema_prompt(entity_presets: list[dict]) -> str:
"""Genera texto legible para el LLM describiendo los entity types disponibles.
Formatea los presets del registry en una seccion del system prompt que indica
al LLM que tipos de entidades puede extraer y que atributos tiene cada uno.
Args:
entity_presets: Lista de presets con campos 'label', 'type_ref' y
opcionalmente 'metadata_fields'. Ejemplo:
[{"type_ref": "osint_person_go_cybersecurity",
"label": "Person",
"metadata_fields": ["full_name", "alias"]}]
Returns:
String formateado con la seccion del prompt. Retorna string vacio si
la lista de presets esta vacia.
"""
if not entity_presets:
return ""
lines = ["Entity types available for extraction:", ""]
for i, preset in enumerate(entity_presets, start=1):
label = preset.get("label", "Unknown")
type_ref = preset.get("type_ref", "")
metadata_fields = preset.get("metadata_fields", [])
lines.append(f"{i}. {label} (type_ref: {type_ref})")
if metadata_fields:
attrs = ", ".join(metadata_fields)
lines.append(f" Attributes: {attrs}")
lines.append("")
# Remove trailing blank line
if lines and lines[-1] == "":
lines.pop()
return "\n".join(lines)