ai_sdk_mistral

Mistral AI provider for AI SDK Dart. Supports Mistral language models and text embeddings.

Installation

dependencies:
  ai_sdk_dart: ^1.1.0
  ai_sdk_mistral: ^1.1.0

Usage

Set your API key via environment variable:

export MISTRAL_API_KEY=...

Language model

import 'package:ai_sdk_dart/ai_sdk_dart.dart';
import 'package:ai_sdk_mistral/ai_sdk_mistral.dart';

final result = await generateText(
  model: mistral('mistral-large-latest'),
  prompt: 'Explain the difference between supervised and unsupervised learning.',
);
print(result.text);

Streaming

final result = await streamText(
  model: mistral('mistral-small-latest'),
  prompt: 'Write a limerick about Dart.',
);
await for (final chunk in result.textStream) {
  stdout.write(chunk);
}

Embeddings

final result = await embed(
  model: mistral.embedding('mistral-embed'),
  value: 'Hello, world!',
);
print(result.embedding); // List<double>

Structured output

final result = await generateText<Map<String, dynamic>>(
  model: mistral('mistral-large-latest'),
  prompt: 'Return the capital and population of France as JSON.',
  output: Output.object(
    schema: Schema<Map<String, dynamic>>(
      jsonSchema: const {
        'type': 'object',
        'properties': {
          'capital': {'type': 'string'},
          'population': {'type': 'number'},
        },
      },
      fromJson: (json) => json,
    ),
  ),
);
print(result.output);

Custom API key

final myMistral = MistralProvider(apiKey: 'my-key');
final result = await generateText(
  model: myMistral('codestral-latest'),
  prompt: 'Write a Dart function that reverses a string.',
);

With provider registry

final registry = createProviderRegistry({
  'mistral': RegistrableProvider(
    languageModelFactory: mistral.call,
    embeddingModelFactory: mistral.embedding,
  ),
});

final model = registry.languageModel('mistral:mistral-large-latest');

License

MIT

Libraries

ai_sdk_mistral
Mistral AI provider for the AI SDK Dart.