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:
API e mappatura della 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) |
| User Input | messages=[{"role": "user", "content": "..."}] |
contents="..." (stringa) o contents=[...] (elenco) |
| Istruzioni di sistema | messages=[{"role": "system", "content": "..."}] |
config=types.GenerateContentConfig(system_instruction=...) |
| Accesso alle risposte | response.choices[0].message.content |
response.text |
| Cronologia chat | Gestione manuale degli elenchi (messages.append) |
client.chats.create() (oggetto stateful) |
| Max Tokens | 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 Identity and Access Management (IAM) (Credenziali predefinite dell'applicazione). Devi definire in modo esplicito 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:
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 della 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. Google Gen AI SDK 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 con la guida rapida di Google Gen AI SDK.