Esegui la migrazione all'API Gemini da Azure OpenAI

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

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

Prerequisiti

Per eseguire la migrazione di un servizio OpenAI da Microsoft Azure OpenAI al API Gemini di Vertex AI, devi prima creare un progetto Google Cloud e di sviluppo software. Per ulteriori informazioni, vedi Configura Google Cloud.

Esegui la migrazione all'API Gemini

Consulta i seguenti argomenti per scoprire come eseguire la migrazione al l'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 dei rispettivi 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, esempi e testo per completare o continuare il modello. Testo
temperature temperature La temperatura viene utilizzata per il campionamento durante la generazione della risposta, che si verifica quando 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 temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura di 0 significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato sono per lo più deterministici, ma è ancora possibile una piccola variazione.

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

0.0-1.0

max_tokens maxOutputTokens Numero massimo di token che possono essere generati nella risposta. Un token è di 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 diverse.

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 significa che il successivo token selezionato è il più probabile tra tutti nel vocabolario del modello (chiamato anche decodifica greedy), mentre una top-K di 3 significa che il token successivo viene selezionato tra i tre probabili token utilizzando la temperatura.

Per ogni passaggio di selezione dei token, vengono mostrati i token top-K con il vengono campionate. Quindi i token vengono ulteriormente filtrati in base a top-P con il token finale selezionato utilizzando il campionamento della temperatura.

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

1-40

top_p topP Top-P cambia il modo in cui il modello seleziona i token per l'output. Token selezionati dal più probabile (vedi top-K) al meno probabile fino alla somma delle probabilità equivale 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 seleziona 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 più risposte risposte casuali.

0.0-1.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

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

Installa 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