MCPcopy Create free account
hub / github.com/VectifyAI/OpenKB / _parse_entities_plan

Function _parse_entities_plan

openkb/agent/compiler.py:656–673  ·  view source on GitHub ↗

Extract the entities group from a plan dict, with graceful fallback. Returns ``{"create": [...], "update": [...], "related": [...]}``. A missing/malformed ``entities`` key yields empty lists, so older or partial LLM responses never raise.

(parsed: object, valid_types: frozenset | None = None)

Source from the content-addressed store, hash-verified

654
655
656def _parse_entities_plan(parsed: object, valid_types: frozenset | None = None) -> dict:
657 """Extract the entities group from a plan dict, with graceful fallback.
658
659 Returns ``{"create": [...], "update": [...], "related": [...]}``. A
660 missing/malformed ``entities`` key yields empty lists, so older or
661 partial LLM responses never raise.
662 """
663 empty = {"create": [], "update": [], "related": []}
664 if not isinstance(parsed, dict):
665 return empty
666 group = parsed.get("entities")
667 if not isinstance(group, dict):
668 return empty
669 return {
670 "create": _filter_entity_items(group.get("create", []), valid_types),
671 "update": _filter_entity_items(group.get("update", []), valid_types),
672 "related": _filter_related_slugs(group.get("related", [])),
673 }
674
675
676# ---------------------------------------------------------------------------

Calls 3

_filter_entity_itemsFunction · 0.85
_filter_related_slugsFunction · 0.85
getMethod · 0.45