import type { EmbedProvider } from "@xsai-ext/shared-providers"; import type { EmbedManyResult, EmbedResult } from "@xsai/embed"; import { Context } from "koishi"; import { BaseModel } from "./base-model"; import { ModelConfig } from "./config"; export interface IEmbedModel extends BaseModel { embed(text: string): Promise; embedMany(texts: string[]): Promise; } export declare class EmbedModel extends BaseModel implements IEmbedModel { private readonly embedProvider; private readonly fetch; constructor(ctx: Context, embedProvider: EmbedProvider["embed"], modelConfig: ModelConfig, fetch: typeof globalThis.fetch); embed(text: string): Promise; embedMany(texts: string[]): Promise; } /** * Calculates the cosine similarity between two vectors. * The similarity is normalized to a [0, 1] range. * @param vec1 The first vector. * @param vec2 The second vector. * @returns A similarity score between 0 (not similar) and 1 (identical). */ export declare function calculateCosineSimilarity(vec1: number[], vec2: number[]): number;