fix: FalkorDB result parsing, embeddings routing, triples query response, graph visualization

- Fix FalkorDB triples query: client v5 returns objects not arrays, use named field access
- Fix embeddings service: align spec names to "embeddings-request"/"embeddings-response"
- Fix client triplesQuery: read `triples` field instead of `response` from backend
- Fix graph page crash: guard against non-array triples, accept literals as entity nodes
- Add seed:demo script for AI industry knowledge graph (254 triples, 64 entities)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
elpresidank 2026-04-10 04:59:36 -05:00
parent 580ee319a3
commit f2b376abef
7 changed files with 837 additions and 31 deletions

View file

@ -154,8 +154,12 @@ function triplesToGraph(triples: Triple[]): {
if (pVal === RDFS_LABEL) continue;
if (pVal === RDF_TYPE) continue;
// Only build edges when both endpoints are IRIs (entity-to-entity)
if (!isIri(t.s) || !isIri(t.o)) continue;
// Build edges for entity-to-entity relationships.
// Include both IRIs and literals as valid entity nodes — plain-name
// knowledge graphs (e.g. seeded demo data) use literals for entities.
const sIsEntity = isIri(t.s) || t.s.t === "l";
const oIsEntity = isIri(t.o) || t.o.t === "l";
if (!sIsEntity || !oIsEntity) continue;
ensureNode(sVal);
ensureNode(oVal);
@ -344,7 +348,7 @@ export default function GraphPage() {
// Build graph
const { data: graphData, labelMap } = useMemo(
() => triplesToGraph(triples),
() => triplesToGraph(Array.isArray(triples) ? triples : []),
[triples],
);