/** * Cloudflare Workers AI Provider for embeddings and language models * * Provides embedding and language models via Cloudflare Workers AI API. * Default embedding model: @cf/baai/bge-m3 * Default language model: @cf/meta/llama-3.3-70b-instruct-fp8-fast * * For language models, uses Cloudflare's OpenAI-compatible endpoint. * * @packageDocumentation */ import type { EmbeddingModel, LanguageModel } from 'ai'; /** * Default Cloudflare embedding model */ export declare const DEFAULT_CF_EMBEDDING_MODEL = "@cf/baai/bge-m3"; export declare const DEFAULT_CF_LANGUAGE_MODEL = "@cf/openai/gpt-oss-120b"; /** * Cloudflare Workers AI configuration */ export interface CloudflareConfig { /** Cloudflare Account ID */ accountId?: string | undefined; /** Cloudflare API Token */ apiToken?: string | undefined; /** AI Gateway (optional) */ gateway?: string | undefined; /** Base URL override */ baseUrl?: string | undefined; } /** * Cloudflare embedding model implementation (AI SDK v5 compatible) */ declare class CloudflareEmbeddingModel { readonly specificationVersion: "v2"; readonly modelId: string; readonly provider = "cloudflare"; readonly maxEmbeddingsPerCall = 100; readonly supportsParallelCalls = true; private config; private ai; constructor(modelId?: string, config?: CloudflareConfig, ai?: Ai | undefined); doEmbed(options: { values: string[]; abortSignal?: AbortSignal | undefined; headers?: Record | undefined; }): Promise<{ embeddings: number[][]; usage?: { tokens: number; } | undefined; response?: { headers?: Record | undefined; body?: unknown; } | undefined; }>; private embedWithBinding; private embedWithRest; } /** * Create a Cloudflare Workers AI embedding model * * @example * ```ts * // Using REST API (outside Workers) * import { cloudflareEmbedding, embed } from 'ai-functions' * * const model = cloudflareEmbedding('@cf/baai/bge-m3') * const { embedding } = await embed({ model, value: 'hello world' }) * * // Using AI binding (inside Workers) * const model = cloudflareEmbedding('@cf/baai/bge-m3', {}, env.AI) * ``` */ export declare function cloudflareEmbedding(modelId?: string, config?: CloudflareConfig, ai?: Ai | undefined): EmbeddingModel; /** * Create a Cloudflare Workers AI language model using OpenAI-compatible endpoint * * Cloudflare provides an OpenAI-compatible API for language models at: * https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/v1 * * @example * ```ts * import { cloudflareLanguageModel } from 'ai-providers' * import { generateText } from 'ai' * * const model = await cloudflareLanguageModel('@cf/meta/llama-3.3-70b-instruct-fp8-fast') * const { text } = await generateText({ model, prompt: 'Hello!' }) * ``` */ export declare function cloudflareLanguageModel(modelId?: string, config?: CloudflareConfig): Promise; /** * Cloudflare Workers AI provider */ export declare const cloudflare: { /** * Create an embedding model */ embedding: typeof cloudflareEmbedding; /** * Alias for embedding */ textEmbeddingModel: typeof cloudflareEmbedding; /** * Create a language model (async - uses OpenAI-compatible endpoint) */ languageModel: typeof cloudflareLanguageModel; }; declare global { interface Ai { run(model: string, inputs: unknown): Promise; } type BaseAiTextEmbeddingsModels = '@cf/baai/bge-small-en-v1.5' | '@cf/baai/bge-base-en-v1.5' | '@cf/baai/bge-large-en-v1.5' | '@cf/baai/bge-m3' | (string & {}); } export type { CloudflareEmbeddingModel }; //# sourceMappingURL=cloudflare.d.ts.map