common library

Shared implementation for Genkit's Google model plugins.

Not public API. This library exists so genkit_vertexai can reuse the Gemini request/response mapping, model catalog, and API client from this package. It is not covered by this package's semantic-versioning guarantees: anything here may change or disappear in any release, including patch releases.

Applications should import package:genkit_google_genai/genkit_google_genai.dart (or package:genkit_vertexai/genkit_vertexai.dart) instead.

Enums

GeminiModelFamily
The generation modality a Gemini model name denotes.

Properties

commonModelInfo → ModelInfo
final
commonTtsModelInfo → ModelInfo
Fallback metadata for an un-curated -tts model name.
final
geminiTtsSupports → Map<String, dynamic>
The capability profile every -tts Gemini model advertises, curated or not.
final
knownGeminiModels → Map<String, ModelInfo>
Curated capability metadata for the Gemini and Gemma models known to the Google generative-AI plugins, keyed by bare model name (no plugin prefix).
final
logger → Logger
final

Functions

extractUsage(UsageMetadata? metadata) → GenerationUsage?
fromGeminiCandidate(Candidate candidate) → (Message, FinishReason)
fromGeminiPart(Part p) → Part
httpClientFromApiKey(String? apiKey) → Client
isEmbedderModelName(String name) → bool
Whether name (bare or resource-prefixed) names an embedding model: any name containing embedding, such as text-embedding-004, gemini-embedding-2, or multimodalembedding.
toGeminiContent(List<Message> messages) → List<Content>
toGeminiRole(Role role) → String
Maps a Genkit Role to the role string expected by the Gemini API.
toGeminiSafetySettings(List<GeminiSafetySettings>? safetySettings) → List<SafetySetting>?
toGeminiSettings(GeminiOptions options, Map<String, dynamic>? outputSchema, bool isJsonMode, {bool constrained = false}) → GenerationConfig
toGeminiToolConfig(GeminiFunctionCallingConfig? functionCallingConfig, {ToolChoice? toolChoice, bool hasFunctionTools = false}) → ToolConfig?
Builds Gemini's toolConfig from the plugin-specific functionCallingConfig or, when that is absent, the portable Genkit toolChoice (auto / required / none map to Gemini's AUTO / ANY / NONE). The plugin config wins because it is strictly more expressive (allowed function names). Unknown toolChoice values are ignored.
toGeminiTools(List<ToolDefinition>? tools, {bool? codeExecution, GeminiGoogleSearch? googleSearch}) → List<Tool>
toGeminiTtsSettings(GeminiTtsOptions options, Map<String, dynamic>? outputSchema, bool isJsonMode, {bool constrained = false}) → GenerationConfig