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 ti consente di creare e addestrare modelli generativi utilizzando la console Google Cloud. Consente di accedere a modelli linguistici di grandi dimensioni (LLM), che puoi utilizzare per creare una varietà di applicazioni, tra cui chatbot, generatori di contenuti e strumenti per le creatività.

Prerequisiti

Per eseguire la migrazione di un servizio OpenAI da Microsoft Azure OpenAI all'API Vertex AI Gemini, devi prima creare un progetto Google Cloud e un ambiente di sviluppo. Per ulteriori informazioni, consulta la pagina 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.

Usa i parametri equivalenti dell'API Gemini

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

Parametri OpenAI Parametri dell'API Gemini Descrizione 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 da completare o continuare. Testo
temperature temperature La temperatura viene utilizzata per il campionamento durante la generazione della risposta, 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 aperta o creativa, 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 a una determinata richiesta 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 di 1 indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (chiamato anche decodifica greedy). Un top-K pari a 3 indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.

Per ogni passaggio di selezione dei token, vengono campionati i token top-K con le probabilità più alte. 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 probabilità non corrisponde al valore di 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 ["###"].

Usa il modello API Gemini equivalente

La seguente tabella 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à relative alle lingue. gpt-3.5-turbo o gpt-4 gemini-1.0-pro
Chat Ottimizzato per casi d'uso di conversazioni in più passaggi. gpt-3.5-turbo o gpt-4 gemini-1.0-pro

Installa, importa e autentica l'API Gemini di Vertex AI

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

Installare l'API Gemini di Vertex AI

Azure OpenAI

$ pip install --upgrade openai

API Gemini di Vertex AI

$ pip install google-cloud-aiplatform

Importa l'API Gemini di Vertex AI

Azure OpenAI

import openai

API Gemini di Vertex AI

from vertexai.preview.generative_models import GenerativeModel

Autentica l'API Gemini di Vertex AI

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 il 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