Migrar a la API de Gemini desde Azure OpenAI

En esta página se describen los pasos necesarios para migrar a la API de Gemini en Vertex AI desde Microsoft Azure OpenAI.

La API de Gemini es un servicio totalmente gestionado basado en la nube que te permite crear y entrenar modelos generativos mediante la Google Cloud consola. Proporciona acceso a modelos de lenguaje extensos (LLMs), que puedes usar para crear una gran variedad de aplicaciones, como chatbots, generadores de contenido y herramientas creativas.

Requisitos previos

Para migrar un servicio de OpenAI de Microsoft Azure OpenAI a la API de Gemini en Vertex AI, primero debes crear un Google Cloud proyecto y un entorno de desarrollo. Para obtener más información, consulta Configurar un proyecto y un entorno de desarrollo.

Migrar a la API de Gemini

Consulta los siguientes temas para saber cómo migrar a la API de Gemini desde un proyecto de OpenAI en Microsoft Azure.

Usar parámetros equivalentes de la API de Gemini

A continuación, se muestran algunos parámetros comunes de Azure OpenAI y sus equivalentes en la API de Gemini:

Parámetros de OpenAI Parámetros de la API de Gemini Descripción Valores válidos
prompt prompt Una petición es una solicitud en lenguaje natural que se envía a un modelo de lenguaje para recibir una respuesta. Las peticiones pueden contener preguntas, instrucciones, información contextual, ejemplos y texto para que el modelo lo complete o lo continúe. Texto
temperature temperature La temperatura se usa para el muestreo durante la generación de respuestas, que se produce cuando se aplican topP y topK. La temperatura controla el grado de aleatoriedad en la selección de tokens. Las temperaturas más bajas son adecuadas para las peticiones que requieren una respuesta menos abierta o creativa, mientras que las temperaturas más altas pueden dar lugar a resultados más diversos o creativos. Una temperatura de 0 significa que siempre se seleccionan los tokens con la probabilidad más alta. En este caso, las respuestas a una petición determinada son mayormente deterministas, pero sigue siendo posible que haya una pequeña variación.

Si el modelo devuelve una respuesta demasiado genérica o demasiado corta, o bien una respuesta alternativa, prueba a aumentar la temperatura.

0.0-1.0

max_tokens maxOutputTokens Número máximo de tokens que se pueden generar en la respuesta. Un token tiene aproximadamente cuatro caracteres. 100 tokens corresponden aproximadamente a entre 60 y 80 palabras.

Especifica un valor inferior para las respuestas más cortas y un valor superior para las respuestas que puedan ser más largas.

1-8192 (OpenAI)

18192 (API de Gemini)

No disponible topK Top-K cambia la forma en que el modelo selecciona los tokens de salida. Un valor de K superior de 1 significa que el siguiente token seleccionado es el más probable de todos los tokens del vocabulario del modelo (también llamado decodificación voraz), mientras que un valor de K superior de 3 significa que el siguiente token se selecciona de entre los tres tokens más probables mediante la temperatura.

En cada paso de selección de tokens, se muestrean los K tokens principales con las probabilidades más altas. Después, los tokens se filtran en función de la probabilidad P máxima y el token final se selecciona mediante un muestreo de temperatura.

Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias.

1-40

top_p topP Top-P cambia la forma en que el modelo selecciona los tokens de salida. Los tokens se seleccionan de más probable a menos probable hasta que la suma de sus probabilidades sea igual al valor de top-P. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0,3, 0,2 y 0,1, y el valor de top_p es 0.5, el modelo seleccionará A o B como el siguiente token usando la temperatura y excluirá C como candidato.

Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias.

0.0-1.0

stop stop_sequences Una secuencia de parada es una serie de caracteres (incluidos los espacios) que detiene la generación de respuestas si el modelo la encuentra. La secuencia no se incluye en la respuesta. Puedes añadir hasta cinco secuencias de paradas. La secuencia de parada en una matriz, por ejemplo, ["###"].

Usar el modelo de la API de Gemini equivalente

En la siguiente tabla se describen los modelos fundacionales disponibles.

Tipo Descripción Endpoints de OpenAI Puntos de conexión de LLMs de la API de Gemini
Texto Se ha optimizado para seguir instrucciones en lenguaje natural y es adecuada para una gran variedad de tareas lingüísticas. gpt-3.5-turbo o gpt-4 gemini-1.0-pro
Chat Afinado para casos prácticos de conversaciones de varias interacciones. gpt-3.5-turbo o gpt-4 gemini-1.0-pro

Instalar, importar y autenticar la API de Gemini en Vertex AI

Usa el SDK de Vertex AI para Python para instalar, importar y autenticar la API de Gemini en Vertex AI. A continuación, se muestran los métodos equivalentes para el SDK de Vertex AI para Python y Azure OpenAI.

Instalar la API de Gemini en Vertex AI

Azure OpenAI

$ pip install --upgrade openai

API de Gemini en Vertex AI

$ pip install google-cloud-aiplatform

Importar la API de Gemini en Vertex AI

Azure OpenAI

import openai

API de Gemini en Vertex AI

from vertexai.preview.generative_models import GenerativeModel

Autenticar la API de Gemini en Vertex AI

Azure OpenAI

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

API de Gemini en Vertex AI

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

Comparaciones y código de ejemplo de la API de Gemini en Vertex AI y Azure

Generar texto con el SDK de Vertex AI para 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 de Gemini en 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)

Usar la finalización de chat con el SDK de Vertex AI para 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 de Gemini en 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)

Generar código con el SDK de Vertex AI para 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 de Gemini en 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)

Migrar peticiones a modelos de Gemini

Si tienes conjuntos de peticiones que has usado anteriormente con Azure OpenAI, puedes optimizarlos para usarlos con modelos de Google mediante el optimizador de peticiones de Vertex AI (vista previa).

Siguientes pasos