Google Gemini
The llms/googleai package calls Google Gemini through the
Google AI Studio endpoint. To use Gemini through Google Cloud instead, see
Vertex AI.
Setup
Create an API key at Google AI Studio and set it in
GOOGLE_API_KEY, or pass it explicitly. Note that googleai.New takes a context.Context:
llm, err := googleai.New(ctx,
googleai.WithAPIKey(os.Getenv("GOOGLE_API_KEY")),
googleai.WithDefaultModel("gemini-2.5-flash"),
)
On thinking-capable models, control reasoning per call with llms.WithReasoning
(Gemini 3.x maps effort to a thinking level; 2.5 uses a token budget), and request
schema-constrained JSON with llms.WithStructuredOutput.
For a full walkthrough, see the Gemini quickstart.
Example
// Set the GOOGLE_API_KEY env var to your API key taken from ai.google.dev
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/vxcontrol/langchaingo/llms"
"github.com/vxcontrol/langchaingo/llms/googleai"
)
func main() {
ctx := context.Background()
apiKey := os.Getenv("GOOGLE_API_KEY")
llm, err := googleai.New(ctx, googleai.WithAPIKey(apiKey))
if err != nil {
log.Fatal(err)
}
prompt := "Who was the second person to walk on the moon?"
answer, err := llms.GenerateFromSinglePrompt(ctx, llm, prompt)
if err != nil {
log.Fatal(err)
}
fmt.Println(answer)
}