EdgeAIG's picture
download
raw
6.74 kB
/**
* Defines the provider-neutral service for text embeddings.
*
* An `EmbeddingModel` turns text into numeric vectors. It supports single-input
* embedding and ordered batch embedding, and represents provider failures as
* `AiError` values. This module also includes the embedding dimensions service,
* request and response models, usage metadata, provider contracts, and a
* constructor that adapts a provider batch implementation into the service.
* Single `embed` calls can be batched together internally.
*
* @since 4.0.0
*/
import * as Context from "../../Context.ts";
import * as Effect from "../../Effect.ts";
import * as Request from "../../Request.ts";
import * as RequestResolver from "../../RequestResolver.ts";
import * as Schema from "../../Schema.ts";
import * as AiError from "./AiError.ts";
declare const EmbeddingModel_base: Context.ServiceClass<EmbeddingModel, "effect/unstable/ai/EmbeddingModel", Service>;
/**
* Service tag for embedding model operations.
*
* **When to use**
*
* Use to retrieve or provide the embedding model service for an `Effect`
* program that embeds text into vectors.
*
* @see {@link Service} for the service contract provided by this tag
* @see {@link make} for constructing an embedding model service from a provider
* @see {@link Dimensions} for the current embedding vector size service
*
* @category services
* @since 4.0.0
*/
export declare class EmbeddingModel extends EmbeddingModel_base {
}
declare const Dimensions_base: Context.ServiceClass<Dimensions, "effect/unstable/ai/EmbeddingModel/Dimensions", number>;
/**
* Service tag that provides the current embedding dimensions.
*
* **When to use**
*
* Use to retrieve or provide the configured embedding vector size through
* context.
*
* @see {@link EmbeddingModel} for the embedding service that uses these dimensions
*
* @category services
* @since 4.0.0
*/
export declare class Dimensions extends Dimensions_base {
}
declare const EmbeddingUsage_base: Schema.Class<EmbeddingUsage, Schema.Struct<{
readonly inputTokens: Schema.UndefinedOr<Schema.Finite>;
}>, {}>;
/**
* Represents token usage metadata for embedding operations.
*
* **Details**
*
* Contains optional provider-reported `inputTokens`. The value may be
* `undefined` when the provider does not report usage or when `embedMany([])`
* bypasses the provider.
*
* @category models
* @since 4.0.0
*/
export declare class EmbeddingUsage extends EmbeddingUsage_base {
}
declare const EmbedResponse_base: Schema.Class<EmbedResponse, Schema.Struct<{
readonly vector: Schema.$Array<Schema.Finite>;
}>, {}>;
/**
* Response for a single embedding request.
*
* @category models
* @since 4.0.0
*/
export declare class EmbedResponse extends EmbedResponse_base {
}
declare const EmbedManyResponse_base: Schema.Class<EmbedManyResponse, Schema.Struct<{
readonly embeddings: Schema.$Array<typeof EmbedResponse>;
readonly usage: typeof EmbeddingUsage;
}>, {}>;
/**
* Response for batch embedding requests containing per-input embeddings and usage
* metadata.
*
* **Details**
*
* `embeddings` preserves batch order, and `usage` carries token metadata for
* the operation.
*
* @see {@link EmbedResponse} for individual embedding responses
* @see {@link EmbeddingUsage} for token usage metadata
*
* @category models
* @since 4.0.0
*/
export declare class EmbedManyResponse extends EmbedManyResponse_base {
}
/**
* Provider input options for embedding requests.
*
* @category options
* @since 4.0.0
*/
export interface ProviderOptions {
readonly inputs: ReadonlyArray<string>;
}
/**
* Provider response for batch embedding requests.
*
* @category models
* @since 4.0.0
*/
export interface ProviderResponse {
readonly results: Array<Array<number>>;
readonly usage: {
readonly inputTokens: number | undefined;
};
}
declare const EmbeddingRequest_base: new <A extends Record<string, any>, Success, Error = never, Services = never>(args: import("../../Types.ts").Equals<Omit<A, "~effect/Request">, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | "~effect/Request" ? never : P]: A[P]; }) => Request.Request<Success, Error, Services> & Readonly<A> & {
readonly _tag: "EmbeddingRequest";
};
/**
* Represents a tagged request used by request resolvers for embedding operations.
*
* **When to use**
*
* Use when you need a typed request for one embedding input while building or
* calling a low-level embedding request resolver.
*
* @see {@link Service} for the resolver-bearing service contract
* @see {@link make} for constructing the request resolver from a provider implementation
* @see {@link EmbedResponse} for the response produced by this request
*
* @category constructors
* @since 4.0.0
*/
export declare class EmbeddingRequest extends EmbeddingRequest_base<{
readonly input: string;
}, EmbedResponse, AiError.AiError> {
}
/**
* Defines the service interface for embedding operations.
*
* @category models
* @since 4.0.0
*/
export interface Service {
readonly resolver: RequestResolver.RequestResolver<EmbeddingRequest>;
readonly embed: (input: string) => Effect.Effect<EmbedResponse, AiError.AiError>;
readonly embedMany: (input: ReadonlyArray<string>) => Effect.Effect<EmbedManyResponse, AiError.AiError>;
}
/**
* Creates an EmbeddingModel service from a provider embedMany implementation.
*
* **When to use**
*
* Use to adapt a provider's batch embedding implementation into an
* `EmbeddingModel.Service` that offers single-input and batch embedding
* operations.
*
* **Details**
*
* The returned service builds single-input `embed` calls through a request
* resolver, so concurrent `embed` requests can be batched into one provider
* `embedMany` call. Direct `embedMany` calls pass the input array to the
* provider, while `embedMany([])` returns an empty response without calling the
* provider.
*
* **Gotchas**
*
* Provider responses are interpreted positionally and must contain exactly one
* result for each requested input. If the provider returns a different number
* of results, `embed` and `embedMany` fail with `AiError.InvalidOutputError`.
*
* @see {@link Service} for the service shape returned by this constructor
* @see {@link ProviderOptions} for the input passed to the provider implementation
* @see {@link ProviderResponse} for the provider response contract consumed by this constructor
*
* @category constructors
* @since 4.0.0
*/
export declare const make: (params: {
readonly embedMany: (options: ProviderOptions) => Effect.Effect<ProviderResponse, AiError.AiError>;
}) => Effect.Effect<Service>;
export {};
//# sourceMappingURL=EmbeddingModel.d.ts.map

Xet Storage Details

Size:
6.74 kB
·
Xet hash:
25bff04edcc485856be9ccbeb1d7accacfa1eaf48949d6490ac3ebe3d98565ae

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.