Questa pagina spiega come eseguire la migrazione del codice progettato per l'SDK OpenAI all'SDK Google Gen AI per utilizzare i modelli Gemini su Vertex AI.
Panoramica della migrazione
Il seguente notebook mostra una migrazione pratica dalla libreria openai alla libreria google-genai:
Mappatura di API e sintassi
La seguente tabella confronta i componenti, i metodi e i parametri principali dell'SDK OpenAI con l'SDK Gen AI.
| Funzionalità | SDK OpenAI (openai) |
SDK Gen AI (google-genai) |
|---|---|---|
| Inizializzazione del client | client = OpenAI(api_key=...) |
client = genai.Client(vertexai=True, ...) |
| Metodo di generazione | client.chat.completions.create |
client.models.generate_content |
| Metodo di streaming | stream=True (parametro) |
client.models.generate_content_stream (metodo) |
| Input utente | messages=[{"role": "user", "content": "..."}] |
contents="..." (stringa) o contents=[...] (elenco) |
| Istruzioni di sistema | messages=[{"role": "system", "content": "..."}] |
config=types.GenerateContentConfig(system_instruction=...) |
| Accesso alla risposta | response.choices[0].message.content |
response.text |
| Cronologia chat | Gestione manuale dell'elenco (messages.append) |
client.chats.create() (oggetto stateful) |
| Token massimi | max_tokens |
max_output_tokens (all'interno di config) |
| Temperatura | temperature |
temperature (all'interno di config) |
| Modalità JSON | response_format={"type": "json_object"} |
response_mime_type="application/json" (all'interno di config) |
Installazione e configurazione
Disinstalla la libreria OpenAI e installa l'SDK Gen AI.
pip install google-genai
2. Autenticazione e inizializzazione
Mentre OpenAI utilizza una chiave API, Vertex AI utilizza le credenziali di Identity and Access Management (IAM) (Credenziali predefinite dell'applicazione). Devi definire esplicitamente l'ID progetto e la località.
| SDK OpenAI | SDK Google Gen AI |
|---|---|
|
|
Imposta GOOGLE_GENAI_USE_VERTEXAI, GOOGLE_CLOUD_PROJECT e GOOGLE_CLOUD_LOCATION, come mostrato di seguito:
export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_CLOUD_PROJECT='your-project-id'
export GOOGLE_CLOUD_LOCATION='global'
Una volta configurato, puoi inizializzare il client senza passare parametri:
from google import genai
client = genai.Client()
Esempi di codice
I seguenti esempi di codice mostrano le differenze tra l'SDK OpenAI e l'SDK Google Gen AI per le attività comuni.
Generazione di testo a turno singolo
I seguenti esempi di codice mostrano come generare testo. Tieni presente che nell'SDK Google Gen AI le istruzioni di sistema vengono gestite come parametro di configurazione anziché come ruolo del messaggio nell'elenco di input.
| SDK OpenAI | SDK Google Gen AI |
|---|---|
|
|
Generazione di testo con parametri
I seguenti esempi di codice mostrano le differenze nella definizione dei parametri di configurazione. Nell'SDK Google Gen AI, i parametri come temperature, max_output_tokens (in precedenza max_tokens) e la formattazione JSON sono raggruppati in un oggetto GenerateContentConfig.
| SDK OpenAI | SDK Google Gen AI |
|---|---|
|
|
Chat (multi-turno)
I seguenti esempi di codice mostrano le differenze nella gestione della cronologia chat. L'SDK Google Gen AI semplifica questa operazione fornendo un oggetto chat stateful, mentre OpenAI richiede l'aggiunta manuale dei messaggi a un elenco.
| SDK OpenAI | SDK Google Gen AI |
|---|---|
|
|
Streaming
I seguenti esempi di codice mostrano le differenze nelle risposte di streaming. L'SDK Google Gen AI utilizza un metodo specifico (generate_content_stream) anziché un flag booleano.
| SDK OpenAI | SDK Google Gen AI |
|---|---|
|
|
Passaggi successivi
- Scopri come utilizzare le librerie OpenAI con Vertex AI.
- Consulta gli esempi di codice per la compatibilità con OpenAI.
- Inizia a utilizzare la guida rapida dell'SDK Google Gen AI .