Introducción a Azure OpenAI Services- Potenciando Aplicaciones con IA_Itequia

Introducción a Azure OpenAI Services: Potenciando Aplicaciones con IA

En el mundo de la tecnología y el desarrollo de aplicaciones, la inteligencia artificial (IA) está revolucionando la forma en que interactuamos con el software. Azure OpenAI Services emerge como una solución integral para integrar IA en aplicaciones de cualquier escala, ofreciendo una gama de servicios avanzados de aprendizaje automático y procesamiento del lenguaje natural.

¿Qué es Azure OpenAI Services y cómo se compara con OpenAI?

Azure OpenAI Services es una plataforma de IA basada en la nube que permite a los desarrolladores integrar de forma sencilla capacidades avanzadas de aprendizaje automático y procesamiento del lenguaje natural en sus aplicaciones. Estos servicios incluyen capacidades de generación de lenguaje, reconocimiento de lenguaje natural, generación de código y mucho más, lo que permite a los desarrolladores crear aplicaciones más inteligentes e innovadoras. 

Una diferencia clave con OpenAI radica en que con Azure OpenAI, los clientes obtienen las funcionalidades de seguridad de Microsoft Azure mientras ejecutan los mismos modelos que OpenAI.

  • Posibilidad de crear una instancia en una zona regional específica. 
  • Posibilidad de crear redes privadas. 
  • Filtrado de contenido de IA responsable. 
Introducción a Azure OpenAI Services Potenciando Aplicaciones con IA

Modelos Disponibles en Azure OpenAI Services

Azure OpenAI Services proporciona acceso mediante su API REST a los eficaces modelos de lenguaje de OpenAI, incluyendo GPT 3.5 Turbo, GPT 4 y GPT 4 con Vision (es importante consultar la disponibilidad de los modelos por zona regional, ya que actualmente los modelos GPT4 y GPT4 con Vision no están disponibles en Europa). 

Herramientas Ofrecidas por Azure OpenAI Services

Para sacar el máximo partido a los servicios de Azure OpenAI Services, tendremos disponible una API REST en una instancia específica que tendremos que crear en nuestra suscripción de Microsoft Azure.  

Esta API cuenta con varias versiones, desde la versión Legacy (Completions), Chat Completion (la estable), y Assistants, la más reciente (aún en fase beta), que nos permiten explotar todas las capacidades de los modelos disponibles, con algunas diferencias. 

Actualmente, en la versión estable de la API (Chat Completion) contamos con las siguientes herramientas: 

  • Audio: 
    • Crear audio a partir de un texto 
    • Transcribir audio 
    • Traducir audio 
  • Chat 
    • Generación de texto 
    • Mantener conversación 
  • Incrustaciones (embeddings) 
    • Crear incrustaciones de texto accesibles por los modelos y algoritmos. 
  • Fine-tuning 
    • Creación de un modelo entrenado con datos determinados. 
  • Archivos 
    • Subir ficheros para realizar Fine-tuning (datos de entrenamiento). 
  • Imágenes 
    • Generación de imágenes a partir de una descripción dada. 

Como se puede apreciar, esta versión nos ofrece herramientas para casi todo lo que se nos pueda ocurrir. Pero cuenta con algunas limitaciones que se han resuelto en la versión beta de la nueva API de Assistants. 

Ventajas y desventajas de la API Chat Completion

Ventajas 

  • Simplicidad
  • Flexibilidad en la integración de datos externos. 
  • Escalabilidad: 
  • Menores gastos generales: requiere de menos recursos y esfuerzo de administración en comparación con la API de Asistentes. 

Desventajas

  • Gestión de contexto limitado: no es tan eficaz en la gestión de contextos extendidos, que podrían ser necesarios para interacciones complejas. 
  • Solicitudes independientes: cada solicitud se trata de forma independiente, lo que puede no ser ideal para aplicaciones que requieran una comprensión profunda de interacciones anteriores. 
  • Potencialmente menos efectivo para consultas complejas. 

La Nueva API: Assistants

En la nueva versión de la API (Assistants) contamos con las mismas funcionalidades que en la versión de Chat Completion. Pero cambia por completo la manera de realizar las solicitudes. En esta nueva versión las solicitudes ya no son independientes unas de otras. Si no que forman parte de un mismo hilo conversacional y asociado a un determinado Asistente. Esto implica una configuración más compleja y la gestión de los asistentes, los hilos de conversación y las ejecuciones de las peticiones realizadas por parte del sistema que integre Azure OpenAI Services. 

A continuación, se detallan las herramientas y conceptos de la nueva versión de Assistants: 

  • Assistants: nos permite crear tantos asistentes como necesitemos, usando como modelo de base, el modelo que necesitemos (GPT 3, 3.5, 4,…) 
  • Threads: en esta nueva versión, tendremos que crear Threads (o hilos) para gestionar los mensajes que enviamos al modelo, y lo que el modelo nos responde. 
  • Files:  
  • Messages 
  • Runs  

¿Qué ventajas encontramos en la nueva API? 

  • Gestión del contexto: la API de Assistants destaca por mantener el contexto en múltiples iteraciones, algo crucial en escenarios donde el contexto juegue un papel importante para la generación de respuestas relevantes. 
  • Personalización: ofrece opciones de personalización más avanzadas, lo que nos permite adaptar el comportamiento del asistente. 
  • Sesiones persistentes: esta nueva API gestiona eficazmente los hilos de diálogos extendidos. 
  • Manejo de consultas complejas: esta nueva API se adapta mucho mejor ante solicitudes complejas, donde sea necesario disponer de la totalidad del contexto o de información externa. 

¿Cómo empezar con Azure OpenAI Services? 

Para comenzar con Azure OpenAI Services tan solo será necesario realizar unos sencillos pasos: 

  1. Disponer de una suscripción de Microsoft Azure 
  2. Crear el recurso de tipo Azure OpenAI Services 
  3. Seleccionar la zona geográfica de nuestra instancia y asignarle un nombre 
  4. Implementar un modelo 
  5. Obtener la Apikey de nuestra instancia 
  6. Consumir nuestra API Rest y realizar solicitudes 

Una vez hayamos realizado los pasos descritos anteriormente, estaremos en disposición de realizar las primeras peticiones a nuestra instancia. Y comenzar a explotar el potencial de los modelos de IA. 
Para ello, también es importante destacar que además de poder realizar las solicitudes vía HTTP a la API REST, también están disponibles las librerías oficiales: 

  • Nuget package: Azure.AI.OpenAI (Chat Completion) 
  • Nuget package: Azure.AI.OpenAI.Assistans (Assistants) 

En conclusión

Como conclusión, ambas opciones se deben considerar a la hora de realizar una integración con los servicios de Azure OpenAI Services. Ya que dependerá de las necesidades y de los requerimientos funcionales de la misma lo que nos ayuden a determinar cuando usar una versión u otra. 

¿Interesado en implementar Azure OpenAI Services en tu proyecto? ¡Contáctanos para obtener más información y asesoramiento personalizado!

Agustín Plaza Alcántara – Lead Developer at Itequia