UNPKG

@roadiehq/rag-ai-node

Version:

65 lines (61 loc) 3.22 kB
import { Embeddings } from '@langchain/core/embeddings'; import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api'; import { BaseChatModel } from '@langchain/core/language_models/chat_models'; import { BaseLLM } from '@langchain/core/language_models/llms'; type EmbeddingsSource = 'catalog' | 'tech-docs' | 'all'; type EmbeddingDocMetadata = Partial<{ source: EmbeddingsSource; [key: string]: string; }>; type EntityFilterShape = Record<string, string | symbol | (string | symbol)[]>[] | Record<string, string | symbol | (string | symbol)[]> | undefined; type RoadieEmbedding = { metadata: EmbeddingDocMetadata; content: string; vector: number[]; id: string; }; type EmbeddingDoc = { metadata: EmbeddingDocMetadata; content: string; }; interface AugmentationIndexer { vectorStore: RoadieVectorStore; createEmbeddings(source: EmbeddingsSource, filter?: EntityFilterShape): Promise<number>; deleteEmbeddings(source: EmbeddingsSource, filter: EntityFilterShape): Promise<void>; } interface RetrievalRouter { determineRetriever(query: string, source: EmbeddingsSource): Promise<AugmentationRetriever[]>; } interface AugmentationRetriever { id: string; retrieve(query: string, source: EmbeddingsSource, filter?: EntityFilterShape): Promise<EmbeddingDoc[]>; } interface AugmentationPostProcessor { process(query: string, source: EmbeddingsSource, embeddingDocs: Map<string, EmbeddingDoc[]>): Promise<EmbeddingDoc[]>; } interface RetrievalPipeline { retrieveAugmentationContext(query: string, source: EmbeddingsSource, filter?: EntityFilterShape): Promise<EmbeddingDoc[]>; } type DeletionParams = { ids?: string[]; filter?: EmbeddingDocMetadata; }; interface RoadieVectorStore { connectEmbeddings(embeddings: Embeddings): void; addDocuments(docs: EmbeddingDoc[]): Promise<void>; deleteDocuments(deletionParams: DeletionParams): Promise<void>; similaritySearch(query: string, filter?: EmbeddingDocMetadata, amount?: number): Promise<EmbeddingDoc[]>; } interface AugmentationIndexerExtensionPoint { setAugmentationIndexer(augmentationIndexer: AugmentationIndexer): void; } declare const augmentationIndexerExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<AugmentationIndexerExtensionPoint>; interface RetrievalPipelineExtensionPoint { setRetrievalPipeline(retrievalPipeline: RetrievalPipeline): void; } declare const retrievalPipelineExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<RetrievalPipelineExtensionPoint>; interface ModelExtensionPoint { setBaseLLM(baseLLM: BaseLLM | BaseChatModel): void; } declare const modelExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<ModelExtensionPoint>; export { type AugmentationIndexer, type AugmentationIndexerExtensionPoint, type AugmentationPostProcessor, type AugmentationRetriever, type EmbeddingDoc, type EmbeddingDocMetadata, type EmbeddingsSource, type EntityFilterShape, type ModelExtensionPoint, type RetrievalPipeline, type RetrievalPipelineExtensionPoint, type RetrievalRouter, type RoadieEmbedding, type RoadieVectorStore, augmentationIndexerExtensionPoint, modelExtensionPoint, retrievalPipelineExtensionPoint };