Mit der Einführung von Gemini 2.0 Ende 2024 haben wir eine neue Reihe von Bibliotheken eingeführt, das Google GenAI SDK. Es bietet eine verbesserte Entwicklererfahrung durch eine aktualisierte Clientarchitektur und vereinfacht den Überg3ang zwischen Entwickler und Unternehmensworkflows.
Das Google GenAI SDK ist jetzt auf allen unterstützten Plattformen allgemein verfügbar. Wenn Sie eine unserer älteren Bibliotheken verwenden, empfehlen wir Ihnen dringend, zu migrieren.
In dieser Anleitung finden Sie Vorher-nachher-Beispiele für migrierten Code, die Ihnen den Einstieg erleichtern.
Installation
Vorher
Python
pip install -U -q "google-generativeai"
JavaScript
npm install @google/generative-ai
Ok
go get github.com/google/generative-ai-go
Nachher
Python
pip install -U -q "google-genai"
JavaScript
npm install @google/genai
Ok
go get google.golang.org/genai
API-Zugriff
Das alte SDK hat den API-Client im Hintergrund implizit mit einer Vielzahl von Ad-hoc-Methoden verarbeitet. Dadurch war es schwierig, den Client und die Anmeldedaten zu verwalten.
Jetzt interagieren Sie über ein zentrales Client-Objekt. Dieses Client-Objekt dient als einziger Einstiegspunkt für verschiedene API-Dienste (z.B. models, chats, files, tunings), wodurch die Konsistenz gefördert und die Verwaltung von Anmeldedaten und Konfigurationen bei verschiedenen API-Aufrufen vereinfacht wird.
Vorher (weniger zentralisierter API-Zugriff)
Python
Das alte SDK hat für die meisten API-Aufrufe kein Clientobjekt der obersten Ebene verwendet. Sie haben GenerativeModel-Objekte direkt instanziiert und mit ihnen interagiert.
import google.generativeai as genai
# Directly create and use model objects
model = genai.GenerativeModel('gemini-3.6-flash')
response = model.generate_content(...)
chat = model.start_chat(...)
JavaScript
GoogleGenerativeAI war zwar ein zentraler Punkt für Modelle und Chats, für andere Funktionen wie die Datei- und Cacheverwaltung mussten jedoch oft völlig separate Clientklassen importiert und instanziiert werden.
import { GoogleGenerativeAI } from "@google/generative-ai";
import { GoogleAIFileManager, GoogleAICacheManager } from "@google/generative-ai/server"; // For files/caching
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const fileManager = new GoogleAIFileManager("GEMINI_API_KEY");
const cacheManager = new GoogleAICacheManager("GEMINI_API_KEY");
// Get a model instance, then call methods on it
const model = genAI.getGenerativeModel({ model: "gemini-3.6-flash" });
const result = await model.generateContent(...);
const chat = model.startChat(...);
// Call methods on separate client objects for other services
const uploadedFile = await fileManager.uploadFile(...);
const cache = await cacheManager.create(...);
Ok
Die Funktion genai.NewClient hat einen Client erstellt, generative Modellvorgänge wurden jedoch in der Regel für eine separate GenerativeModel-Instanz aufgerufen, die von diesem Client abgerufen wurde. Auf andere Dienste wurde möglicherweise über separate Pakete oder Muster zugegriffen.
import (
"github.com/google/generative-ai-go/genai"
"github.com/google/generative-ai-go/genai/fileman" // For files
"google.golang.org/api/option"
)
client, err := genai.NewClient(ctx, option.WithAPIKey("GEMINI_API_KEY"))
fileClient, err := fileman.NewClient(ctx, option.WithAPIKey("GEMINI_API_KEY"))
// Get a model instance, then call methods on it
model := client.GenerativeModel("gemini-3.6-flash")
resp, err := model.GenerateContent(...)
cs := model.StartChat()
// Call methods on separate client objects for other services
uploadedFile, err := fileClient.UploadFile(...)
Nachher (zentralisiertes Clientobjekt)
Python
from google import genai
# Create a single client object
client = genai.Client()
# Access API methods through services on the client object
response = client.models.generate_content(...)
chat = client.chats.create(...)
my_file = client.files.upload(...)
tuning_job = client.tunings.tune(...)
JavaScript
import { GoogleGenAI } from "@google/genai";
// Create a single client object
const ai = new GoogleGenAI({apiKey: "GEMINI_API_KEY"});
// Access API methods through services on the client object
const response = await ai.models.generateContent(...);
const chat = ai.chats.create(...);
const uploadedFile = await ai.files.upload(...);
const cache = await ai.caches.create(...);
Ok
import "google.golang.org/genai"
// Create a single client object
client, err := genai.NewClient(ctx, nil)
// Access API methods through services on the client object
result, err := client.Models.GenerateContent(...)
chat, err := client.Chats.Create(...)
uploadedFile, err := client.Files.Upload(...)
tuningJob, err := client.Tunings.Tune(...)
Authentifizierung
Sowohl ältere als auch neue Bibliotheken werden mit API-Schlüsseln authentifiziert. Sie können Ihren API-Schlüssel in Google AI Studio erstellen.
Vorher
Python
Das alte SDK hat das API-Clientobjekt implizit verarbeitet.
import google.generativeai as genai
genai.configure(api_key=...)
JavaScript
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
Ok
Importieren Sie die Google-Bibliotheken:
import (
"github.com/google/generative-ai-go/genai"
"google.golang.org/api/option"
)
Erstellen Sie den Client:
client, err := genai.NewClient(ctx, option.WithAPIKey("GEMINI_API_KEY"))
Nachher
Python
Mit dem Google GenAI SDK erstellen Sie zuerst einen API-Client, der zum Aufrufen der API verwendet wird.
Das neue SDK ruft Ihren API-Schlüssel aus den Umgebungsvariablen GEMINI_API_KEY ab, wenn Sie keinen an den Client übergeben.
export GEMINI_API_KEY="YOUR_API_KEY"
from google import genai
client = genai.Client() # Set the API key using the GEMINI_API_KEY env var.
# Alternatively, you could set the API key explicitly:
# client = genai.Client(api_key="YOUR_API_KEY")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({apiKey: "GEMINI_API_KEY"});
Ok
Importieren Sie die GenAI-Bibliothek:
import "google.golang.org/genai"
Erstellen Sie den Client:
client, err := genai.NewClient(ctx, &genai.ClientConfig{
Backend: genai.BackendGeminiAPI,
})
Inhaltserstellung
Text
Vorher
Python
Bisher gab es keine Clientobjekte. Sie haben über GenerativeModel-Objekte direkt auf APIs zugegriffen.
import google.generativeai as genai
model = genai.GenerativeModel('gemini-3.6-flash')
response = model.generate_content(
'Tell me a story in 300 words'
)
print(response.text)
JavaScript
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-3.6-flash" });
const prompt = "Tell me a story in 300 words";
const result = await model.generateContent(prompt);
console.log(result.response.text());
Ok
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey("GEMINI_API_KEY"))
if err != nil {
log.Fatal(err)
}
defer client.Close()
model := client.GenerativeModel("gemini-3.6-flash")
resp, err := model.GenerateContent(ctx, genai.Text("Tell me a story in 300 words."))
if err != nil {
log.Fatal(err)
}
printResponse(resp) // utility for printing response parts
Nachher
Python
Das neue Google GenAI SDK bietet über das Client-Objekt Zugriff auf alle API-Methoden. Mit Ausnahme einiger zustandsbehafteter Sonderfälle (chat und Live-API-sessions) sind dies alles zustandslose Funktionen. Aus Gründen der Nützlichkeit und Einheitlichkeit sind die zurückgegebenen Objekte pydantic-Klassen.
from google import genai
client = genai.Client()
response = client.models.generate_content(
model='gemini-3.6-flash',
contents='Tell me a story in 300 words.'
)
print(response.text)
print(response.model_dump_json(
exclude_none=True, indent=4))
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.generateContent({
model: "gemini-3.6-flash",
contents: "Tell me a story in 300 words.",
});
console.log(response.text);
Ok
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
result, err := client.Models.GenerateContent(ctx,