export * from '@llamaindex/core/indices'; import { ContextChatEngineOptions, BaseChatEngine, ContextChatEngine } from '@llamaindex/core/chat-engine'; import { BaseTool, ToolMetadata, LLM, MessageContent } from '@llamaindex/core/llms'; import { BaseQueryEngine, QueryBundle, RetrieverQueryEngine } from '@llamaindex/core/query-engine'; import { BaseSynthesizer } from '@llamaindex/core/response-synthesizers'; import { BaseRetriever } from '@llamaindex/core/retriever'; import * as _llamaindex_core_schema from '@llamaindex/core/schema'; import { Document, BaseNode, NodeWithScore, ModalityType } from '@llamaindex/core/schema'; import { BaseDocumentStore, RefDocInfo } from '@llamaindex/core/storage/doc-store'; import { BaseIndexStore } from '@llamaindex/core/storage/index-store'; import { JSONSchemaType } from 'ajv'; import { VectorStoreByType, VectorStoreQueryMode } from '@llamaindex/core/vector-store'; import { JSONValue } from '@llamaindex/core/global'; import { KeywordTable, IndexList, IndexDict } from '@llamaindex/core/data-structs'; import { BaseNodePostprocessor } from '@llamaindex/core/postprocessor'; import { KeywordExtractPrompt, QueryKeywordExtractPrompt, ChoiceSelectPrompt } from '@llamaindex/core/prompts'; import { BaseEmbedding } from '@llamaindex/core/embeddings'; import { VectorStoreByType as VectorStoreByType$1, MetadataFilters, BaseVectorStore, VectorStoreQueryResult } from '../../vector-store/dist/index.js'; interface StorageContext { docStore: BaseDocumentStore; indexStore: BaseIndexStore; vectorStores: VectorStoreByType; } type QueryEngineToolParams = { queryEngine: BaseQueryEngine; metadata?: ToolMetadata> | undefined; includeSourceNodes?: boolean; }; type QueryEngineParam = { query: string; }; declare class QueryEngineTool implements BaseTool { private queryEngine; metadata: ToolMetadata>; includeSourceNodes: boolean; constructor({ queryEngine, metadata, includeSourceNodes, }: QueryEngineToolParams); call({ query }: QueryEngineParam): Promise; } interface BaseIndexInit { storageContext: StorageContext; docStore: BaseDocumentStore; indexStore?: BaseIndexStore | undefined; indexStruct: T; } /** * Common parameter type for queryTool and asQueryTool */ type QueryToolParams = ({ options: any; retriever?: never; } | { options?: never; retriever?: BaseRetriever; }) & { responseSynthesizer?: BaseSynthesizer; metadata?: ToolMetadata> | undefined; includeSourceNodes?: boolean; }; /** * Indexes are the data structure that we store our nodes and embeddings in so * they can be retrieved for our queries. */ declare abstract class BaseIndex { storageContext: StorageContext; docStore: BaseDocumentStore; indexStore?: BaseIndexStore | undefined; indexStruct: T; constructor(init: BaseIndexInit); /** * Create a new retriever from the index. * @param options */ abstract asRetriever(options?: any): BaseRetriever; /** * Create a new query engine from the index. It will also create a retriever * and response synthezier if they are not provided. * @param options you can supply your own custom Retriever and ResponseSynthesizer */ abstract asQueryEngine(options?: { retriever?: BaseRetriever; responseSynthesizer?: BaseSynthesizer; }): BaseQueryEngine; /** * Create a new chat engine from the index. * @param options */ abstract asChatEngine(options?: Omit): BaseChatEngine; /** * Returns a query tool by calling asQueryEngine. * Either options or retriever can be passed, but not both. * If options are provided, they are passed to generate a retriever. */ asQueryTool(params: QueryToolParams): QueryEngineTool; /** * Insert a document into the index. * @param document */ insert(document: Document): Promise; abstract insertNodes(nodes: BaseNode[]): Promise; abstract deleteRefDoc(refDocId: string, deleteFromDocStore?: boolean): Promise; /** * Alias for asRetriever * @param options */ retriever(options?: any): BaseRetriever; /** * Alias for asQueryEngine * @param options you can supply your own custom Retriever and ResponseSynthesizer */ queryEngine(options?: { retriever?: BaseRetriever; responseSynthesizer?: BaseSynthesizer; }): BaseQueryEngine; /** * Alias for asQueryTool * Either options or retriever can be passed, but not both. * If options are provided, they are passed to generate a retriever. */ queryTool(params: QueryToolParams): QueryEngineTool; } declare function expandTokensWithSubtokens(tokens: Set): Set; declare function extractKeywordsGivenResponse(response: string, startToken?: string, lowercase?: boolean): Set; declare function simpleExtractKeywords(textChunk: string, maxKeywords?: number): Set; declare function rakeExtractKeywords(textChunk: string, maxKeywords?: number): Set; interface KeywordIndexOptions { nodes?: BaseNode[]; indexStruct?: KeywordTable; indexId?: string; llm?: LLM; storageContext?: StorageContext; } declare enum KeywordTableRetrieverMode { DEFAULT = "DEFAULT", SIMPLE = "SIMPLE", RAKE = "RAKE" } declare abstract class BaseKeywordTableRetriever extends BaseRetriever { protected index: KeywordTableIndex; protected indexStruct: KeywordTable; protected docstore: BaseDocumentStore; protected llm: LLM; protected maxKeywordsPerQuery: number; protected numChunksPerQuery: number; protected keywordExtractTemplate: KeywordExtractPrompt; protected queryKeywordExtractTemplate: QueryKeywordExtractPrompt; constructor({ index, keywordExtractTemplate, queryKeywordExtractTemplate, maxKeywordsPerQuery, numChunksPerQuery, }: { index: KeywordTableIndex; keywordExtractTemplate?: KeywordExtractPrompt; queryKeywordExtractTemplate?: QueryKeywordExtractPrompt; maxKeywordsPerQuery: number; numChunksPerQuery: number; }); abstract getKeywords(query: string): Promise; _retrieve(query: QueryBundle): Promise; } declare class KeywordTableLLMRetriever extends BaseKeywordTableRetriever { getKeywords(query: string): Promise; } declare class KeywordTableSimpleRetriever extends BaseKeywordTableRetriever { getKeywords(query: string): Promise; } declare class KeywordTableRAKERetriever extends BaseKeywordTableRetriever { getKeywords(query: string): Promise; } type KeywordTableIndexChatEngineOptions = { retriever?: BaseRetriever; } & Omit; /** * The KeywordTableIndex, an index that extracts keywords from each Node and builds a mapping from each keyword to the corresponding Nodes of that keyword. */ declare class KeywordTableIndex extends BaseIndex { constructor(init: BaseIndexInit); static init(options: KeywordIndexOptions): Promise; asRetriever(options?: any): BaseRetriever; asQueryEngine(options?: { retriever?: BaseRetriever; responseSynthesizer?: BaseSynthesizer; preFilters?: unknown; nodePostprocessors?: BaseNodePostprocessor[]; }): BaseQueryEngine; asChatEngine(options?: KeywordTableIndexChatEngineOptions): BaseChatEngine; static extractKeywords(text: string): Promise>; /** * High level API: split documents, get keywords, and build index. * @param documents * @param args * @param args.storageContext * @returns */ static fromDocuments(documents: Document[], args?: { storageContext?: StorageContext; }): Promise; /** * Get keywords for nodes and place them into the index. * @param nodes * @param docStore * @returns */ static buildIndexFromNodes(nodes: BaseNode[], docStore: BaseDocumentStore): Promise; insertNodes(nodes: BaseNode[]): Promise; deleteNode(nodeId: string): void; deleteNodes(nodeIds: string[], deleteFromDocStore: boolean): Promise; deleteRefDoc(refDocId: string, deleteFromDocStore?: boolean): Promise; } type NodeFormatterFunction = (summaryNodes: BaseNode[]) => string; declare const defaultFormatNodeBatchFn: NodeFormatterFunction; type ChoiceSelectParseResult = { [docNumber: number]: number; }; type ChoiceSelectParserFunction = (answer: string, numChoices: number, raiseErr?: boolean) => ChoiceSelectParseResult; declare const defaultParseChoiceSelectAnswerFn: ChoiceSelectParserFunction; declare enum SummaryRetrieverMode { DEFAULT = "default", LLM = "llm" } type SummaryIndexChatEngineOptions = { retriever?: BaseRetriever; mode?: SummaryRetrieverMode; } & Omit; interface SummaryIndexOptions { nodes?: BaseNode[] | undefined; indexStruct?: IndexList | undefined; indexId?: string | undefined; storageContext?: StorageContext | undefined; } /** * A SummaryIndex keeps nodes in a sequential order for use with summarization. */ declare class SummaryIndex extends BaseIndex { constructor(init: BaseIndexInit); static init(options: SummaryIndexOptions): Promise; static fromDocuments(documents: Document[], args?: { storageContext?: StorageContext | undefined; }): Promise; asRetriever(options?: { mode: SummaryRetrieverMode; }): BaseRetriever; asQueryEngine(options?: { retriever?: BaseRetriever; responseSynthesizer?: BaseSynthesizer; preFilters?: unknown; nodePostprocessors?: BaseNodePostprocessor[]; }): RetrieverQueryEngine; asChatEngine(options?: SummaryIndexChatEngineOptions): BaseChatEngine; static buildIndexFromNodes(nodes: BaseNode[], docStore: BaseDocumentStore, indexStruct?: IndexList): Promise; insertNodes(nodes: BaseNode[]): Promise; deleteRefDoc(refDocId: string, deleteFromDocStore?: boolean): Promise; deleteNodes(nodeIds: string[], deleteFromDocStore: boolean): Promise; getRefDocInfo(): Promise>; } type ListIndex = SummaryIndex; type ListRetrieverMode = SummaryRetrieverMode; /** * Simple retriever for SummaryIndex that returns all nodes */ declare class SummaryIndexRetriever extends BaseRetriever { index: SummaryIndex; constructor(index: SummaryIndex); _retrieve(queryBundle: QueryBundle): Promise; } /** * LLM retriever for SummaryIndex which lets you select the most relevant chunks. */ declare class SummaryIndexLLMRetriever extends BaseRetriever { index: SummaryIndex; choiceSelectPrompt: ChoiceSelectPrompt; choiceBatchSize: number; formatNodeBatchFn: NodeFormatterFunction; parseChoiceSelectAnswerFn: ChoiceSelectParserFunction; constructor(index: SummaryIndex, choiceSelectPrompt?: ChoiceSelectPrompt, choiceBatchSize?: number, formatNodeBatchFn?: NodeFormatterFunction, parseChoiceSelectAnswerFn?: ChoiceSelectParserFunction); _retrieve(query: QueryBundle): Promise; } type ListIndexRetriever = SummaryIndexRetriever; type ListIndexLLMRetriever = SummaryIndexLLMRetriever; /** * Document de-deduplication strategies work by comparing the hashes or ids stored in the document store. * They require a document store to be set which must be persisted across pipeline runs. */ declare enum DocStoreStrategy { UPSERTS = "upserts", DUPLICATES_ONLY = "duplicates_only", UPSERTS_AND_DELETE = "upserts_and_delete", NONE = "none" } interface IndexStructOptions { indexStruct?: IndexDict | undefined; indexId?: string | undefined; } interface VectorIndexOptions extends IndexStructOptions { nodes?: BaseNode[] | undefined; storageContext?: StorageContext | undefined; vectorStores?: VectorStoreByType$1 | undefined; logProgress?: boolean | undefined; progressCallback?: ((progress: number, total: number) => void) | undefined; } interface VectorIndexConstructorProps extends BaseIndexInit { indexStore: BaseIndexStore; vectorStores?: VectorStoreByType$1 | undefined; } type VectorIndexChatEngineOptions = { retriever?: BaseRetriever; similarityTopK?: number; preFilters?: MetadataFilters; customParams?: unknown; } & Omit; /** * The VectorStoreIndex, an index that stores the nodes only according to their vector embeddings. */ declare class VectorStoreIndex extends BaseIndex { indexStore: BaseIndexStore; embedModel?: BaseEmbedding | undefined; vectorStores: VectorStoreByType$1; private constructor(); /** * The async init function creates a new VectorStoreIndex. * @param options * @returns */ static init(options: VectorIndexOptions): Promise; private static setupIndexStructFromStorage; /** * Calculates the embeddings for the given nodes. * * @param nodes - An array of BaseNode objects representing the nodes for which embeddings are to be calculated. * @param {Object} [options] - An optional object containing additional parameters. * @param {boolean} [options.logProgress] - A boolean indicating whether to log progress to the console (useful for debugging). */ getNodeEmbeddingResults(nodes: BaseNode[], options?: { logProgress?: boolean | undefined; progressCallback?: ((progress: number, total: number) => void) | undefined; }): Promise; /** * Get embeddings for nodes and place them into the index. * @param nodes * @returns */ buildIndexFromNodes(nodes: BaseNode[], options?: { logProgress?: boolean | undefined; progressCallback?: ((progress: number, total: number) => void) | undefined; }): Promise; /** * High level API: split documents, get embeddings, and build index. * @param documents * @param args * @returns */ static fromDocuments(documents: Document[], args?: VectorIndexOptions & { docStoreStrategy?: DocStoreStrategy; }): Promise; static fromVectorStores(vectorStores: VectorStoreByType$1): Promise; static fromVectorStore(vectorStore: BaseVectorStore): Promise; asRetriever(options?: OmitIndex): VectorIndexRetriever; /** * Create a RetrieverQueryEngine. * similarityTopK is only used if no existing retriever is provided. */ asQueryEngine(options?: { retriever?: BaseRetriever; responseSynthesizer?: BaseSynthesizer; preFilters?: MetadataFilters; customParams?: unknown; nodePostprocessors?: BaseNodePostprocessor[]; similarityTopK?: number; }): RetrieverQueryEngine; /** * Convert the index to a chat engine. * @param options The options for creating the chat engine * @returns A ContextChatEngine that uses the index's retriever to get context for each query */ asChatEngine(options?: VectorIndexChatEngineOptions): ContextChatEngine; protected insertNodesToStore(newIds: string[], nodes: BaseNode[], vectorStore: BaseVectorStore): Promise; insertNodes(nodes: BaseNode[], options?: { logProgress?: boolean | undefined; progressCallback?: ((progress: number, total: number) => void) | undefined; }): Promise; deleteRefDoc(refDocId: string, deleteFromDocStore?: boolean): Promise; protected deleteRefDocFromStore(vectorStore: BaseVectorStore, refDocId: string): Promise; } /** * VectorIndexRetriever retrieves nodes from a VectorIndex. */ type TopKMap = { [P in ModalityType]: number; }; type OmitIndex = T extends { index: any; } ? Omit : never; type VectorIndexRetrieverOptions = { index: VectorStoreIndex; filters?: MetadataFilters | undefined; mode?: VectorStoreQueryMode; customParams?: unknown | undefined; } & ({ topK?: TopKMap | undefined; } | { similarityTopK?: number | undefined; }); declare class VectorIndexRetriever extends BaseRetriever { index: VectorStoreIndex; topK: TopKMap; filters?: MetadataFilters | undefined; queryMode?: VectorStoreQueryMode | undefined; customParams?: unknown | undefined; constructor(options: VectorIndexRetrieverOptions); /** * @deprecated, pass similarityTopK or topK in constructor instead or directly modify topK */ set similarityTopK(similarityTopK: number); _retrieve(params: QueryBundle): Promise; protected retrieveQuery(query: MessageContent, type: ModalityType, vectorStore: BaseVectorStore, filters?: MetadataFilters, customParams?: unknown): Promise; protected buildNodeListFromQueryResult(result: VectorStoreQueryResult): NodeWithScore<_llamaindex_core_schema.Metadata>[]; } export { BaseIndex, KeywordTableIndex, KeywordTableLLMRetriever, KeywordTableRAKERetriever, KeywordTableRetrieverMode, KeywordTableSimpleRetriever, SummaryIndex, SummaryIndexLLMRetriever, SummaryIndexRetriever, SummaryRetrieverMode, VectorIndexRetriever, VectorStoreIndex, defaultFormatNodeBatchFn, defaultParseChoiceSelectAnswerFn, expandTokensWithSubtokens, extractKeywordsGivenResponse, rakeExtractKeywords, simpleExtractKeywords }; export type { BaseIndexInit, ChoiceSelectParseResult, ChoiceSelectParserFunction, KeywordIndexOptions, KeywordTableIndexChatEngineOptions, ListIndex, ListIndexLLMRetriever, ListIndexRetriever, ListRetrieverMode, NodeFormatterFunction, QueryToolParams, SummaryIndexChatEngineOptions, SummaryIndexOptions, VectorIndexChatEngineOptions, VectorIndexConstructorProps, VectorIndexOptions, VectorIndexRetrieverOptions };