Interface IGraphRAGEngine

interface IGraphRAGEngine {
    initialize(config): Promise<void>;
    ingestDocuments(documents): Promise<{
        entitiesExtracted: number;
        relationshipsExtracted: number;
        communitiesDetected: number;
        documentsProcessed: number;
    }>;
    removeDocuments(documentIds): Promise<{
        documentsRemoved: number;
        communitiesDetected: number;
    }>;
    globalSearch(query, options?): Promise<GlobalSearchResult>;
    localSearch(query, options?): Promise<LocalSearchResult>;
    getEntities(options?): Promise<GraphEntity[]>;
    getRelationships(entityId): Promise<GraphRelationship[]>;
    getCommunities(level?): Promise<GraphCommunity[]>;
    getStats(): Promise<{
        totalEntities: number;
        totalRelationships: number;
        totalCommunities: number;
        communityLevels: number;
        documentsIngested: number;
    }>;
    clear(): Promise<void>;
    shutdown(): Promise<void>;
}

Implemented by

Methods

  • Ingest documents: extract entities/relationships, build graph, detect communities, generate summaries.

    Parameters

    • documents: {
          id: string;
          content: string;
          metadata?: Record<string, MetadataValue>;
      }[]

    Returns Promise<{
        entitiesExtracted: number;
        relationshipsExtracted: number;
        communitiesDetected: number;
        documentsProcessed: number;
    }>

  • Remove one or more previously-ingested documents from the graph.

    This subtracts the document's entity/relationship contributions and recomputes communities. It is used to keep GraphRAG in sync when a source document is deleted or moved out of indexed categories.

    Parameters

    • documentIds: string[]

    Returns Promise<{
        documentsRemoved: number;
        communitiesDetected: number;
    }>

  • Get statistics

    Returns Promise<{
        totalEntities: number;
        totalRelationships: number;
        totalCommunities: number;
        communityLevels: number;
        documentsIngested: number;
    }>