Google Generative AI plugin
The Google Generative AI plugin provides interfaces to Google’s Gemini models through the Gemini API.
Configuration
Section titled “Configuration”To use this plugin, import the googlegenai package and pass
googlegenai.GoogleAI to WithPlugins() in the Genkit initializer:
import "github.com/firebase/genkit/go/plugins/googlegenai"g := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.GoogleAI{}))The plugin requires an API key for the Gemini API, which you can get from Google AI Studio.
Configure the plugin to use your API key by doing one of the following:
-
Set the
GEMINI_API_KEYenvironment variable to your API key. -
Specify the API key when you initialize the plugin:
genkit.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})However, don’t embed your API key directly in code! Use this feature only in conjunction with a service like Cloud Secret Manager or similar.
Generative models
Section titled “Generative models”To get a reference to a supported model, specify its identifier to googlegenai.GoogleAIModel:
model := googlegenai.GoogleAIModel(g, "gemini-2.5-flash")Alternatively, you may create a ModelRef which pairs the model name with its config:
modelRef := googlegenai.GoogleAIModelRef("gemini-2.5-flash", &genai.GenerateContentConfig{ Temperature: genai.Ptr[float32](0.5), MaxOutputTokens: genai.Ptr[int32](500), // Other configuration...})Model references have a Generate() method that calls the Google API:
resp, err := genkit.Generate(ctx, g, ai.WithModel(modelRef), ai.WithPrompt("Tell me a joke."))if err != nil { return err}
log.Println(resp.Text())See Generating content with AI models for more information.
Embedding models
Section titled “Embedding models”To get a reference to a supported embedding model, specify its identifier to googlegenai.GoogleAIEmbedder:
embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")Embedder references have an Embed() method that calls the Google AI API:
resp, err := genkit.Embed(ctx, g, ai.WithEmbedder(embeddingModel), ai.WithTextDocs(userInput))if err != nil { return err}See Retrieval-augmented generation (RAG) for more information.
Next Steps
Section titled “Next Steps”- Learn about generating content to understand how to use these models effectively
- Explore creating flows to build structured AI workflows
- To use the Gemini API at enterprise scale see the Vertex AI plugin