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

54 lines
2 KiB
TypeScript

import { type DocumentInterface } from "@langchain/core/documents";
import { RemoteRetriever, RemoteRetrieverValues, RemoteRetrieverParams } from "./remote/base.js";
export interface VespaRetrieverParams extends RemoteRetrieverParams {
/**
* The body of the query to send to Vespa
*/
query_body: object;
/**
* The name of the field the content resides in
*/
content_field: string;
}
/**
* Class responsible for retrieving data from Vespa. It extends the
* `RemoteRetriever` class and includes methods for creating the JSON body
* for a query and processing the JSON response from Vespa.
* @example
* ```typescript
* const retriever = new VespaRetriever({
* url: "https:
* auth: false,
* query_body: {
* yql: "select content from paragraph where userQuery()",
* hits: 5,
* ranking: "documentation",
* locale: "en-us",
* },
* content_field: "content",
* });
* const result = await retriever.getRelevantDocuments("what is vespa?");
* ```
*/
export declare class VespaRetriever extends RemoteRetriever {
static lc_name(): string;
lc_namespace: string[];
query_body: object;
content_field: string;
constructor(fields: VespaRetrieverParams);
/**
* Method that takes a query string as input and returns a JSON object
* that includes the query and the original `query_body`.
* @param query The query string to be sent to Vespa.
* @returns A JSON object that includes the query and the original `query_body`.
*/
createJsonBody(query: string): RemoteRetrieverValues;
/**
* Method that processes the JSON response from Vespa into an array of
* `Document` instances. Each `Document` instance includes the content
* from the specified `content_field` and the document's ID.
* @param json The JSON response from Vespa.
* @returns An array of `Document` instances.
*/
processJsonResponse(json: RemoteRetrieverValues): DocumentInterface[];
}