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
| Method | Description |
|---|---|
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)")
}