llm_sdk library

Une trousse à outils unifiée pour parler aux LLM depuis Dart / Flutter.

Multi-provider, streaming, tool calling et sorties structurées derrière une seule interface. Changer d'IA = changer le provider passé au LlmClient.

Classes

ClaudeProvider
Adaptateur pour l'API Messages d'Anthropic (Claude).
GeminiProvider
Adaptateur pour l'API Generative Language de Google (Gemini).
GenerationOptions
Paramètres d'échantillonnage communs à tous les providers.
LlmClient
La surface publique du SDK.
LlmProvider
Le contrat que chaque provider (Claude, OpenAI, Gemini) implémente.
LlmResponse
Enveloppe de réponse.
LlmStreamEvent
Événement de streaming typé.
Message
Un message de la conversation.
OpenAIProvider
Adaptateur pour l'API Chat Completions d'OpenAI.
Part
Un morceau de contenu d'un Message.
RetryPolicy
Politique de nouvelle tentative appliquée aux appels HTTP d'un provider.
StreamDone
Fin du flux : porte la réponse assemblée complète.
TextDelta
Un fragment de texte arrivé en streaming.
TextPart
Du texte brut.
Tool
Un outil que le modèle peut demander d'exécuter.
ToolCallDelta
Un appel d'outil complet, une fois ses arguments entièrement reçus.
ToolCallPart
Une demande de l'assistant d'exécuter un outil.
ToolResultPart
Le résultat d'un outil, réinjecté dans la conversation.
Usage
Comptage de tokens, quand le provider le fournit.

Enums

FinishReason
Pourquoi le modèle a arrêté de générer.
Role
Le rôle d'un message dans la conversation.
ToolErrorPolicy
Que faire quand un outil lève pendant la boucle d'outils.

Functions

sendWithRetry(Future<Response> send(), RetryPolicy policy) → Future<Response>
Exécute send avec timeout et retries selon policy.

Typedefs

ToolErrorCallback = void Function(String toolName, Object error, StackTrace stackTrace)
Notifié à chaque outil qui lève, quelle que soit la ToolErrorPolicy.

Exceptions / Errors

LlmException
Erreur renvoyée quand un provider répond avec un statut HTTP non-200, ou qu'une réponse ne peut pas être interprétée.
LlmStreamErrorException
Le provider a annoncé une erreur au milieu d'un flux déjà commencé.
LlmStreamInterruptedException
Le flux s'est terminé avant son marqueur de fin.