agsamantha/node_modules/@langchain/community/dist/document_loaders/web/searchapi.d.ts
2024-10-02 15:15:21 -05:00

74 lines
2.6 KiB
TypeScript

import { Document } from "@langchain/core/documents";
import { BaseDocumentLoader } from "@langchain/core/document_loaders/base";
type JSONPrimitive = string | number | boolean | null;
type JSONValue = JSONPrimitive | JSONObject | JSONArray;
interface JSONObject {
[key: string]: JSONValue;
}
interface JSONArray extends Array<JSONValue> {
}
/**
* SearchApiParameters Type Definition.
*
* For more parameters and supported search engines, refer specific engine documentation:
* Google - https://www.searchapi.io/docs/google
* Google News - https://www.searchapi.io/docs/google-news
* Google Scholar - https://www.searchapi.io/docs/google-scholar
* YouTube Transcripts - https://www.searchapi.io/docs/youtube-transcripts
* and others.
*
*/
type SearchApiParameters = {
[key: string]: JSONValue;
};
/**
* Class representing a document loader for loading search results from
* the SearchApi. It extends the BaseDocumentLoader class.
* @example
* ```typescript
* const loader = new SearchApiLoader({
* q: "{query}",
* apiKey: "{apiKey}",
* engine: "google",
* });
* const docs = await loader.load();
* ```
*/
export declare class SearchApiLoader extends BaseDocumentLoader {
private apiKey;
private parameters;
constructor(params: SearchApiParameters);
/**
* Builds the URL for the SearchApi search request.
* @returns The URL for the search request.
*/
buildUrl(): string;
/**
* Extracts documents from the provided output.
* @param output - The output to extract documents from.
* @param responseType - The type of the response to extract documents from.
* @returns An array of Documents.
*/
private extractDocuments;
/**
* Processes the response data from the SearchApi search request and converts it into an array of Documents.
* @param data - The response data from the SearchApi search request.
* @returns An array of Documents.
*/
processResponseData(data: Record<string, unknown>): Document[];
/**
* Fetches the data from the provided URL and returns it as a JSON object.
* If an error occurs during the fetch operation, an exception is thrown with the error message.
* @param url - The URL to fetch data from.
* @returns A promise that resolves to the fetched data as a JSON object.
* @throws An error if the fetch operation fails.
*/
private fetchData;
/**
* Loads the search results from the SearchApi.
* @returns An array of Documents representing the search results.
* @throws An error if the search results could not be loaded.
*/
load(): Promise<Document[]>;
}
export {};