Skip to content

GeminiProvider

Category: LLM Providers

Source: gemini_provider.dart

Google Gemini provider: adapter + streaming generateContent client in one class.

Talks to the Gemini Developer API (generativelanguage.googleapis.com). Authentication is API-key only (GEMINI_API_KEY). Google-account login, Code Assist, and Vertex AI are intentionally out of scope here.

Classes

GeminiProvider

Adapter that talks to the Gemini Developer API with streaming.

Constructor

dart
GeminiProvider({
    this.apiKey = '',
    this.model = '',
    this.systemPrompt = '',
    String baseUrl = _defaultBaseUrl,
    this._requestClientFactory,
  })

Properties

PropertyTypeDescription
apiKeyString
modelString
systemPromptString
adapterIdString get
adapterIdString get

Methods

ProviderHealth validate(ResolvedProvider provider)
`LlmClient createClient({
required ResolvedProvider provider,
required ResolvedModel model,
required String systemPrompt,

})`

Stream<LlmChunk> stream(List<Message> messages, {List<Tool>? tools})
`static Stream<LlmChunk> parseStreamEvents(
Stream&lt;Map&lt;String, dynamic&gt;&gt; events,

)`

Parse Gemini SSE event payloads into [LlmChunk]s.

Exposed as static for testability — callers feed already-decoded JSON objects (one per SSE data: event).

Released under the MIT License.