Assisters API
SDKs

Kotlin SDK

Install and use the Assisters Kotlin SDK

Installation

Add to build.gradle.kts:

dependencies {
    implementation("io.misar:assisters-kotlin:1.0.0")
}

Quick Start

import io.misar.assisters.AssistersClient
import io.misar.assisters.models.*

suspend fun main() {
    val client = AssistersClient(apiKey = System.getenv("ASSISTERS_API_KEY"))

    val response = client.chat.completions.create(
        ChatCompletionRequest(
            model = "assisters-chat-v1",
            messages = listOf(ChatMessage(role = "user", content = "Hello, world!")),
        )
    )

    println(response.choices.first().message.content)
    client.close()
}

Available Methods

MethodDescription
client.chat.completions.create(request)Create a chat completion
client.chat.completions.createStream(request)Create a streaming completion — returns Flow<ChatCompletionChunk>
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
client.close()Close the underlying HTTP client

Streaming

val flow = client.chat.completions.createStream(
    ChatCompletionRequest(
        model = "assisters-chat-v1",
        messages = listOf(ChatMessage(role = "user", content = "Tell me a story")),
        stream = true,
    )
)

flow.collect { chunk ->
    val content = chunk.choices.firstOrNull()?.delta?.content
    if (content != null) print(content)
}

Error Handling

import io.misar.assisters.exceptions.*

try {
    val response = client.chat.completions.create(request)
    println(response.choices.first().message.content)
} catch (e: AssistersApiException) {
    println("API error ${e.statusCode}: ${e.message}")
} catch (e: AssistersNetworkException) {
    println("Network error: ${e.message}")
}