Eseguire la migrazione all'SDK Google GenAI

A partire dalla release di Gemini 2.0 alla fine del 2024, abbiamo introdotto un nuovo insieme di librerie chiamato Google GenAI SDK. Offre un'esperienza di sviluppo migliorata grazie a un'architettura client aggiornata e semplifica la transizione tra i flussi di lavoro per sviluppatori ed enterprise.

Google GenAI SDK è ora in disponibilità generale (GA) su tutte le piattaforme supportate. Se utilizzi una delle nostre librerie legacy, ti consigliamo vivamente di eseguire la migrazione.

Questa guida fornisce esempi di codice migrato prima e dopo per aiutarti a iniziare.

Installazione

Prima

Python

pip install -U -q "google-generativeai"

JavaScript

npm install @google/generative-ai

Vai

go get github.com/google/generative-ai-go

Dopo

Python

pip install -U -q "google-genai"

JavaScript

npm install @google/genai

Vai

go get google.golang.org/genai

Accesso API

Il vecchio SDK gestiva implicitamente il client API dietro le quinte utilizzando una serie di metodi ad hoc. Ciò rendeva difficile la gestione del client e delle credenziali. Ora interagisci tramite un oggetto Client centrale. Questo oggetto Client funge da unico punto di accesso per vari servizi API (ad es. models, chats, files, tunings), promuovendo la coerenza e semplificando la gestione delle credenziali e della configurazione tra le diverse chiamate API.

Prima (accesso API meno centralizzato)

Python

Il vecchio SDK non utilizzava esplicitamente un oggetto client di primo livello per la maggior parte delle chiamate API. Avresti istanziato e interagito direttamente con gli oggetti GenerativeModel.

import google.generativeai as genai

# Directly create and use model objects
model = genai.GenerativeModel('gemini-3.5-flash')
response = model.generate_content(...)
chat = model.start_chat(...)

JavaScript

Sebbene GoogleGenerativeAI fosse un punto centrale per i modelli e la chat, altre funzionalità come la gestione di file e cache spesso richiedevano l'importazione e l'istanza di classi client completamente separate.

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.5-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(...);

Vai

La funzione genai.NewClient ha creato un client, ma le operazioni del modello generativo venivano in genere chiamate su un'istanza GenerativeModel separata ottenuta da questo client. È possibile che ad altri servizi si sia acceduto tramite pacchetti o pattern distinti.

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.5-flash")
resp, err := model.GenerateContent(...)
cs := model.StartChat()

// Call methods on separate client objects for other services
uploadedFile, err := fileClient.UploadFile(...)

Dopo (oggetto client centralizzato)

Python