llm_sdk 0.3.1
llm_sdk: ^0.3.1 copied to clipboard
Interface unifiée pour parler aux LLM (Claude, OpenAI, Gemini) depuis Dart/Flutter : multi-provider, streaming, tool calling, sorties structurées.
0.3.1 #
- README : GIFs de démo (« changer de provider = 1 ligne », streaming mot à mot).
- pubspec :
screenshots:(affichés sur pub.dev). - Aucun changement de code ni d'API.
0.3.0 #
- Adaptateur
GeminiProvider(API Generative LanguagegenerateContent) : rôle assistant →model,system_instruction, résultats d'outils enfunctionResponserecollés par nom (Gemini n'a pas d'ID d'appel — on mappeToolCallPart.id == name), forçage viatool_configmodeANY, streaming SSE (streamGenerateContent?alt=sse),usageetfinishReason. Clé API en en-têtex-goog-api-key,baseUrlconfigurable. - +7 tests Gemini (29 au total). Aucun changement au noyau : les 3 providers partagent la même abstraction.
0.2.0 #
- Adaptateur
OpenAIProvider(API Chat Completions) : encodage/décodage, tool calling (tool_calls+ arguments string JSON), sorties structurées via tool forcé, streaming SSE (assemblage des appels d'outils parindex),usageetfinishReason.baseUrlconfigurable (compatible endpoints OpenAI-like). Aucun changement au noyau : l'abstraction tient telle quelle. - +8 tests OpenAI (22 au total).
0.1.0 #
Première tranche : noyau agnostique + adaptateur Claude complet.
- Noyau : types (
Message/Part/Tool/LlmResponse/LlmStreamEvent), contratLlmProvider(generate+generateStream),LlmClientportant la boucle d'outils,streamText,generateTextetgenerateObject<T>. - Adaptateur
ClaudeProvider(API Messages d'Anthropic) : encodage/décodage, tool calling, sorties structurées via tool forcé, streaming SSE (TextDelta/ToolCallDelta/StreamDone),usageetfinishReason. - 20 tests (logique client sur provider mocké + aller/retour/SSE Claude).
