wrapLanguageModel
Wrap a language model with middleware.
Returns a model that behaves like the one you passed in, with middleware intercepting requests and stream parts. Middlewares apply in array order.
Built-ins cover caching, reasoning extraction, default settings, simulated streaming, JSON fence stripping, and folding tool input examples into descriptions.
let model = wrapLanguageModel(
model: OllamaModel("qwen3"),
middleware: [.cache(), .extractReasoning(tag: "think")]
)Signature
func wrapLanguageModel(
model: any LanguageModel,
middleware: [LanguageModelMiddleware]
) -> any LanguageModelDefined in Sources/AI/Core/Middleware.swift.
Parameters
| Parameter | Type | Default |
|---|---|---|
model | any LanguageModel | required |
middleware | [LanguageModelMiddleware] | required |
Returns
An any LanguageModel you can use anywhere the original worked.