--- id: 0022 title: Consulta del grafo en lenguaje natural via LLM status: pending priority: medium created: 2026-05-01 depends_on: [0001] --- ## Objetivo Input de texto ("personas relacionadas con BancoX que aparecen en mas de 3 documentos") -> LLM traduce a SQL sobre `operations.db` o a un set de filtros sobre el grafo en memoria -> resalta el subgrafo resultante. Complementa el chat de 0001 con un modo "consulta puntual" sin conversacion: input -> resultado destacado, sin chat history. ## Alcance - Tool-use ya disponible en 0001 (`query_entities`, `query_relations`). - Modo "highlight": en lugar de devolver texto, el LLM emite un set de ids -> la UI dibuja el subgrafo con resaltado y oscurece el resto. - Boton "save as filter" -> persiste como vista nombrada (issue 0023). - Historial de queries recientes en un dropdown. - Indicador de query en curso (puede tardar varios segundos). ## Decisiones - ¿Mismo cliente HTTP/Anthropic que 0001 o duplicado? Reusar. - Modelo por defecto el mismo que 0001 (`claude-sonnet-4-6`). - Query schema (que campos ve el LLM) dado por `types_registry` para que aprenda los nombres de campos del proyecto. ## Definicion de hecho - "personas con mas de 5 conexiones" devuelve subgrafo correcto. - "documentos publicados en 2025" funciona si la metadata tiene fechas. - Fallo silencioso (LLM mal interpreta) -> mensaje claro y opcion de reintentar refinando. - Query guardada como filtro reutilizable.