76 lines
2.9 KiB
TypeScript
76 lines
2.9 KiB
TypeScript
import { Embeddings, type EmbeddingsParams } from "@langchain/core/embeddings";
|
||
export interface AlibabaTongyiEmbeddingsParams extends EmbeddingsParams {
|
||
/** Model name to use */
|
||
modelName: "text-embedding-v2";
|
||
/**
|
||
* Timeout to use when making requests to AlibabaTongyi.
|
||
*/
|
||
timeout?: number;
|
||
/**
|
||
* The maximum number of documents to embed in a single request. This is
|
||
* limited by the AlibabaTongyi API to a maximum of 2048.
|
||
*/
|
||
batchSize?: number;
|
||
/**
|
||
* Whether to strip new lines from the input text.
|
||
*/
|
||
stripNewLines?: boolean;
|
||
parameters?: {
|
||
/**
|
||
* 取值:query 或者 document,默认值为 document
|
||
* 说明:文本转换为向量后可以应用于检索、聚类、分类等下游任务,
|
||
* 对检索这类非对称任务为了达到更好的检索效果建议区分查询文本(query)和
|
||
* 底库文本(document)类型, 聚类、分类等对称任务可以不用特殊指定,
|
||
* 采用系统默认值"document"即可
|
||
*/
|
||
text_type?: "query" | "document";
|
||
};
|
||
}
|
||
interface EmbeddingCreateParams {
|
||
model: AlibabaTongyiEmbeddingsParams["modelName"];
|
||
input: {
|
||
texts: string[];
|
||
};
|
||
parameters?: AlibabaTongyiEmbeddingsParams["parameters"];
|
||
}
|
||
export declare class AlibabaTongyiEmbeddings extends Embeddings implements AlibabaTongyiEmbeddingsParams {
|
||
modelName: AlibabaTongyiEmbeddingsParams["modelName"];
|
||
batchSize: number;
|
||
stripNewLines: boolean;
|
||
apiKey: string;
|
||
parameters: EmbeddingCreateParams["parameters"];
|
||
constructor(fields?: Partial<AlibabaTongyiEmbeddingsParams> & {
|
||
verbose?: boolean;
|
||
apiKey?: string;
|
||
});
|
||
/**
|
||
* Method to generate embeddings for an array of documents. Splits the
|
||
* documents into batches and makes requests to the AlibabaTongyi API to generate
|
||
* embeddings.
|
||
* @param texts Array of documents to generate embeddings for.
|
||
* @returns Promise that resolves to a 2D array of embeddings for each document.
|
||
*/
|
||
embedDocuments(texts: string[]): Promise<number[][]>;
|
||
/**
|
||
* Method to generate an embedding for a single document. Calls the
|
||
* embeddingWithRetry method with the document as the input.
|
||
* @param text Document to generate an embedding for.
|
||
* @returns Promise that resolves to an embedding for the document.
|
||
*/
|
||
embedQuery(text: string): Promise<number[]>;
|
||
/**
|
||
* Method to generate an embedding params.
|
||
* @param texts Array of documents to generate embeddings for.
|
||
* @returns an embedding params.
|
||
*/
|
||
private getParams;
|
||
/**
|
||
* Private method to make a request to the OpenAI API to generate
|
||
* embeddings. Handles the retry logic and returns the response from the
|
||
* API.
|
||
* @param request Request to send to the OpenAI API.
|
||
* @returns Promise that resolves to the response from the API.
|
||
*/
|
||
private embeddingWithRetry;
|
||
}
|
||
export {};
|