Saltar al contenido principal

Azure OpenAI: Guía de iniciación paso a paso

Una introducción a los servicios de OpenAI que ofrece la plataforma Microsoft Azure. Aprende a configurar OpenAI en Azure, a realizar tareas sencillas y a supervisar el servicio.
Actualizado 21 feb 2025  · 35 min de lectura

Azure OpenAI permite acceder a los modelos de OpenAI, como el GPT-4, utilizando la plataforma de servicios en la nube Azure

En este tutorial, presento Azure OpenAI y muestro cómo empezar a utilizarlo. Veremos cómo crear una cuenta, desplegar un modelo de IA y realizar varias tareas sencillas utilizando la API.

¿Qué es Azure OpenAI?

Azure ofrece una gama completa de servicios web, desde bases de datos SQL hasta soluciones de almacenamiento y análisis de datos como Azure Synapse. Muchos usuarios de estos servicios necesitan integrar los modelos de OpenAI en sus flujos de trabajo. 

El método tradicional de acceder a los modelos de OpenAI es a través de la API de OpenAI. Azure OpenAI es la oferta de Microsoft de los modelos de OpenAI a través de la plataforma Azure. Permite a los usuarios de Azure integrar los servicios de OpenAI (procesamiento del lenguaje natural, generación de código, generación de imágenes y muchos más) en su infraestructura basada en Azure.

Así, los desarrolladores no necesitan aprender una nueva plataforma de servicios web e integrarla en sus flujos de trabajo. Como se basa en la plataforma Azure, es fácil de escalar y manejar cargas de trabajo pesadas. Los desarrolladores y las organizaciones que utilizan la plataforma Azure pueden utilizar la misma interfaz familiar para aprovisionar, gestionar, supervisar y presupuestar los servicios basados en IA. También facilita la gestión de los flujos de trabajo de cumplimiento y pago.

Desarrollar aplicaciones de IA

Aprende a crear aplicaciones de IA utilizando la API OpenAI.
Empieza a hacer Upskilling gratis

Configuración de Azure OpenAI

En esta sección, muestro cómo configurar Azure OpenAI. Supongo que tienes alguna experiencia en el uso de Azure. 

Ten en cuenta que las interfaces de usuario cambian con frecuencia. Por tanto, la disposición y el texto de los distintos apartados y títulos de las instrucciones y capturas de pantalla pueden cambiar con el tiempo o de una región a otra.

Paso 1: Crear una cuenta Azure

Ve a la página principal de Azure OpenAIy selecciona Iniciar sesión en la parte superior derecha. Inicia sesión con tu cuenta Microsoft. Si no tienes una cuenta Microsoft, selecciona la opción de crear una cuenta nueva en la página de inicio de sesión y crea una cuenta Microsoft. 

A continuación, crea una cuenta Azure siguiendo los pasos que se indican a continuación:

  1. Iniciando sesión con tu cuenta Microsoft en el Portal Azure. Selecciona la opción Comenzar con una prueba gratuita de Azure.

Azure Portal

The Microsoft Azure Portal.

  1. En la página siguiente, selecciona la opción de crear una cuenta gratuita de cuenta gratuita Azure con 200 $ de créditos gratuitos.

Elige una cuenta Azure

Elige un tipo de cuenta Azure.

  1. Rellena tus datos personales en el formulario.

Crear una cuenta Azure gratuita

Crea una cuenta Azure gratuita.

  1. Verifica tu identidad utilizando una tarjeta de crédito o débito. Ten en cuenta que puede haber un cargo temporal por retención (normalmente unos céntimos o equivalente) que se cargará en tu cuenta. 

Verifica tu cuenta Azure

Verifica tu cuenta Azure (captura de pantalla del autor) 

  1. Tras verificar tu información de pago, selecciona Ir al Portal Azure. Te redirige al Centro de Inicio Rápido.
  2. Ten en cuenta que los créditos gratuitos de 200 $ no pueden utilizarse para los servicios Azure OpenAI. Sólo se puede acceder a los modelos de Azure OpenAI con una cuenta de pago. Para actualizar tu cuenta a una suscripción de pago por uso, vuelve al portal de Azure y selecciona Actualizar en la barra superior .

Actualiza tu cuenta Azure

Actualiza tu cuenta Azure.

  1. Rellena los datos de la página de ampliación y selecciona Pasar a pago por uso.

Tras pasar a una cuenta de pago, podrás acceder a los modelos de OpenAI. 

Paso 2: Accede a Azure OpenAI en el portal Azure

  1. Vuelve al portal de Azure, que muestra una variedad de servicios, como servicios de IA, máquinas virtuales, cuentas de almacenamiento y más. 

Azure portal

Portal Azure mostrando los servicios disponibles.

  1. Selecciona los servicios Azure AI y ve a la página de inicio de los servicios AI. Azure ofrece varios servicios basados en IA, como reconocimiento facial, detección de anomalías, voz, visión por ordenador, OpenAI, etc. 

Servicios Azure AI

Servicios Azure AI.

  1. En la Cuenta Azure OpenAI selecciona la pestaña Ver de Azure OpenAI.
  2. Esto te lleva a la páginaAzure OpenAI , que muestra la lista de instancias OpenAI de tu cuenta. Selecciona Crear Azure OpenAI para crear una nueva instancia. También puedes seleccionar Crear en la página anterior .
  3. Introduce los datos a continuación:
    • En Suscripciónselecciona el nombre de tu suscripción de pago.
    • En Grupo de recursosselecciona Crear nuevo:
      • Introduce un nombre para el nuevo grupo de recursos. 

Crear una nueva instancia Azure OpenAI

Crea una nueva instancia de Azure OpenAI.

      • En Región, selecciona la región más cercana.
      • En Nombreintroduce un nombre único.
      • Bajo el Nivel de precioselige Estándar S0.
      • Selecciona Siguiente para continuar.
  1. En la sección Red, selecciona "Todas las redes, incluida Internet, pueden acceder a este recurso." A continuación, pasa al siguiente paso.
  2. En la secciónEtiquetas, introduce pares nombre-valor para categorizar esta instancia. Esto ayuda a consolidar la facturación. Este paso es opcional. 
  3. En la siguiente sección, selecciona Revisar + enviar, vuelve a comprobar los valores y selecciona Crear. Esto despliega una nueva instancia de OpenAI. 
  4. Al cabo de unos instantes, aparece el mensaje "Tu despliegue ha finalizado." En esta página, selecciona Ir al recurso.
  5. En la página de recursos, selecciona el nombre del recurso en la casilla Recursos pestaña Recursos.

Paso 3: Configurar el acceso a la API

La página de recursos muestra los detalles de la instancia. 

La pestañaDesarrollar muestra las claves de la API y las URL de los puntos finales de la API para esta instancia. Las claves se han generado automáticamente para ti. 

  • Copia las claves y el punto final en un archivo de texto.

Obtendrás dos claves API. Esto te permite utilizar la segunda clave en caso de que la primera se vea comprometida. También puedes utilizar la segunda tecla mientras regeneras la primera. Esto te permite rotar las llaves periódicamente sin sufrir ningún tiempo de inactividad. 

Claves API de la instancia OpenAI de Azure

Claves API de la instancia OpenAI de Azure

  • En el Monitorizar comprueba las métricas de uso de esta instancia.
  • En el Empezar selecciona Explorar Azure AI Foundry portal para abrir la zona de juegos de IA en una página nueva.

Zona de juegos del chat Azure OpenAI

Zona de juegos del chat Azure OpenAI.

  • Selecciona el Chat zona de juegos en el menú de la izquierda.
  • En Despliegueselecciona Crear nuevo despliegue.
    • Selecciona De modelos base en la ventana emergente de nuevo despliegue
  • Aparece una ventana emergente que te permite seleccionar el modelo. 
    • En la barra de búsqueda, escribe "gpt-3". 
    • Selecciona gpt-35-turbo de la lista. Se trata de un modelo económico optimizado para las terminaciones de chat. Después de conseguir una configuración que funcione, cambia a un modelo más avanzado (y más caro) si es necesario.
    • Selecciona Confirmar.
  • En el Desplegar modelo selecciona Personalizar.
    • Reduce el Límite de Tasa de Fichas por Minuto a un valor bajo (por ejemplo, 12 peticiones por minuto) para realizar pruebas manuales. Auméntalo más adelante, cuando pongas el modelo en producción. 
    • Desactivar cuota dinámica. No lo necesitarás hasta que la implantación reciba mucho tráfico. 
    • Selecciona Despliega.

Despliega el nuevo modelo en el campo de juego del chat

Despliega un nuevo modelo en el campo de juego del chat.

Eso es. En la siguiente sección, veremos cómo acceder a este despliegue del modelo OpenAI gpt-35-turbo

Regenerar claves API

Es aconsejable regenerar periódicamente las claves de acceso a la API. Esto garantiza que la cuenta no se vea comprometida si se filtran inadvertidamente claves antiguas. Los pasos siguientes describen cómo regenerar claves:

  • En Gestión de Recursos, en el menú de la izquierda, elige Claves y Punto Final.
  • Regenera cada llave individualmente. 

Claves API de la instancia OpenAI de Azure

Claves API de la instancia OpenAI de Azure.

Uso de Azure OpenAI en aplicaciones

Tras configurar Azure OpenAI y desplegar un modelo, veremos cómo acceder a él mediante programación. 

Paso 1: Configurar tu entorno de desarrollo

Mostraré cómo utilizar Python para conectar con Azure OpenAI. Instala las bibliotecas necesarias:

$ pip install openai

Si utilizas un portátil, ejecuta el siguiente comando. Nota: Estoy utilizando un cuaderno DataLab.

!pip install openai

Importa los paquetes necesarios en el intérprete de comandos Python o en el bloc de notas:

import os
from openai import AzureOpenAI

El módulo AzureOpenAI permite acceder a los servicios de OpenAI dentro de Azure. Esto es diferente del módulo OpenAI utilizado para acceder a la API independiente de OpenAI .

Antes de utilizar Azure OpenAI, establece la clave API y el punto final en tu entorno. El apartado anterior mostraba cómo encontrar estos valores. En principio, puedes establecerlos dentro del entorno de programación, pero te recomiendo que no lo hagas nunca. Nunca expongas las claves API en el programa. 

Establecer claves API utilizando el terminal

Para ejecutar Python localmente, establece la variable de entorno en el archivo de configuración del intérprete de comandos. Te mostraré cómo configurarlo para el intérprete de comandos Bash. 

  • Edita el archivo .bashrc en un editor de texto .
  • Al final del archivo, añade estas dos líneas:
    • export AZURE_OPENAI_API_KEY=MY_API_KEY'
    • export AZURE_OPENAI_ENDPOINT=MY_ENDPOINT'
  • Guarda y cierra el archivo.
  • Recarga los cambios en el terminal utilizando el comando source ~/.bashrc.
  • Para otras conchas, como sh o zsh, el proceso puede ser ligeramente diferente .
  • Abre (o reabre) el intérprete de comandos Python en la misma sesión de terminal. 

Importa la clave de la API y los valores del punto final en el terminal de Python:

azure_openai_api_key = os.getenv["AZURE_OPENAI_API_KEY"]
azure_openai_endpoint = os.getenv["AZURE_OPENAI_ENDPOINT"]

Establecer claves API utilizando cuadernos en línea (DataLab)

DataLab te permite establecer directamente variables de entorno para un bloc de notas.

  • En la barra de menú superior, selecciona Entorno y elige Variables de entorno en el desplegable. 
  • Selecciona la opción para añadir variables de entorno. 
  • Añade dos variables, AZURE_OPENAI_API_KEY y AZURE_OPENAI_ENDPOINT, y sus respectivos valores .
  • Da un nombre a este conjunto de valores de entorno y guarda los cambios. 

En el cuaderno, extrae estos valores como se muestra a continuación:

azure_openai_api_key = os.environ["AZURE_OPENAI_API_KEY"]
azure_openai_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"]

Paso 2: Haz tu primera llamada a la API de Azure OpenAI

Ahora puedes utilizar la función AzureOpenAI() para crear un objeto client que acepte solicitudes. Esta función utiliza los siguientes parámetros:

  • api_version: La versión de la API Azure OpenAI. Consulta la última versión en la documentación de Azure
  • api_key: la clave de la API Azure OpenAI. Obtén esto de las variables de entorno que estableciste antes. No lo configures manualmente aquí. 
  • azure_endpoint: la URL del punto final de la API Azure OpenAI (obtén este valor del entorno). 
client = AzureOpenAI(
    api_version="2024-06-01",
    api_key=azure_openai_api_key,
    azure_endpoint=azure_openai_endpoint
)

Utiliza este objeto client para tareas como completar chats utilizando la función .chat.completions.create(). Esta función acepta los siguientes parámetros:

  • model: El nombre del modelo. En versiones anteriores de la API de OpenAI, éste solía ser el parámetro engine. Ten en cuenta que el parámetro model tiene que coincidir con el modelo especificado durante el despliegue (en el portal de Azure AI Foundry). Si intentas utilizar un modelo distinto al desplegado, se produce un error como el que se muestra a continuación: 
NotFoundError: Error code: 404 - {'error': {'code': 'DeploymentNotFound', 'message': 'The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.'}}
  • messages: Este parámetro especifica la conversación entre el usuario y el modelo. Consiste en un conjunto de objetos de mensaje. Cada objeto mensaje tiene un par clave-valor denotado por role (ya sea system, user, o assistant) y content(el texto del mensaje). Estos objetos de mensaje proporcionan el contexto de la interacción y guían las respuestas del modelo. 

A continuación, doy ejemplos de pares clave-valor (role, content ) para distintos valores de role:

  • user: la consulta introducida por el usuario final. 

Ejemplo: {“role”: “user”, “content”: “explain the difference between rational and irrational numbers”}

  • system: la descripción del papel que se espera que desempeñe OpenAI en la interacción. 

Ejemplo: {“role”: “system”, “content”: “you are a helpful teacher to guide elementary mathematics students”}

  • assistant: la respuesta esperada de OpenAI. 

Ejemplo: {“role”: “assistant”, “content”: “the difference between rational and irrational numbers is … an example explanation …”}

La función assistant sólo es necesaria cuando se proporcionan datos de entrenamiento para afinar el modelo. Cuando utilices el client para tareas como completar chats, sólo son suficientes los roles user y system. Para muchas tareas sencillas, basta con la función user .

  • max_tokens: este parámetro decide el número máximo de tokens que pueden utilizarse para procesar (tanto la entrada como la salida de) la llamada a la API. Se te cobran directamente las fichas que utilizas. El valor por defecto es 16. Este valor es suficiente para casos de uso sencillos; por tanto, este parámetro puede omitirse. 
simple_completion = client.chat.completions.create(
    model="gpt-35-turbo",  
    messages=[
        {
            "role": "user",
            "content": "Explain the difference between OpenAI and Azure OpenAI in 20 words",
        },
    ],
)

Imprime la salida de la tarea de finalización del chat:

print(simple_completion.to_json())

La salida es un objeto JSON con varios pares clave-valor. Incluye la salida del modelo, como se muestra en el ejemplo siguiente. Ten en cuenta que assistant es el rol por defecto asignado al modelo .

"message": {
   "content": "OpenAI is a research organization focused on advancing AI, while Azure OpenAI is a collaboration between Microsoft and OpenAI.",
   "role": "assistant"
},

Paso 3: Utilizar modelos OpenAI para diferentes tareas

Para acceder a cualquier modelo con Azure OpenAI, primero debes desplegar el modelo. En la sección anterior, desplegaste el modelo gpt-35-turbo. Para utilizar un modelo diferente:

  • Vuelve a Azure AI Foundry y despliega un modelo diferente, como se explica en la sección anterior. Elige entre varios modelos como GPT-3.5, GPT-4o, o1 y o1-mini, o3 y o3-mini, y más .
  • Reescribe las indicaciones anteriores (en la función chat.completions.create() ) utilizando el nombre del nuevo modelo .

En versiones anteriores de OpenAI, era habitual utilizar distintos modelos para distintas tareas. Había modelos dedicados a la generación de código, PNL y más. Los modelos modernos como GPT-3.5 y GPT-4 pueden realizar todas las tareas generativas basadas en texto. Así, muchos de los antiguos modelos de tareas específicas (como los modelos davinci para la generación de código) han ido desapareciendo .

Ahora examinaremos cómo utilizar la API para diversas tareas sencillas, como responder preguntas y resumir textos. En las tareas de ejemplo que aparecen a continuación, utilizamos el mismo modelo-GPT-3.5. También puedes elegir uno de los modelos GPT-4. 

Como ambas son tareas basadas en texto, vamos a declarar primero un bloque de texto sobre el que trabajar. He copiado arbitrariamente una reseña de un par de botas de un sitio web de comercio electrónico. Asigna el texto de esta reseña a una variable text. Asegúrate de escapar cualquier carácter de comilla simple o doble dentro del texto. 

text = 'Comfort and Quality wise the boots are absolutely excellent. A 10 miles hike along the city Streets and the alps nearby felt like a smooth sail. The most plus it was quite well ventilated cause of the heavy duty Gore-tex material. After 12 hours when I removed it, there was just very little bit of perspiration (My foot sweats a lot) and absolutely no foul smell. Speaking of the Gore-Tex I would say, I sported this on a heavy rainy day after buying it in India, I was fearing the boot, though not very much like normal boots, would still be drenching with water, instead it was very little soaked. And some 5-6 hours later it was completely dry (Kept inside a closed room in the night). The only disadvantage I think is, that it fits my foot perfectly according to the size I chose, and there is no slight pain from 7 AM till 8 PM due to the shoe weight (of course its 1.2 KG, even though it doesn\'t feel like)' 

Resumen de texto 

Para resumir el texto anterior:

  • Utiliza el objeto client creado anteriormente .
  • Pasa los roles apropiados dentro del parámetro messages como se muestra en el siguiente ejemplo :
summary_completion = client.chat.completions.create(
    model="gpt-35-turbo", 
    messages=[
        {
         "role": "system",
         "content": "You are a helpful assistant for summarizing text"
        },
        {
            "role": "user",
            "content": f"Summarize this text in 10 words: {text}",
        },
    ],
)

Observa cómo pasamos el texto como una variable en el prompt del fragmento anterior.

print(summary_completion.to_json())

La salida contiene el resumen del asistente del texto largo, como se muestra en este extracto: 

"message": {
   "content": "Excellent comfort and quality, well-ventilated, quick-drying, lightweight boots, minimal perspiration, no foul smell.",
   "role": "assistant"
},

Respuesta a la pregunta

Para responder a las preguntas (basadas en el texto de entrada anterior), modificamos el indicador para pasar la pregunta como una variable de cadena. Como antes, el indicador también incluye el texto como variable. El modelo responde a la pregunta basándose en el texto dado. 

question = 'Are these shoes heavy?'

qna_completion = client.chat.completions.create(
    model="gpt-35-turbo", 
    messages=[
        {"role": "system",
         "content": "You are a helpful assistant for answering questions"
        },
        {
            "role": "user",
            "content": f"Answer this question: {question} in 10 words based on this text: {text}",
        },
    ],
)

Convierte la salida en JSON e imprímela:

print(qna_completion.to_json())

La salida incluye la respuesta del asistente a la pregunta:

"message": {
   "content": "Lightweight. Not heavy. Comfortable for long hikes. Well-ventilated Gore-tex material.",
   "role": "assistant"
},

Obtén la certificación AZ-900 de Azure

Prepárate para el PL-300 de Azure y consigue un 50% de descuento en el precio del examen.

Casos de uso de Azure OpenAI

Veamos ahora los distintos casos de uso del servicio Azure OpenAI.

Procesamiento del lenguaje natural (PLN)

Al ser un modelo lingüístico en esencia, los modelos de propósito general de OpenAI, como GPT-3 y GPT-4, destacan en tareas de PNL, como:

  • Resumen de textos: Proporciona a la API un gran fragmento de texto como entrada y pídele que lo resuma según tus necesidades. En el ejemplo anterior, resumimos la larga reseña del cliente en un resumen de 10 palabras.
  • Clasificación de textos: Dado un documento (o un conjunto de documentos) y un conjunto de etiquetas predefinidas, OpenAI puede clasificar el documento o documentos en la etiqueta más adecuada. 
  • Análisis del sentimiento: La API puede analizar un texto de entrada para medir su sentimiento. Por ejemplo, puede clasificar una opinión de un cliente como positiva, negativa o neutra.

En el siguiente ejemplo, realizamos un análisis de sentimiento para clasificar el texto de la reseña del cliente (definido anteriormente).

sentiment_classification = client.chat.completions.create(
    model="gpt-35-turbo", 
    messages=[
        {"role": "system",
         "content": "You are a helpful assistant for classifying customer reviews into one of the following categories: very positive, positive, neutral, negative, very negative"
        },
        {
            "role": "user",
            "content": f"Classify this review: {text}",
        },
    ],
    #max_tokens=16
)

print(sentiment_classification.to_json())

El resultado contiene un fragmento parecido al que se muestra a continuación. Contiene la clasificación de la revisión por parte del asistente:

"message": {
   "content": "This review can be classified as very positive.",
   "role": "assistant"
},

Generación de código

Los modelos de OpenAI pueden generar código en varios lenguajes de programación. Las versiones anteriores de OpenAI tenían modelos específicos de código, como Codex y code-davinci, que se ajustaban a la generación de código .

Sin embargo, las versiones más recientes de OpenAI, como GPT-3.5 y GPT-4, generan código sin ajuste fino. Los modelos base se preentrenan en conjuntos de datos basados en la codificación. Así, Codex, code-davinci y muchos otros modelos heredados han quedado obsoletos y ya no están disponibles para nuevas implantaciones. 

Los modelos de OpenAI pueden ayudar a escribir código en varios lenguajes de programación comunes. Interactúa con el modelo en lenguaje natural para dar instrucciones sobre tareas de programación como: 

  • Generar código: Dado un mensaje de texto o un comentario, el modelo puede generar un fragmento de código. El programador puede combinar varios de estos fragmentos en un programa que funcione correctamente. Esto ayuda a automatizar tareas repetitivas como escribir código repetitivo. 
  • Depurar: El modelo puede analizar errores y mensajes de advertencia para explicar el problema en lenguaje natural y hacer sugerencias sobre cómo solucionarlo. 
  • Optimiza: Los modelos OpenAI pueden ayudar a refactorizar el código en estructuras más limpias y a utilizar algoritmos más eficientes para tareas comunes como la ordenación. 
  • Explica: Los modelos de OpenAI también pueden explicar los fragmentos de código que generan. Estas explicaciones ayudan a personalizar el código generado para adaptarlo a las necesidades del desarrollador. También pueden ayudar a los nuevos programadores a entender los conceptos de programación. 

Considera un ejemplo sencillo de escribir una función Python para abrir y leer un archivo. Es una tarea bastante común que puede automatizarse fácilmente. Pedimos a OpenAI que genere y explique el código. Utiliza el objeto client creado anteriormente .

code_completion = client.chat.completions.create(
    model="gpt-35-turbo", 
    messages=[
        {"role": "system",
         "content": "You are a helpful assistant for generating programming code"
        },
        {
            "role": "user",
            "content": "Write and explain a Python function to open and read a file",
        },
    ],
)

Imprime la salida: 

print(code_completion.to_json())

Observa que el objeto JSON de salida contiene el resultado del asistente parecido al extracto de muestra que aparece a continuación: 

"content": "Below is a Python function that opens a file, reads its contents, and returns the content as a string:\n\n```python\ndef read_file(file_path):\n    try:\n        with open(file_path, 'r') as file:\n …

Generación de imágenes con DALL-E

Todos los ejemplos anteriores estaban basados en texto. Utilizaron OpenAI como gran modelo lingüístico (LLM), que suele construirse utilizando la arquitectura de transformadores. Además de los LLM, OpenAI incluye modelos basados en difusores, como DALL-E, que generan imágenes a partir de un estímulo de entrada. 

Para utilizar DALL-E, proporciona un texto con una descripción detallada de la imagen que quieres ver. Basándose en esta descripción, DALL-E genera una imagen de alta calidad. Esto es útil para tareas como crear ilustraciones, diseñar conceptos de productos, hacer bocetos para campañas de marketing, etc. 

DALL-E no está disponible actualmente en todas las regiones geográficas. Si está disponible en tu región, crea una nueva implantación (como se ha explicado antes en este tutorial) pero utilizando el modelo DALL-E-3 en lugar de GPT-3. Accede al modelo DALL-E utilizando el mismo objeto client descrito anteriormente. Utiliza el método client.images.generate() para generar una imagen :

  • Establece el nombre del modelo como dalle3 utilizando el parámetro model .
  • Describe la imagen deseada con el parámetro prompt .
  • También puedes especificar un valor para n, que es el número de imágenes a generar .
result = client.images.generate(
    model="dalle3", 
    prompt="An owl wearing a Christmas hat",
    n=1
)

Extrae el objeto de respuesta JSON de la respuesta del modelo: 

import json
json_response = json.loads(result.model_dump_json())

Declara el directorio de imágenes. Ten en cuenta que el directorio images debe existir bajo el directorio de trabajo actual (desde el que iniciaste el intérprete de comandos Python) .

image_dir = os.path.join(os.curdir, 'images')

Especifica la ruta de la imagen en este directorio:

image_path = os.path.join(image_dir, 'generated_image.png')

Extrae la URL de la imagen generada del objeto de respuesta JSON, descarga la imagen (como un flujo) y escríbela en el archivo de imagen:

image_url = json_response["data"][0]["url"]  
generated_image = requests.get(image_url).content  
with open(image_path, "wb") as image_file:
    image_file.write(generated_image)

Muestra la imagen:

from PIL import Image

image = Image.open(image_path)
image.show()

Buenas prácticas para utilizar Azure OpenAI

Utilizar el servicio Azure OpenAI es sencillo, pero como con toda tecnología, hay que seguir algunas prácticas recomendadas para sacarle el máximo partido. Vamos a repasarlos en esta sección.

Supervisar y gestionar el uso de la API

Azure OpenAI es uno de los servicios más caros de Azure. Ni siquiera los créditos gratuitos disponibles para las cuentas nuevas son utilizables para la API de OpenAI. Por tanto, es esencial hacer un seguimiento del uso, incluso para los nuevos usuarios. El uso descontrolado de la API puede dar lugar a facturas inesperadamente elevadas.

Las tarifas de OpenAI se basan en el uso y consumo de tokens. Las fichas representan unidades de texto procesadas por el modelo, tanto de entrada como de salida. Procesar un documento de texto grande consume más tokens que generar una respuesta más larga. Cuantas más fichas utilices, más pagarás. Por tanto, sé económico con la información que das al modelo o que le pides que genere. 

Utiliza el parámetro max_tokens para limitar el número de tokens consumidos en esa petición. Para los modelos de producción, experimenta para determinar cuántos tokens suelen necesitar tus solicitudes o usuarios y limita el uso en consecuencia. Aumenta el límite caso por caso. 

Para controlar las métricas básicas:

  • Desde Servicios Azure AI | Azure OpenAI selecciona el recurso que quieres monitorizar.
  • En la página de recursos, elige la opción Monitorizar para ver varias métricas, como el número de peticiones HTTP y el número de tokens procesados por modelo y por despliegue.

Panel de métricas de Azure OpenAI

Panel de métricas de Azure OpenAI.

También puedes ver métricas más detalladas:

  • Desde el Monitorización del menú de la izquierda, selecciona Métricas.

Métricas detalladas de Azure OpenAI

Métricas detalladas de Azure OpenAI.

  • En la sección Selecciona un ámbito selecciona la instancia OpenAI (marca la casilla de verificación)
  • Selecciona Aplica.

Sobre la Métricas página:

  • Selecciona la ventana de tiempo en la parte superior derecha. 
  • En la barra de menú situada en la parte superior del gráfico (inicialmente vacío), selecciona la métrica adecuada en el desplegableMétrica. Elige entre varias métricas como
    • Solicitudes de Azure OpenAI, 
    • Estadísticas sobre el uso de fichas (fichas activas, fichas generadas, etc.)
    • Rendimiento de las llamadas a la API (tiempo hasta el primer byte, etc.), y mucho más. 

Ejemplo de monitorización de Azure OpenAI

Ejemplo de monitorización de Azure OpenAI.

Por último, establece siempre límites presupuestarios en las cuentas API y configura los ajustes para recibir alertas por correo electrónico cuando cruces un umbral presupuestario. 

Modelos de ajuste

Los modelos base de OpenAI se entrenan en enormes conjuntos de datos que abarcan muchos dominios diferentes. A grandes rasgos, hay tres formas diferentes de obtener el resultado deseado de los modelos LLM: 

  • Ingeniería rápida: Para la mayoría de los casos de uso, basta con añadir instrucciones específicas a la consulta. Esto se llama ingeniería rápida
  • Aprendizaje de pocos disparos: En los casos en que la ingeniería del prompt sea insuficiente, undd algunos ejemplos al prompt para ayudar al modelo a entender las respuestas deseadas por el usuario. Esto se denomina aprendizaje de pocos ejemplos, en el que el modelo aprende basándose en un número reducido de ejemplos. 
  • Ajuste fino: A veces, quieres charlar con el modelo sobre un ámbito muy especializado, por ejemplo, basado en un manual de reparación de equipos especializados. Generar texto sobre este tema implica utilizar jerga y patrones lingüísticos específicos del dominio, que probablemente no formen parte de los conjuntos de datos públicos (sobre los que se entrenaron los modelos base). 

Puedes afinar un modelo base si el aprendizaje de pocos disparos y la ingeniería rápida no ayudan a obtener las respuestas adecuadas. 

El ajuste fino consiste en volver a entrenar un modelo base preentrenado en un conjunto de datos especializado. En la práctica, sólo se reentrenan algunas capas del modelo base (no todo el modelo) con los nuevos datos. El tutorial de ajuste de Azure explica los pasos para ajustar un popular modelo de OpenAI. 

Recuerda que para afinar con éxito un modelo base, necesitas grandes volúmenes de datos relevantes y de alta calidad, con miles de ejemplos de entrenamiento. Además, el ajuste fino implica invariablemente grandes costes iniciales para entrenar el modelo. Además, el modelo ajustado tiene que alojarse a tu costa antes de desplegarse. 

Proteger tus claves API

Se puede abusar de las claves API expuestas públicamente para acceder a información sensible, realizar tareas inseguras y/o ilegales, o hacer solicitudes no autorizadas, lo que puede suponer una gran factura para el propietario de la cuenta. Por tanto, es crucial gestionar de forma segura las claves API en lugar de codificarlas en el código fuente. Para ello, se pueden adoptar varios enfoques: 

  • Para los servicios en la nube, utiliza herramientas de gestión de claves como AWS Secrets Manager y Azure Key Vault.
  • Utiliza los archivos .env para almacenar claves en formato clave-valor. Añade este archivo a la lista .gitignore para asegurarte de que no se envíe al repositorio de código .
  • Para los servicios basados en el cuaderno Jupyter, utiliza la opción de almacenar claves como parte del entorno. Este método se ha descrito anteriormente en este tutorial. 

Aconsejo restringir los permisos para qué tareas se pueden utilizar las claves. También es útil rotar o regenerar las claves periódicamente para que las antiguas no puedan utilizarse indebidamente en caso de que se filtren.

Conclusión 

En este tutorial, hablamos de empezar con una cuenta Azure, configurar los servicios de OpenAI, crear una nueva instancia de OpenAI y desplegar un modelo. A continuación vimos ejemplos de utilización de modelos OpenAI para tareas prácticas. También cubrimos cómo supervisar el uso y el rendimiento de los recursos de Azure OpenAI. 

Para profundizar en el conocimiento de Microsoft Azure, sigue el tema Fundamentos de Azure del DataCamp. Para saber más sobre los conceptos básicos de la OpenAI, sigue el tema Fundamentos de la OpenAI del DataCamp

Obtén una certificación superior en IA

Demuestra que puedes utilizar la IA de forma eficaz y responsable.

Preguntas frecuentes

¿En qué se diferencia Azure OpenAI de OpenAI?

Azure OpenAI permite a los usuarios de Azure acceder a los modelos de OpenAI desde la plataforma Azure. Así, los usuarios de Azure pueden evitar tener que configurar y gestionar otra plataforma de software. También facilita la integración con otros servicios basados en Azure.

¿Permite Azure OpenAI afinar los modelos?

Sí, puedes suministrar conjuntos de datos de entrenamiento y validación adaptados a tu caso de uso específico y utilizarlos para afinar un modelo base. 

Sin embargo, ten en cuenta que el rendimiento del modelo afinado depende en gran medida de la calidad de los datos de entrenamiento. Los datos de mala calidad o irrelevantes provocan un rendimiento degradado en comparación con el modelo base.

¿Qué métodos puedo utilizar para acceder a Azure OpenAI?

Puedes acceder a los servicios de Azure OpenAI de dos formas: mediante la aplicación web de Azure o mediante la API. La aplicación web funciona como la interfaz web ChatGPT. Puedes interactuar mediante programación con los modelos utilizando la API. La API permite integrar las herramientas de IA con otras aplicaciones.

¿Qué idiomas puedo utilizar con la API Azure OpenAI?

Azure OpenAI admite varios lenguajes como C#, Go, Java, JavaScript, Python y REST (peticiones HTTP). Python es uno de los lenguajes más utilizados debido a su popularidad en el ámbito de la ciencia de datos y la IA/ML. Y lo que es más importante, el ecosistema Python incluye muchas herramientas para trabajar con grandes conjuntos de datos. 

Para integrarte con aplicaciones del lado del servidor, utiliza el mismo lenguaje que el resto de tu aplicación.

¿A qué modelos puedo acceder utilizando Azure OpenAI?

Azure OpenAI da acceso a modelos como GPT-4, GPT-4o, GPT-3.5, DALL-E (texto a imagen), Whisper (voz a texto), y muchos más. Puedes encontrar una lista de los modelos disponibles actualmente en la documentación de Azure.


Arun Nanda's photo
Author
Arun Nanda
LinkedIn

Arun es un antiguo fundador de startups que disfruta construyendo cosas nuevas. Actualmente explora los fundamentos técnicos y matemáticos de la Inteligencia Artificial. Le encanta compartir lo que ha aprendido, así que escribe sobre ello.

Además de en DataCamp, puedes leer sus publicaciones en Medium, Airbyte y Vultr.

Temas

¡Aprende más sobre Azure con los siguientes cursos!

curso

Understanding Microsoft Azure

3 hr
28.4K
Learn about the power of Microsoft Azure and cloud computing software to help you improve your data engineering skills.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

tutorial

Sinapsis Azure: Guía paso a paso para principiantes

Una guía fácil de seguir para que los principiantes aprendan Azure Synapse, que abarca desde la configuración de tu espacio de trabajo hasta la integración de datos y la ejecución de análisis.
Moez Ali's photo

Moez Ali

29 min

tutorial

Cuentas de almacenamiento Azure: Tutorial paso a paso para principiantes

Esta guía te enseña a configurar y gestionar las Cuentas de Almacenamiento de Azure, paso a paso. También explora opciones avanzadas de configuración para un rendimiento óptimo y una optimización de costes.
Anneleen Rummens's photo

Anneleen Rummens

20 min

tutorial

Guía para principiantes de la API de OpenAI: Tutorial práctico y prácticas recomendadas

Este tutorial te presenta la API de OpenAI, sus casos de uso, un enfoque práctico para utilizar la API y todas las prácticas recomendadas que debes seguir.
Arunn Thevapalan's photo

Arunn Thevapalan

13 min

tutorial

Base de datos Azure SQL: Configuración y gestión paso a paso

Aprende a crear, conectar, gestionar, consultar y proteger tu base de datos Azure SQL. Esta guía paso a paso cubre todo lo esencial para una configuración óptima de la base de datos.
Anneleen Rummens's photo

Anneleen Rummens

25 min

tutorial

Tutorial de la API de OpenAI Assistants

Una visión completa de la API Assistants con nuestro artículo, que ofrece una mirada en profundidad a sus características, usos en la industria, guía de configuración y las mejores prácticas para maximizar su potencial en diversas aplicaciones empresariales.
Zoumana Keita 's photo

Zoumana Keita

14 min

Ver másVer más