Esegui la migrazione all'API Gemini da Azure OpenAI

Questa pagina descrive i passaggi necessari per eseguire la migrazione all'API Vertex AI Gemini da Microsoft Azure OpenAI.

L'API Gemini è un servizio basato su cloud completamente gestito che consente di creare e addestrare modelli generativi utilizzando la console Google Cloud. Fornisce accesso a modelli linguistici di grandi dimensioni (LLM), che puoi utilizzare per creare una varietà di applicazioni, tra cui chatbot, generatori di contenuti e strumenti creativi.

Prerequisiti

Per eseguire la migrazione di un servizio OpenAI da Microsoft Azure OpenAI all'API Vertex AI Gemini, devi prima creare un progetto e un ambiente di sviluppo Google Cloud. Per maggiori informazioni, consulta Configurazione su Google Cloud.

Esegui la migrazione all'API Gemini

Utilizza i seguenti argomenti per scoprire come eseguire la migrazione all'API Gemini da un progetto OpenAI in Microsoft Azure.

Utilizza parametri dell'API Gemini equivalenti

Di seguito sono riportati alcuni parametri comuni di Azure OpenAI e i relativi parametri equivalenti nell'API Gemini:

Parametri OpenAI Parametri dell'API Gemini Description Valori validi
prompt prompt Un prompt è una richiesta in linguaggio naturale inviata a un modello linguistico per ricevere una risposta. I prompt possono contenere domande, istruzioni, informazioni contestuali, esempi e testo per il modello da completare o continuare. Testo
temperature temperature La temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicati topP e topK. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno creativa o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a 0 significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato messaggio sono per lo più deterministiche, ma è comunque possibile una piccola variazione.

Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.

0.01.0

max_tokens maxOutputTokens Numero massimo di token che possono essere generati nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.

Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe.

1-8192 (OpenAI)

1-8192 (API Gemini)

Non disponibile topK Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a 1 indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a 3 indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.

Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. Quindi, i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.

Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.

140

top_p topP Top-P cambia il modo in cui il modello seleziona i token per l'output. I token vengono selezionati dal più probabile (vedi top-K) al meno probabile finché la somma delle loro probabilità equivale al valore top-P. Ad esempio, se i token A, B e C hanno una probabilità di 0,3, 0,2 e 0,1 e il valore di top-P è 0.5, il modello selezionerà A o B come token successivo utilizzando la temperatura ed esclude C come candidato.

Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.

0.01.0

stop stop_sequences Una sequenza di interruzioni è una serie di caratteri (spazi inclusi) che interrompe la generazione di risposte se il modello la rileva. La sequenza non è inclusa nella risposta. Puoi aggiungere fino a cinque sequenze di interruzioni. La sequenza di interruzioni in un array, ad esempio ["###"].

Utilizza il modello equivalente dell'API Gemini

La tabella seguente descrive i modelli di base disponibili.

Tipo Descrizione Endpoint OpenAI Endpoint LLM dell'API Gemini
Testo Ottimizzato per seguire le istruzioni del linguaggio naturale e adatto a una varietà di attività linguistiche. gpt-3.5-turbo o gpt-4 gemini-1.0-pro
Chat Ottimizzato per casi d'uso di conversazioni a turni multipli. gpt-3.5-turbo o gpt-4 gemini-1.0-pro

Installa, importa e autentica l'API Vertex AI Gemini

Utilizza l'SDK Vertex AI per Python per installare, importare e autenticare l'API Vertex AI Gemini. Di seguito sono mostrati i metodi equivalenti per l'SDK Vertex AI per Python e Azure OpenAI.

Installa l'API Vertex AI Gemini

Azure OpenAI

$ pip install --upgrade openai

API Gemini di Vertex AI

$ pip install google-cloud-aiplatform

Importa l'API Vertex AI Gemini

Azure OpenAI

import openai

API Gemini di Vertex AI

from vertexai.preview.generative_models import GenerativeModel

Autenticare l'API Vertex AI Gemini

Azure OpenAI

openai.api_key = os.getenv("OPENAI_API_KEY")

API Gemini di Vertex AI

from google.colab import auth as google_auth
google_auth.authenticate_user()

Confronti e codice campione dell'API Vertex AI Gemini e Azure

Genera testo con l'SDK Vertex AI per Python

Azure OpenAI

from openai import OpenAI

client = OpenAI()

response = client.completions.create(
    prompt="Write an article about the potential of AI",
    max_tokens=8192,
    temperature=0.3,
    model="gpt-4")

print(f"Response from Model: {response['choices'][0]['text']}")

API Gemini di Vertex AI

from vertexai.preview.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro")
generation_config = {
    "max_output_tokens": 8192,
    "temperature": 0.9,
    "top_p": 1}

responses = model.generate_content(
    "Write an article about the potential of AI",
    generation_config=generation_config,
    stream=True)

for response in responses:
    print(response.text)

Utilizza il completamento della chat con l'SDK Vertex AI per Python

Azure OpenAI

from openai import OpenAI

client = OpenAI()

parameters = {
    "model":"gpt-4",
    "temperature": 0.2,
    "max_tokens": 256,
    "top_p": 0.95}

chat_completion = client.chat.completions.create(
    messages=[
      {"role": "user", "name":"example_user", "content": "Hello! Can you write a 300 word article on the history of AI?"}
      ]
    ,
    **parameters)
response = chat_completion['choices'][0]
print(f"Response from Model: {response.text}")

chat_completion = client.chat.completions.create(
    messages=[
      {"role": "user", "name":"example_user", "content": "Could you give me a catchy title for the paper?"}
      ]
    ,
    **parameters)
response = chat_completion['choices'][0]
print(f"Response from Model: {response.text}")

API Gemini di Vertex AI

from vertexai.preview.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro")
chat = model.start_chat()

responses = chat.send_message(
    content="Hello! Can you write a 300 word article on the history of AI?",
    stream=True)

for response in responses:
    print(response.text)

responses = chat.send_message(
    content="Could you give me a catchy title for the paper?",
    stream=True)

for response in responses:
    print(response.text)

Genera codice con l'SDK Vertex AI per Python

Azure OpenAI

from openai import OpenAI

client = OpenAI()

response = client.completions.create(
    prompt="Write a Python code to read a CSV file in pandas, calculate the average for a specific column, and then sort the data in descending order for that column",
    max_tokens=8192,
    temperature=0.3,
    model="gpt-4")

print(f"Response from Model: {response['choices'][0]['text']}")

API Gemini di Vertex AI

from vertexai.preview.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro")
generation_config = {
    "max_output_tokens": 8192,
    "temperature": 0.9,
    "top_p": 1,
    }

responses = model.generate_content(
    contents="Write a Python code to read a CSV file in pandas, calculate the average for a specific column, and then sort the data in descending order for that column",
    generation_config=generation_config,
    stream=True)

for response in responses:
    print(response.text)

Passaggi successivi