Package: @effect/ai
Module: LanguageModel
Configuration options for text generation.
Signature
export interface GenerateTextOptions<Tools extends Record<string, Tool.Any>> {
/**
* The prompt input to use to generate text.
*/
readonly prompt: Prompt.RawInput
/**
* A toolkit containing both the tools and the tool call handler to use to
* augment text generation.
*/
readonly toolkit?: Toolkit.WithHandler<Tools> | Effect.Effect<Toolkit.WithHandler<Tools>, any, any> | undefined
/**
* The tool choice mode for the language model.
* - `auto` (default): The model can decide whether or not to call tools, as
* well as which tools to call.
* - `required`: The model **must** call a tool but can decide which tool will
* be called.
* - `none`: The model **must not** call a tool.
* - `{ tool: <tool_name> }`: The model must call the specified tool.
* - `{ mode?: "auto" (default) | "required", "oneOf": [<tool-names>] }`: The
* model is restricted to the subset of tools specified by `oneOf`. When
* `mode` is `"auto"` or omitted, the model can decide whether or not a tool
* from the allowed subset of tools can be called. When `mode` is
* `"required"`, the model **must** call one tool from the allowed subset of
* tools.
*/
readonly toolChoice?:
| ToolChoice<{ [Name in keyof Tools]: Tools[Name]["name"] }[keyof Tools]>
| undefined
/**
* The concurrency level for resolving tool calls.
*/
readonly concurrency?: Concurrency | undefined
/**
* When set to `true`, tool calls requested by the large language model
* will not be auto-resolved by the framework.
*
* This option is useful when:
* 1. The user wants to include tool call definitions from an `AiToolkit`
* in requests to the large language model so that the model has the
* capability to call tools
* 2. The user wants to control the execution of tool call resolvers
* instead of having the framework handle tool call resolution
*/
readonly disableToolCallResolution?: boolean | undefined
}
Since v1.0.0