Assisters API
SDKs

Swift SDK

Install and use the Assisters Swift SDK

Installation

Add to Package.swift:

dependencies: [
    .package(url: "https://github.com/misarai/assisters-swift.git", from: "1.0.0"),
],
targets: [
    .target(name: "MyApp", dependencies: [
        .product(name: "Assisters", package: "assisters-swift"),
    ]),
]

Quick Start

import Assisters

let client = AssistersClient(apiKey: ProcessInfo.processInfo.environment["ASSISTERS_API_KEY"]!)

let request = ChatCompletionRequest(
    model: "assisters-chat-v1",
    messages: [ChatMessage(role: "user", content: "Hello, world!")]
)

let response = try await client.chat.completions.create(request)
print(response.choices.first?.message.content ?? "")

Available Methods

MethodDescription
client.chat.completions.create(_ request:)Create a chat completion
client.chat.completions.createStream(_ request:)Streaming completion — returns AsyncThrowingStream<ChatCompletionChunk, Error>
client.embeddings.create(_ request:)Generate embeddings
client.moderations.create(_ request:)Moderate text content
client.rerank.create(_ request:)Rerank documents against a query
client.models.list()List available models
client.audio.transcriptions.create(_ request:)Transcribe an audio file

Streaming

let stream = client.chat.completions.createStream(
    ChatCompletionRequest(
        model: "assisters-chat-v1",
        messages: [ChatMessage(role: "user", content: "Tell me a story")],
        stream: true
    )
)

for try await chunk in stream {
    if let content = chunk.choices.first?.delta.content {
        print(content, terminator: "")
    }
}

Error Handling

import Assisters

do {
    let response = try await client.chat.completions.create(request)
    print(response.choices.first?.message.content ?? "")
} catch let error as AssistersAPIError {
    print("API error \(error.statusCode): \(error.message)")
} catch let error as AssistersNetworkError {
    print("Network error: \(error.localizedDescription)")
}