/** * @license * Copyright 2025 Steven Roussey * SPDX-License-Identifier: Apache-2.0 */ import type { IRunConfig, TaskConfig } from "@workglow/task-graph"; import { CreateWorkflow } from "@workglow/task-graph"; import { DataPortSchema } from "@workglow/util/schema"; import type { ModelConfig } from "../model/ModelSchema"; import { StreamingAiTask } from "./base/StreamingAiTask"; export declare const TextGenerationInputSchema: { readonly type: "object"; readonly properties: { readonly model: { readonly oneOf: readonly [{ readonly title: "Model"; readonly description: `The model ${string}`; } & Record & { readonly format: import(".").TypeModelSemantic; readonly type: "string"; }, { readonly type: "object"; readonly properties: { readonly model_id: { readonly type: "string"; }; readonly capabilities: { readonly type: "array"; readonly items: { readonly type: "string"; }; readonly "x-ui-editor": "multiselect"; }; readonly title: { readonly type: "string"; }; readonly description: { readonly type: "string"; readonly "x-ui-editor": "textarea"; }; readonly provider: { readonly type: "string"; }; readonly provider_config: { readonly type: "object"; readonly properties: { readonly credential_key: { readonly type: "string"; readonly format: "credential"; readonly "x-ui-hidden": true; }; readonly native_dimensions: { readonly type: "integer"; readonly description: "Native output vector dimensions for embedding models"; }; readonly mrl: { readonly type: "boolean"; readonly description: "Whether the model supports Matryoshka Representation Learning"; }; }; readonly additionalProperties: true; readonly default: {}; }; readonly metadata: { readonly type: "object"; readonly default: {}; readonly "x-ui-hidden": true; }; }; readonly required: readonly ["provider", "provider_config"]; readonly format: "model"; readonly additionalProperties: true; } & Record & { readonly format: import(".").TypeModelSemantic; }]; } & Record & { readonly format: import(".").TypeModelSemantic; }; readonly prompt: { readonly type: "string"; readonly title: "Prompt"; readonly description: "The prompt to generate text from"; }; readonly maxTokens: { readonly type: "number"; readonly title: "Max Tokens"; readonly description: "The maximum number of tokens to generate"; readonly minimum: 1; readonly maximum: 4096; readonly "x-ui-group": "Configuration"; }; readonly temperature: { readonly type: "number"; readonly title: "Temperature"; readonly description: "The temperature to use for sampling"; readonly minimum: 0; readonly maximum: 2; readonly "x-ui-group": "Configuration"; }; readonly topP: { readonly type: "number"; readonly title: "Top-p"; readonly description: "The top-p value to use for sampling"; readonly minimum: 0; readonly maximum: 1; readonly "x-ui-group": "Configuration"; }; readonly frequencyPenalty: { readonly type: "number"; readonly title: "Frequency Penalty"; readonly description: "The frequency penalty to use"; readonly minimum: -2; readonly maximum: 2; readonly "x-ui-group": "Configuration"; }; readonly presencePenalty: { readonly type: "number"; readonly title: "Presence Penalty"; readonly description: "The presence penalty to use"; readonly minimum: -2; readonly maximum: 2; readonly "x-ui-group": "Configuration"; }; }; readonly required: readonly ["model", "prompt"]; readonly additionalProperties: false; }; export declare const TextGenerationOutputSchema: { readonly type: "object"; readonly properties: { readonly text: { readonly type: "string"; readonly title: "Text"; readonly description: "The generated text"; readonly "x-stream": "append"; }; }; readonly required: readonly ["text"]; readonly additionalProperties: false; }; export type TextGenerationTaskInput = { maxTokens?: number | undefined; temperature?: number | undefined; topP?: number | undefined; frequencyPenalty?: number | undefined; presencePenalty?: number | undefined; model: string | ModelConfig; prompt: string; }; export type TextGenerationTaskOutput = { text: string; }; export type TextGenerationTaskConfig = TaskConfig; export declare class TextGenerationTask extends StreamingAiTask { static type: string; /** Capabilities required of the model; gated in {@link StreamingAiTask.executeStream}. */ static readonly requires: ["text.generation"]; protected static readonly streamingPhaseLabel = "Generating"; static category: string; static title: string; static description: string; static inputSchema(): DataPortSchema; static outputSchema(): DataPortSchema; } export declare const textGeneration: (input: TextGenerationTaskInput, config?: TextGenerationTaskConfig, runConfig?: Partial) => Promise; declare module "@workglow/task-graph" { interface Workflow { textGeneration: CreateWorkflow; } } //# sourceMappingURL=TextGenerationTask.d.ts.map