googleapis/go-genai

Google Gen AI Go SDK provides an interface for developers to integrate Google's generative models into their Go applications.

1,189

stars

660

commits

Go

primary language

Sep 11, 2026

updated

pkg.go.dev/google.golang.org/genai

README

GitHub go.mod Go version Go Reference

Google Gen AI Go SDK

The Google Gen AI Go SDK provides an interface for developers to integrate Google's generative models into their Go applications. It supports the Gemini Developer API and Gemini Enterprise Agent Platform APIs.

[!WARNING] Updates to GenerateVideos in upcoming SDK version:

Methods/fields to be removedmigration guide
prompt/text/image arguments in Models.GenerateVideos (and async variants)Use source argument instead

To avoid unexpected updates, pin the SDK version to < 2.0.0.

The Google Gen AI Go SDK enables developers to use Google's state-of-the-art generative AI models (like Gemini) to build AI-powered features and applications. This SDK supports use cases like:

  • Generate text from text-only input
  • Generate text from text-and-images input (multimodal)
  • ...

For example, with just a few lines of code, you can access Gemini's multimodal capabilities to generate text from text-and-image input.

parts := []*genai.Part{
  {Text: "What's this image about?"},
  {InlineData: &genai.Blob{Data: imageBytes, MIMEType: "image/jpeg"}},
}
result, err := client.Models.GenerateContent(ctx, "gemini-2.5-flash", []*genai.Content{{Parts: parts}}, nil)

Installation and usage

Add the SDK to your module with go get google.golang.org/genai.

Create Clients

Imports

import "google.golang.org/genai"

Gemini API Client:

client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:   apiKey,
	Backend:  genai.BackendGeminiAPI,
})

Gemini Enterprise Agent Platform Client:

client, err := genai.NewClient(ctx, &genai.ClientConfig{
	Project:  project,
	Location: location,
	Backend:  genai.BackendEnterprise,
})

(Optional) Using environment variables:

You can create a client by configuring the necessary environment variables. Configuration setup instructions depends on whether you're using the Gemini Developer API or the Gemini API in Gemini Enterprise Agent Platform.

Gemini Developer API: Set GOOGLE_API_KEY as shown below:

export GOOGLE_API_KEY='your-api-key'

Gemini API on Gemini Enterprise Agent Platform: Set GOOGLE_GENAI_USE_ENTERPRISE, GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION, as shown below:

export GOOGLE_GENAI_USE_ENTERPRISE=true
export GOOGLE_CLOUD_PROJECT='your-project-id'
export GOOGLE_CLOUD_LOCATION='us-central1'
client, err := genai.NewClient(ctx, &genai.ClientConfig{})

License

The contents of this repository are licensed under the Apache License, version 2.0.

Contributors

(top 30 of 34)

qiaodev

123 commits

matthew29tang

79 commits

speedstorm1

50 commits

googleapis/go-genai

Google Gen AI Go SDK provides an interface for developers to integrate Google's generative models into their Go applications.

1,189

stars

660

commits

Go

primary language

Sep 11, 2026

updated

pkg.go.dev/google.golang.org/genai

README

GitHub go.mod Go version Go Reference

Google Gen AI Go SDK

The Google Gen AI Go SDK provides an interface for developers to integrate Google's generative models into their Go applications. It supports the Gemini Developer API and Gemini Enterprise Agent Platform APIs.

[!WARNING] Updates to GenerateVideos in upcoming SDK version:

Methods/fields to be removedmigration guide
prompt/text/image arguments in Models.GenerateVideos (and async variants)Use source argument instead

To avoid unexpected updates, pin the SDK version to < 2.0.0.

The Google Gen AI Go SDK enables developers to use Google's state-of-the-art generative AI models (like Gemini) to build AI-powered features and applications. This SDK supports use cases like:

  • Generate text from text-only input
  • Generate text from text-and-images input (multimodal)
  • ...

For example, with just a few lines of code, you can access Gemini's multimodal capabilities to generate text from text-and-image input.

parts := []*genai.Part{
  {Text: "What's this image about?"},
  {InlineData: &genai.Blob{Data: imageBytes, MIMEType: "image/jpeg"}},
}
result, err := client.Models.GenerateContent(ctx, "gemini-2.5-flash", []*genai.Content{{Parts: parts}}, nil)

Installation and usage

Add the SDK to your module with go get google.golang.org/genai.

Create Clients

Imports

import "google.golang.org/genai"

Gemini API Client:

client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:   apiKey,
	Backend:  genai.BackendGeminiAPI,
})

Gemini Enterprise Agent Platform Client:

client, err := genai.NewClient(ctx, &genai.ClientConfig{
	Project:  project,
	Location: location,
	Backend:  genai.BackendEnterprise,
})

(Optional) Using environment variables:

You can create a client by configuring the necessary environment variables. Configuration setup instructions depends on whether you're using the Gemini Developer API or the Gemini API in Gemini Enterprise Agent Platform.

Gemini Developer API: Set GOOGLE_API_KEY as shown below:

export GOOGLE_API_KEY='your-api-key'

Gemini API on Gemini Enterprise Agent Platform: Set GOOGLE_GENAI_USE_ENTERPRISE, GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION, as shown below:

export GOOGLE_GENAI_USE_ENTERPRISE=true
export GOOGLE_CLOUD_PROJECT='your-project-id'
export GOOGLE_CLOUD_LOCATION='us-central1'
client, err := genai.NewClient(ctx, &genai.ClientConfig{})

License

The contents of this repository are licensed under the Apache License, version 2.0.

Contributors

(top 30 of 34)

qiaodev

123 commits

matthew29tang

79 commits

speedstorm1

50 commits

Languages

Go

100.0%