From 156bfb2e8df996b2e0e0da9aaea144f537b086cc Mon Sep 17 00:00:00 2001 From: Santosh Bhavani Date: Sun, 19 Oct 2025 19:57:13 -0700 Subject: [PATCH] feat(api): update metrics route for multi-database support - Update metrics endpoint to use getGraphDbService utility - Support both ArangoDB and Neo4j database types - Initialize graph database based on selected type - Retrieve graph stats from the active database --- .../assets/frontend/app/api/metrics/route.ts | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/nvidia/txt2kg/assets/frontend/app/api/metrics/route.ts b/nvidia/txt2kg/assets/frontend/app/api/metrics/route.ts index 8f024c2..dc4f343 100644 --- a/nvidia/txt2kg/assets/frontend/app/api/metrics/route.ts +++ b/nvidia/txt2kg/assets/frontend/app/api/metrics/route.ts @@ -1,7 +1,7 @@ import { NextRequest, NextResponse } from 'next/server'; import remoteBackendInstance from '@/lib/remote-backend'; -import { Neo4jService } from '@/lib/neo4j'; -import neo4jService from '@/lib/neo4j'; +import { getGraphDbService } from '@/lib/graph-db-util'; +import { getGraphDbType } from '../settings/route'; import { PineconeService } from '@/lib/pinecone'; import RAGService from '@/lib/rag'; import queryLoggerService, { QueryLogSummary } from '@/lib/query-logger'; @@ -11,16 +11,31 @@ import queryLoggerService, { QueryLogSummary } from '@/lib/query-logger'; */ export async function GET(request: NextRequest) { try { - // Initialize services - const neo4j = Neo4jService.getInstance(); + // Initialize services with the correct graph database type + const graphDbType = getGraphDbType(); + const graphDbService = getGraphDbService(graphDbType); const pineconeService = PineconeService.getInstance(); - if (!neo4j.isInitialized()) { - neo4j.initialize(); + // Initialize graph database if needed + if (!graphDbService.isInitialized()) { + if (graphDbType === 'arangodb') { + await graphDbService.initialize( + process.env.ARANGODB_URL, + process.env.ARANGODB_DB, + process.env.ARANGODB_USER, + process.env.ARANGODB_PASSWORD + ); + } else if (graphDbType === 'neo4j') { + graphDbService.initialize( + process.env.NEO4J_URI, + process.env.NEO4J_USER || process.env.NEO4J_USERNAME, + process.env.NEO4J_PASSWORD + ); + } } - // Get graph stats from Neo4j - const graphData = await neo4j.getGraphData(); + // Get graph stats from the active graph database + const graphData = await graphDbService.getGraphData(); // Get unique entities (nodes) const uniqueEntities = new Set();