Assisters API
SDKs

Dart SDK

Install and use the Assisters Dart SDK

Installation

Add to pubspec.yaml:

dependencies:
  assisters: ^0.1.0

Then run:

dart pub get

Quick Start

import 'package:assisters/assisters.dart';

void main() async {
  final client = AssistersClient(apiKey: Platform.environment['ASSISTERS_API_KEY']!);

  final response = await client.chat.completions.create(
    ChatCompletionRequest(
      model: 'assisters-chat-v1',
      messages: [ChatMessage(role: 'user', content: 'Hello, world!')],
    ),
  );

  print(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 chat completion, returns Stream<ChatCompletionChunk>
client.embeddings.create(request)Generate embeddings for one or more inputs
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

Key Types

class ChatCompletionRequest {
  final String model;
  final List<ChatMessage> messages;
  final double? temperature;
  final int? maxTokens;
  final bool? stream;
}

class ChatMessage {
  final String role;   // 'system' | 'user' | 'assistant'
  final String content;
}

class EmbeddingRequest {
  final String model;
  final List<String> input;
}

class RerankRequest {
  final String model;
  final String query;
  final List<String> documents;
  final int? topN;
}

Streaming

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

await for (final chunk in stream) {
  final content = chunk.choices.first.delta.content;
  if (content != null) stdout.write(content);
}

Error Handling

import 'package:assisters/assisters.dart';

try {
  final response = await client.chat.completions.create(request);
} on AssistersApiException catch (e) {
  print('API error ${e.statusCode}: ${e.message}');
} on AssistersNetworkException catch (e) {
  print('Network error: ${e.message}');
}