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

60 lines
2.3 KiB
TypeScript

import { BaseRetriever, type BaseRetrieverInput } from "@langchain/core/retrievers";
import { AsyncCaller, type AsyncCallerParams } from "@langchain/core/utils/async_caller";
import type { DocumentInterface } from "@langchain/core/documents";
/**
* Type for the authentication method used by the RemoteRetriever. It can
* either be false (no authentication) or an object with a bearer token.
*/
export type RemoteRetrieverAuth = false | {
bearer: string;
};
/**
* Type for the JSON response values from the remote server.
*/
export type RemoteRetrieverValues = Record<string, any>;
/**
* Interface for the parameters required to initialize a RemoteRetriever
* instance.
*/
export interface RemoteRetrieverParams extends AsyncCallerParams, BaseRetrieverInput {
/**
* The URL of the remote retriever server
*/
url: string;
/**
* The authentication method to use, currently implemented is
* - false: no authentication
* - { bearer: string }: Bearer token authentication
*/
auth: RemoteRetrieverAuth;
}
/**
* Abstract class for interacting with a remote server to retrieve
* relevant documents based on a given query.
*/
export declare abstract class RemoteRetriever extends BaseRetriever implements RemoteRetrieverParams {
get lc_secrets(): {
[key: string]: string;
} | undefined;
url: string;
auth: RemoteRetrieverAuth;
headers: Record<string, string>;
asyncCaller: AsyncCaller;
constructor(fields: RemoteRetrieverParams);
/**
* Abstract method that should be implemented by subclasses to create the
* JSON body of the request based on the given query.
* @param query The query based on which the JSON body of the request is created.
* @returns The JSON body of the request.
*/
abstract createJsonBody(query: string): RemoteRetrieverValues;
/**
* Abstract method that should be implemented by subclasses to process the
* JSON response from the server and convert it into an array of Document
* instances.
* @param json The JSON response from the server.
* @returns An array of Document instances.
*/
abstract processJsonResponse(json: RemoteRetrieverValues): DocumentInterface[];
_getRelevantDocuments(query: string): Promise<DocumentInterface[]>;
}