agsamantha/node_modules/@langchain/community/dist/retrievers/supabase.d.ts
2024-10-02 15:15:21 -05:00

82 lines
3.9 KiB
TypeScript

import type { SupabaseClient } from "@supabase/supabase-js";
import type { EmbeddingsInterface } from "@langchain/core/embeddings";
import { Document } from "@langchain/core/documents";
import { BaseRetriever, type BaseRetrieverInput } from "@langchain/core/retrievers";
import { CallbackManagerForRetrieverRun, Callbacks } from "@langchain/core/callbacks/manager";
type SearchResult = [Document, number, number];
export interface SupabaseLibArgs extends BaseRetrieverInput {
client: SupabaseClient;
/**
* The table name on Supabase. Defaults to "documents".
*/
tableName?: string;
/**
* The name of the Similarity search function on Supabase. Defaults to "match_documents".
*/
similarityQueryName?: string;
/**
* The name of the Keyword search function on Supabase. Defaults to "kw_match_documents".
*/
keywordQueryName?: string;
/**
* The number of documents to return from the similarity search. Defaults to 2.
*/
similarityK?: number;
/**
* The number of documents to return from the keyword search. Defaults to 2.
*/
keywordK?: number;
}
export interface SupabaseHybridSearchParams {
query: string;
similarityK: number;
keywordK: number;
}
/**
* Class for performing hybrid search operations on a Supabase database.
* It extends the `BaseRetriever` class and implements methods for
* similarity search, keyword search, and hybrid search.
*/
export declare class SupabaseHybridSearch extends BaseRetriever {
static lc_name(): string;
lc_namespace: string[];
similarityK: number;
query: string;
keywordK: number;
similarityQueryName: string;
client: SupabaseClient;
tableName: string;
keywordQueryName: string;
embeddings: EmbeddingsInterface;
constructor(embeddings: EmbeddingsInterface, args: SupabaseLibArgs);
/**
* Performs a similarity search on the Supabase database using the
* provided query and returns the top 'k' similar documents.
* @param query The query to use for the similarity search.
* @param k The number of top similar documents to return.
* @param _callbacks Optional callbacks to pass to the embedQuery method.
* @returns A promise that resolves to an array of search results. Each result is a tuple containing a Document, its similarity score, and its ID.
*/
protected similaritySearch(query: string, k: number, _callbacks?: Callbacks): Promise<SearchResult[]>;
/**
* Performs a keyword search on the Supabase database using the provided
* query and returns the top 'k' documents that match the keywords.
* @param query The query to use for the keyword search.
* @param k The number of top documents to return that match the keywords.
* @returns A promise that resolves to an array of search results. Each result is a tuple containing a Document, its similarity score multiplied by 10, and its ID.
*/
protected keywordSearch(query: string, k: number): Promise<SearchResult[]>;
/**
* Combines the results of the `similaritySearch` and `keywordSearch`
* methods and returns the top 'k' documents based on a combination of
* similarity and keyword matching.
* @param query The query to use for the hybrid search.
* @param similarityK The number of top similar documents to return.
* @param keywordK The number of top documents to return that match the keywords.
* @param callbacks Optional callbacks to pass to the similaritySearch method.
* @returns A promise that resolves to an array of search results. Each result is a tuple containing a Document, its combined score, and its ID.
*/
protected hybridSearch(query: string, similarityK: number, keywordK: number, callbacks?: Callbacks): Promise<SearchResult[]>;
_getRelevantDocuments(query: string, runManager?: CallbackManagerForRetrieverRun): Promise<Document[]>;
}
export {};