providers/google/google library

Modular Google Provider

This library provides a modular implementation of the Google provider

Key Benefits:

  • Single Responsibility: Each module handles one capability
  • Easier Testing: Modules can be tested independently
  • Better Maintainability: Changes isolated to specific modules
  • Cleaner Code: Smaller, focused classes
  • Reusability: Modules can be reused across providers

Usage:

import 'package:llm_dart/providers/google/google.dart';

final provider = GoogleProvider(GoogleConfig(
  apiKey: 'your-api-key',
  model: 'gemini-1.5-flash',
));

// Use chat capability
final response = await provider.chat(messages);

Classes

GoogleChat
Google Chat capability implementation
GoogleChatResponse
Google chat response implementation
GoogleClient
Core Google HTTP client shared across all capability modules
GoogleConfig
Google (Gemini) provider configuration
GoogleEmbeddings
Google Embeddings capability implementation
GoogleFile
Google file upload response
GoogleLLMBuilder
Google-specific LLM builder with provider-specific configuration methods
GoogleProvider
Google provider implementation
SafetySetting
Google AI safety setting

Enums

HarmBlockThreshold
Google AI harm block thresholds
HarmCategory
Google AI harm categories

Functions

createGoogleChatProvider({required String apiKey, String model = 'gemini-1.5-flash', String? systemPrompt, double? temperature, int? maxTokens}) GoogleProvider
Create a Google provider for chat
createGoogleEmbeddingProvider({required String apiKey, String model = 'text-embedding-004', String? embeddingTaskType, String? embeddingTitle, int? embeddingDimensions}) GoogleProvider
Create a Google provider for embeddings
createGoogleImageGenerationProvider({required String apiKey, String model = 'gemini-1.5-pro', List<String>? responseModalities}) GoogleProvider
Create a Google provider for image generation
createGoogleProvider({required String apiKey, String? model, String? baseUrl, int? maxTokens, double? temperature, String? systemPrompt, Duration? timeout, bool? stream, double? topP, int? topK, ReasoningEffort? reasoningEffort, int? thinkingBudgetTokens, bool? includeThoughts, bool? enableImageGeneration, List<String>? responseModalities, List<SafetySetting>? safetySettings, int? maxInlineDataSize, int? candidateCount, List<String>? stopSequences, String? embeddingTaskType, String? embeddingTitle, int? embeddingDimensions}) GoogleProvider
Create a Google provider with default configuration
createGoogleReasoningProvider({required String apiKey, String model = 'gemini-2.0-flash-thinking-exp', String? systemPrompt, int? thinkingBudgetTokens, bool includeThoughts = true}) GoogleProvider
Create a Google provider for reasoning tasks
createGoogleVisionProvider({required String apiKey, String model = 'gemini-1.5-pro', String? systemPrompt, double? temperature, int? maxTokens}) GoogleProvider
Create a Google provider for vision tasks