UNPKG

ai

Version:

AI SDK by Vercel - The AI Toolkit for TypeScript and JavaScript

75 lines (66 loc) 2.73 kB
--- title: LanguageModelV3Middleware description: Middleware for enhancing language model behavior (API Reference) --- # `LanguageModelV3Middleware` <Note type="warning"> Language model middleware is an experimental feature. </Note> Language model middleware provides a way to enhance the behavior of language models by intercepting and modifying the calls to the language model. It can be used to add features like guardrails, RAG, caching, and logging in a language model agnostic way. See [Language Model Middleware](/docs/ai-sdk-core/middleware) for more information. ## Import <Snippet text={`import { LanguageModelV3Middleware } from "ai"`} prompt={false} /> ## API Signature <PropertiesTable content={[ { name: 'specificationVersion', type: "'v3'", description: 'The specification version of the middleware. Must be "v3".', }, { name: 'transformParams', type: '({ type: "generate" | "stream", params: LanguageModelV3CallOptions, model: LanguageModelV3 }) => PromiseLike<LanguageModelV3CallOptions>', isOptional: true, description: 'Transforms the parameters before they are passed to the language model.', }, { name: 'wrapGenerate', type: '({ doGenerate: () => PromiseLike<LanguageModelV3GenerateResult>, doStream: () => PromiseLike<LanguageModelV3StreamResult>, params: LanguageModelV3CallOptions, model: LanguageModelV3 }) => PromiseLike<LanguageModelV3GenerateResult>', isOptional: true, description: 'Wraps the generate operation of the language model. Receives both doGenerate and doStream functions.', }, { name: 'wrapStream', type: '({ doGenerate: () => PromiseLike<LanguageModelV3GenerateResult>, doStream: () => PromiseLike<LanguageModelV3StreamResult>, params: LanguageModelV3CallOptions, model: LanguageModelV3 }) => PromiseLike<LanguageModelV3StreamResult>', isOptional: true, description: 'Wraps the stream operation of the language model. Receives both doGenerate and doStream functions.', }, { name: 'overrideProvider', type: '(options: { model: LanguageModelV3 }) => string', isOptional: true, description: 'Override the provider ID of the model.', }, { name: 'overrideModelId', type: '(options: { model: LanguageModelV3 }) => string', isOptional: true, description: 'Override the model ID of the model.', }, { name: 'overrideSupportedUrls', type: '(options: { model: LanguageModelV3 }) => PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>', isOptional: true, description: 'Override the supported URLs for the model.', }, ]} />