import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import { LanguageModel as AiLanguageModel } from "effect/unstable/ai"; import type { RuntimeContext } from "../../RuntimeContext.ts"; /** * The slice of an AI client the LanguageModel adapter needs: the raw Workers * AI handle plus, when routed through an AI Gateway, the gateway id. * * Both `Cloudflare.AI.QueryGateway(gateway)` (gateway-routed) and * `Cloudflare.Workers.AI()` (plain Workers AI binding) clients satisfy it. */ export interface LanguageModelClient { /** Effect resolving to the raw Workers AI runtime binding. */ readonly raw: Effect.Effect; /** * Effect resolving to the AI Gateway id to route `ai.run` calls through. * Omit for a plain Workers AI binding — requests then go directly to * Workers AI without a gateway. */ readonly id?: Effect.Effect; } /** * Options for constructing a Workers AI-backed LanguageModel. */ export interface LanguageModelOptions { /** * Already-bound AI client — from `Cloudflare.AI.QueryGateway(gateway)` * (routed through the gateway) or `Cloudflare.Workers.AI()` (direct). */ readonly client: LanguageModelClient; /** Workers AI model id, e.g. `@cf/meta/llama-3.3-70b-instruct-fp8-fast`. */ readonly model: string; /** Optional per-call defaults; overridable per request via `providerOptions`. */ readonly parameters?: { readonly temperature?: number; readonly maxTokens?: number; readonly topP?: number; readonly topK?: number; readonly seed?: number; readonly frequencyPenalty?: number; readonly presencePenalty?: number; }; } /** * Provide a {@link AiLanguageModel.LanguageModel} layer backed by the supplied * AI Gateway client and Workers AI model. */ export declare const makeLanguageModelLayer: (options: LanguageModelOptions) => Layer.Layer; /** * Build a {@link AiLanguageModel.Service} that proxies generateText/streamText * through the supplied AI Gateway client to a Workers AI model. */ export declare const makeLanguageModel: ({ client, model, parameters, }: LanguageModelOptions) => Effect.Effect; //# sourceMappingURL=LanguageModel.d.ts.map