Migra a la API de Gemini desde Azure OpenAI

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

La API de Gemini es un servicio completamente administrado basado en la nube que te permite crear y entrenar modelos generativos con la consola de Google Cloud. Proporciona acceso a modelos de lenguaje grande (LLM), que puedes usar para crear una variedad de aplicaciones, incluidos chatbots, generadores de contenido y herramientas de creatividades.

Requisitos previos

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

Migra a la API de Gemini

Usa los siguientes temas para aprender a migrar a la API de Gemini desde un proyecto de OpenAI en Microsoft Azure.

Usa parámetros equivalentes de la API de Gemini

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

Parámetros de OpenAI Parámetros de la API de Gemini Descripción Valores válidos
prompt prompt Un mensaje es una solicitud de lenguaje natural enviada a un modelo de lenguaje para recibir una respuesta. Los mensajes pueden contener preguntas, instrucciones, información contextual, ejemplos y texto para que el modelo se complete o continúe. Texto
temperature temperature La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican topP y topK. La temperatura controla el grado de aleatorización en la selección de tokens. Las temperaturas más bajas son buenas para los mensajes que requieren una respuesta menos abierta o de creativa, mientras que las temperaturas más altas pueden generar resultados más diversos o creativos. Una temperatura de 0 significa que siempre se seleccionan los tokens de probabilidad más alta. En este caso, las respuestas para un mensaje determinado son, en su mayoría, deterministas, pero es posible que haya una pequeña cantidad de variación.

Si el modelo muestra una respuesta demasiado genérica, demasiado corta o el modelo proporciona una respuesta de resguardo, intenta aumentar la temperatura.

de 0.0 a 1.0

max_tokens maxOutputTokens Cantidad máxima de tokens que se pueden generar en la respuesta. Un token tiene casi cuatro caracteres. 100 tokens corresponden a casi 60 u 80 palabras.

Especifica un valor más bajo para las respuestas más cortas y un valor más alto para las respuestas potencialmente más largas.

1-8192 (OpenAI)

18192 (API de Gemini)

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

Para cada paso de selección de tokens, se muestran los tokens de K superior con las probabilidades más altas. Luego, los tokens se filtran según el superior con el token final seleccionado mediante el muestreo de temperatura.

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

de 1 a 40

top_p topP P superior cambia la manera en la que el modelo selecciona tokens para la salida. Los tokens se seleccionan desde el más alto (consulta K superior) hasta el menos probable, hasta que la suma de sus probabilidades sea igual al valor de P superior. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0.3, 0.2 y 0.1, y el valor P superior es 0.5, el modelo elegirá A o B como el siguiente token mediante la temperatura y excluirá a C como candidato.

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

de 0.0 a 1.0

stop stop_sequences Una secuencia de detención es una serie de caracteres (incluidos los espacios) que detienen la generación de respuesta si el modelo la encuentra. La secuencia no se incluye como parte de la respuesta. Puedes agregar hasta cinco secuencias de detención. La secuencia de detención en un array, por ejemplo, ["###"].

Usa el modelo equivalente de la API de Gemini

En la siguiente tabla, se describen los modelos de base disponibles.

Tipo Descripción Extremos de OpenAI Extremos de LLM de la API de Gemini
Texto Se ajustó para seguir las instrucciones de lenguaje natural y es adecuado para una variedad de tareas de lenguaje. gpt-3.5-turbo o gpt-4 gemini-1.0-pro
Chat Ajustado para casos de uso de conversaciones de varios turnos. gpt-3.5-turbo o gpt-4 gemini-1.0-pro

Instala, importa y autentica la API de Gemini de Vertex AI

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

Instala la API de Gemini de Vertex AI

Azure OpenAI

$ pip install --upgrade openai

API de Vertex AI Gemini

$ pip install google-cloud-aiplatform

Importa la API de Gemini de Vertex AI

Azure OpenAI

import openai

API de Vertex AI Gemini

from vertexai.preview.generative_models import GenerativeModel

Autentica la API de Gemini de Vertex AI

Azure OpenAI

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

API de Vertex AI Gemini

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

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

Genera 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 Vertex AI Gemini

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)

Usa 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 Vertex AI Gemini

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 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 Vertex AI Gemini

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)

¿Qué sigue?