UNPKG

graphzep

Version:

GraphZep: A temporal knowledge graph memory system for AI agents based on the Zep paper

64 lines (63 loc) 2.04 kB
import { GraphDriver, EpisodicNode, EpisodeType } from './types/index.js'; import { Node } from './core/nodes.js'; import { Edge } from './core/edges.js'; import { BaseLLMClient } from './llm/client.js'; import { BaseEmbedderClient } from './embedders/client.js'; export interface GraphzepConfig { driver: GraphDriver; llmClient: BaseLLMClient; embedder: BaseEmbedderClient; groupId?: string; ensureAscii?: boolean; } export interface AddEpisodeParams { content: string; episodeType?: EpisodeType; referenceId?: string; groupId?: string; metadata?: Record<string, any>; } export interface SearchParams { query: string; groupId?: string; limit?: number; searchType?: 'semantic' | 'keyword' | 'hybrid'; nodeTypes?: ('entity' | 'episodic' | 'community')[]; } export interface ExtractedEntity { name: string; entityType: string; summary: string; metadata?: Record<string, any>; } export interface ExtractedRelation { sourceName: string; targetName: string; relationName: string; metadata?: Record<string, any>; } export declare class Graphzep { private driver; private llmClient; private embedder; private defaultGroupId; private ensureAscii; constructor(config: GraphzepConfig); addEpisode(params: AddEpisodeParams): Promise<EpisodicNode>; private extractEntitiesAndRelations; private processExtractedEntities; private findExistingEntity; private linkEpisodeToEntities; private processExtractedRelations; private findExistingRelation; search(params: SearchParams): Promise<Node[]>; getNode(uuid: string): Promise<Node | null>; getEdge(uuid: string): Promise<Edge | null>; deleteNode(uuid: string): Promise<void>; deleteEdge(uuid: string): Promise<void>; close(): Promise<void>; executeQuery<T = any>(query: string, params?: Record<string, any>): Promise<T>; createIndexes(): Promise<void>; clearDatabase(): Promise<void>; testConnection(): Promise<void>; }