import _m0 from 'protobufjs/minimal'; import { ExpirationConfig } from '../../../../../../yandex/cloud/ai/common/common'; import { ChunkingStrategy, NormalizationStrategy, CombinationStrategy, NgramTokenizer, StandardTokenizer, StandardAnalyzer, YandexLemmerAnalyzer } from '../../../../../../yandex/cloud/ai/assistants/v1/searchindex/common'; export declare const protobufPackage = "yandex.cloud.ai.assistants.v1.searchindex"; /** Represents a search index used to store and query data, either using traditional keyword-based text search or vector-based search mechanisms. */ export interface SearchIndex { /** Unique identifier of the search index. */ id: string; /** ID of the folder that the search index belongs to. */ folderId: string; /** Name of the search index. */ name: string; /** Description of the search index. */ description: string; /** Identifier of the subject who created this search index. */ createdBy: string; /** Timestamp representing when the search index was created. */ createdAt?: Date; /** Identifier of the subject who last updated this search index. */ updatedBy: string; /** Timestamp representing the last time this search index was updated. */ updatedAt?: Date; /** Configuration for the expiration of the search index, defining when and how the search index will expire. */ expirationConfig?: ExpirationConfig; /** Timestamp representing when the search index will expire. */ expiresAt?: Date; /** Set of key-value pairs that can be used to organize and categorize the search index. */ labels: { [key: string]: string; }; /** * Keyword-based text search index configuration. * This type of index is used for traditional text search, where documents are indexed based on their keywords. */ textSearchIndex?: TextSearchIndex | undefined; /** * Vector-based search index configuration. * This type is used for vector search, where documents are indexed using vector embeddings. */ vectorSearchIndex?: VectorSearchIndex | undefined; /** * Hybrid (vector-based + keyword-based) search index configuration * This type is used for hybrid search, where documents are indexed using both keyword-based and vector-based search mechanisms. */ hybridSearchIndex?: HybridSearchIndex | undefined; } export interface SearchIndex_LabelsEntry { key: string; value: string; } /** Defines the configuration for a traditional keyword-based text search index. */ export interface TextSearchIndex { /** * Chunking strategy used to split text into smaller chunks before indexing. * In the case of text search, tokens are individual text characters. */ chunkingStrategy?: ChunkingStrategy; /** * Tokenizer that generates n-grams. * * @deprecated */ ngramTokenizer?: NgramTokenizer | undefined; /** Tokenizer that generates words. */ standardTokenizer?: StandardTokenizer | undefined; /** Standard analyzer that performs common text processing operations to normalize text. */ standardAnalyzer?: StandardAnalyzer | undefined; /** * Specialized analyzer that uses Yandex's lemmatization technology, * particularly effective for Russian and other Slavic languages. */ yandexLemmerAnalyzer?: YandexLemmerAnalyzer | undefined; } /** Defines the configuration for a vector-based search index. This type uses embeddings to represent documents and queries. */ export interface VectorSearchIndex { /** The [ID of the model](/docs/foundation-models/concepts/embeddings) to be used for obtaining document text embeddings. */ docEmbedderUri: string; /** The [ID of the model](/docs/foundation-models/concepts/embeddings) to be used for obtaining query text embeddings. */ queryEmbedderUri: string; /** * Chunking strategy used to split text into smaller chunks before indexing. * In the case of vector search, tokens are produced by the tokenizer from the embedding model. */ chunkingStrategy?: ChunkingStrategy; } /** Defines the configuration for a hybrid (vector-based + keyword-based) search index. This type uses both embeddings and keyword-based search to represent documents and queries. */ export interface HybridSearchIndex { /** Configuration for a traditional keyword-based text search index. */ textSearchIndex?: TextSearchIndex; /** Configuration for a vector-based search index. */ vectorSearchIndex?: VectorSearchIndex; /** * Common chunking strategy that applies to both text and vector search indexes. * If provided, it overrides the individual chunking strategies in both `text_search_index` and `vector_search_index`. * In this case, both text and vector search will use token-based chunking, where tokens are produced by the tokenizer of the embedding model. */ chunkingStrategy?: ChunkingStrategy; /** Normalization strategy for relevance scores from different indices. Default is MIN_MAX_STRATEGY */ normalizationStrategy: NormalizationStrategy; /** Combination strategy for merging rankings from different indices. Default is arithmetic mean */ combinationStrategy?: CombinationStrategy; } export declare const SearchIndex: { encode(message: SearchIndex, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): SearchIndex; fromJSON(object: any): SearchIndex; toJSON(message: SearchIndex): unknown; fromPartial, never>) | undefined; expiresAt?: Date | undefined; labels?: ({ [x: string]: string | undefined; } & { [x: string]: string | undefined; } & Record, never>) | undefined; textSearchIndex?: ({ chunkingStrategy?: { staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } | undefined; ngramTokenizer?: { minGram?: number | undefined; maxGram?: number | undefined; } | undefined; standardTokenizer?: {} | undefined; standardAnalyzer?: {} | undefined; yandexLemmerAnalyzer?: {} | undefined; } & { chunkingStrategy?: ({ staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } & { staticStrategy?: ({ maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; ngramTokenizer?: ({ minGram?: number | undefined; maxGram?: number | undefined; } & { minGram?: number | undefined; maxGram?: number | undefined; } & Record, never>) | undefined; standardTokenizer?: ({} & {} & Record, never>) | undefined; standardAnalyzer?: ({} & {} & Record, never>) | undefined; yandexLemmerAnalyzer?: ({} & {} & Record, never>) | undefined; } & Record, never>) | undefined; vectorSearchIndex?: ({ docEmbedderUri?: string | undefined; queryEmbedderUri?: string | undefined; chunkingStrategy?: { staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } | undefined; } & { docEmbedderUri?: string | undefined; queryEmbedderUri?: string | undefined; chunkingStrategy?: ({ staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } & { staticStrategy?: ({ maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; hybridSearchIndex?: ({ textSearchIndex?: { chunkingStrategy?: { staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } | undefined; ngramTokenizer?: { minGram?: number | undefined; maxGram?: number | undefined; } | undefined; standardTokenizer?: {} | undefined; standardAnalyzer?: {} | undefined; yandexLemmerAnalyzer?: {} | undefined; } | undefined; vectorSearchIndex?: { docEmbedderUri?: string | undefined; queryEmbedderUri?: string | undefined; chunkingStrategy?: { staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } | undefined; } | undefined; chunkingStrategy?: { staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } | undefined; normalizationStrategy?: NormalizationStrategy | undefined; combinationStrategy?: { meanCombination?: { meanEvaluationTechnique?: import("../../../../../../yandex/cloud/ai/assistants/v1/searchindex/common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined; weights?: number[] | undefined; } | undefined; rrfCombination?: { k?: number | undefined; } | undefined; } | undefined; } & { textSearchIndex?: ({ chunkingStrategy?: { staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } | undefined; ngramTokenizer?: { minGram?: number | undefined; maxGram?: number | undefined; } | undefined; standardTokenizer?: {} | undefined; standardAnalyzer?: {} | undefined; yandexLemmerAnalyzer?: {} | undefined; } & { chunkingStrategy?: ({ staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } & { staticStrategy?: ({ maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; ngramTokenizer?: ({ minGram?: number | undefined; maxGram?: number | undefined; } & { minGram?: number | undefined; maxGram?: number | undefined; } & Record, never>) | undefined; standardTokenizer?: ({} & {} & Record, never>) | undefined; standardAnalyzer?: ({} & {} & Record, never>) | undefined; yandexLemmerAnalyzer?: ({} & {} & Record, never>) | undefined; } & Record, never>) | undefined; vectorSearchIndex?: ({ docEmbedderUri?: string | undefined; queryEmbedderUri?: string | undefined; chunkingStrategy?: { staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } | undefined; } & { docEmbedderUri?: string | undefined; queryEmbedderUri?: string | undefined; chunkingStrategy?: ({ staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } & { staticStrategy?: ({ maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; chunkingStrategy?: ({ staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } & { staticStrategy?: ({ maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; normalizationStrategy?: NormalizationStrategy | undefined; combinationStrategy?: ({ meanCombination?: { meanEvaluationTechnique?: import("../../../../../../yandex/cloud/ai/assistants/v1/searchindex/common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined; weights?: number[] | undefined; } | undefined; rrfCombination?: { k?: number | undefined; } | undefined; } & { meanCombination?: ({ meanEvaluationTechnique?: import("../../../../../../yandex/cloud/ai/assistants/v1/searchindex/common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined; weights?: number[] | undefined; } & { meanEvaluationTechnique?: import("../../../../../../yandex/cloud/ai/assistants/v1/searchindex/common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined; weights?: (number[] & number[] & Record, never>) | undefined; } & Record, never>) | undefined; rrfCombination?: ({ k?: number | undefined; } & { k?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): SearchIndex; }; export declare const SearchIndex_LabelsEntry: { encode(message: SearchIndex_LabelsEntry, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): SearchIndex_LabelsEntry; fromJSON(object: any): SearchIndex_LabelsEntry; toJSON(message: SearchIndex_LabelsEntry): unknown; fromPartial, never>>(object: I): SearchIndex_LabelsEntry; }; export declare const TextSearchIndex: { encode(message: TextSearchIndex, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TextSearchIndex; fromJSON(object: any): TextSearchIndex; toJSON(message: TextSearchIndex): unknown; fromPartial, never>) | undefined; } & Record, never>) | undefined; ngramTokenizer?: ({ minGram?: number | undefined; maxGram?: number | undefined; } & { minGram?: number | undefined; maxGram?: number | undefined; } & Record, never>) | undefined; standardTokenizer?: ({} & {} & Record, never>) | undefined; standardAnalyzer?: ({} & {} & Record, never>) | undefined; yandexLemmerAnalyzer?: ({} & {} & Record, never>) | undefined; } & Record, never>>(object: I): TextSearchIndex; }; export declare const VectorSearchIndex: { encode(message: VectorSearchIndex, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): VectorSearchIndex; fromJSON(object: any): VectorSearchIndex; toJSON(message: VectorSearchIndex): unknown; fromPartial, never>) | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): VectorSearchIndex; }; export declare const HybridSearchIndex: { encode(message: HybridSearchIndex, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): HybridSearchIndex; fromJSON(object: any): HybridSearchIndex; toJSON(message: HybridSearchIndex): unknown; fromPartial, never>) | undefined; } & Record, never>) | undefined; ngramTokenizer?: ({ minGram?: number | undefined; maxGram?: number | undefined; } & { minGram?: number | undefined; maxGram?: number | undefined; } & Record, never>) | undefined; standardTokenizer?: ({} & {} & Record, never>) | undefined; standardAnalyzer?: ({} & {} & Record, never>) | undefined; yandexLemmerAnalyzer?: ({} & {} & Record, never>) | undefined; } & Record, never>) | undefined; vectorSearchIndex?: ({ docEmbedderUri?: string | undefined; queryEmbedderUri?: string | undefined; chunkingStrategy?: { staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } | undefined; } & { docEmbedderUri?: string | undefined; queryEmbedderUri?: string | undefined; chunkingStrategy?: ({ staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } & { staticStrategy?: ({ maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; chunkingStrategy?: ({ staticStrategy?: { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } | undefined; } & { staticStrategy?: ({ maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & { maxChunkSizeTokens?: number | undefined; chunkOverlapTokens?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; normalizationStrategy?: NormalizationStrategy | undefined; combinationStrategy?: ({ meanCombination?: { meanEvaluationTechnique?: import("../../../../../../yandex/cloud/ai/assistants/v1/searchindex/common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined; weights?: number[] | undefined; } | undefined; rrfCombination?: { k?: number | undefined; } | undefined; } & { meanCombination?: ({ meanEvaluationTechnique?: import("../../../../../../yandex/cloud/ai/assistants/v1/searchindex/common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined; weights?: number[] | undefined; } & { meanEvaluationTechnique?: import("../../../../../../yandex/cloud/ai/assistants/v1/searchindex/common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined; weights?: (number[] & number[] & Record, never>) | undefined; } & Record, never>) | undefined; rrfCombination?: ({ k?: number | undefined; } & { k?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): HybridSearchIndex; }; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & Record>, never>; export {};