Open Responses
This page adapts the original AI SDK documentation: Open Responses.
The Open Responses provider contains language model support for Open Responses compatible APIs.
The Open Responses provider is available in the OpenResponsesProvider module. Add it to your Swift package:
// Package.swift (excerpt)dependencies: [ .package(url: "https://github.com/teunlao/swift-ai-sdk", from: "0.17.5")],targets: [ .target( name: "YourTarget", dependencies: [ .product(name: "SwiftAISDK", package: "swift-ai-sdk"), .product(name: "OpenResponsesProvider", package: "swift-ai-sdk") ] )]Provider Instance
Section titled “Provider Instance”Create an Open Responses provider instance using createOpenResponses:
import OpenResponsesProvider
let openResponses = createOpenResponses(options: OpenResponsesProviderSettings( url: "http://localhost:1234/v1/responses", name: "aProvider"))The name and url options are required:
-
name
StringProvider name. Used as the key for provider options and metadata.
-
url
StringURL for the Open Responses API POST endpoint.
You can use the following optional settings to customize the Open Responses provider instance:
-
apiKey
StringAPI key that is being sent using the
Authorizationheader. -
headers
[String: String]Custom headers to include in the requests.
-
fetch
FetchFunctionCustom fetch implementation.
Language Models
Section titled “Language Models”Create a language model via .languageModel(modelId:):
let model = try openResponses.languageModel(modelId: "mistralai/ministral-3-14b-reasoning")You can use Open Responses models with generateText and streamText,
and they support structured data generation with generateObject (see AI SDK Core).
Example
Section titled “Example”import SwiftAISDKimport OpenResponsesProvider
let openResponses = createOpenResponses(options: OpenResponsesProviderSettings( url: "http://localhost:1234/v1/responses", name: "aProvider"))
let result = try await generateText( model: try openResponses.languageModel(modelId: "mistralai/ministral-3-14b-reasoning"), prompt: "Invent a new holiday and describe its traditions.")
print(result.text)- Stop sequences,
topK, andseedare not supported and are ignored with warnings. - Image inputs are supported for user messages with
fileparts using image media types.