Integración de Azure OpenAI en la aplicación

Completado

Azure OpenAI ofrece SDK específicos del lenguaje y una API de REST que los desarrolladores pueden usar para agregar funcionalidad de inteligencia artificial a sus aplicaciones. Las funcionalidades de inteligencia artificial generativa de Azure OpenAI se proporcionan mediante modelos. Los modelos disponibles en el servicio Azure OpenAI pertenecen a diferentes familias, cada una con su propio enfoque. Para usar uno de estos modelos, debe realizar la implementación mediante Azure OpenAI Service.

Creación de un recurso de Azure OpenAI

Un recurso de Azure OpenAI se puede implementar mediante la interfaz de la línea de comandos (CLI) de Azure y Azure Portal. La creación del recurso de Azure OpenAI mediante Azure Portal es similar a la implementación de recursos individuales de servicios de Azure AI y forma parte de los Servicios de Azure AI.

  1. Vaya a Azure Portal.
  2. Busque Azure OpenAI, selecciónelo y haga clic en Crear.
  3. Escriba los valores adecuados para los campos vacíos y cree el recurso.

Actualmente, las regiones posibles para Azure OpenAI están limitadas. Elija la región más cercana a la ubicación física o la más cercana que tenga la disponibilidad de los modelos que desea usar.

Una vez creado el recurso, tendrá claves y un punto de conexión para usarlos en la aplicación.

Elección e implementación de un modelo

Cada familia de modelos destaca en diferentes tareas y hay diferentes funcionalidades de los modelos dentro de cada familia. Las familias de modelos se dividen en tres principales:

  • Transformador generativo preentrenado (GPT): modelos que entienden y generan lenguaje natural y código. Estos modelos son los mejores en tareas generales, conversaciones y formatos de chat.
  • Código (gpt-3 y versiones anteriores): los modelos de código se basan en modelos GPT y se entrenan en millones de líneas de código. Comprenden y generan código, incluida la interpretación de comentarios o lenguaje natural para generar código. gpt-35-turbo y los modelos posteriores tienen esta funcionalidad de código incluida sin necesidad de un modelo de código independiente.
  • Inserciones: estos modelos comprenden y usan incrustaciones, que son un formato especial de datos que los modelos y algoritmos de aprendizaje automático pueden usar.

Este módulo se centra en los modelos GPT generales; otros modelos se tratan en otros módulos.

Para los modelos anteriores, la familia y la funcionalidad del modelo se indican en el nombre del modelo base, como text-davinci-003, que especifica que es un modelo de texto, con funcionalidad de nivel davinci y el identificador 3. Puede encontrar detalles sobre los modelos, los niveles de funcionalidad y las convenciones de nomenclatura en la página de documentación de los modelos de Azure OpenAI.

Los modelos más recientes especifican qué generación de gpt son y si son la versión turbo, como gpt-35-turbo, que representa el modelo GPT 3.5 Turbo.

Para implementar un modelo que pueda usar, vaya a Inteligencia artificial de Azure Studio y vaya a la página Implementaciones. El laboratorio que aparece más adelante en este módulo trata exactamente cómo hacerlo.

Autenticación y especificación del modelo implementado

Al implementar un modelo en Azure OpenAI, elija un nombre de implementación para asignárselo. Al configurar la aplicación, debe especificar el punto de conexión, la clave y el nombre de implementación del recurso para especificar a qué modelo de implementación se va a enviar la solicitud. Esto permite implementar varios modelos dentro del mismo recurso y realizar solicitudes al modelo adecuado en función de la tarea.

Ingeniería rápida

La forma en que se escribe el mensaje de entrada desempeña un papel importante en la manera de responder del modelo de inteligencia artificial. Por ejemplo, si se le realiza una solicitud simple de tipo "¿Qué es Azure OpenAI?", a menudo obtiene una respuesta genérica similar a la de un motor de búsqueda.

Sin embargo, si proporciona más detalles sobre lo que desea en la respuesta, obtendrá una respuesta más específica. Por ejemplo, con este mensaje:

Classify the following news headline into 1 of the following categories: Business, Tech, Politics, Sport, Entertainment

Headline 1: Donna Steffensen Is Cooking Up a New Kind of Perfection. The Internet’s most beloved cooking guru has a buzzy new book and a fresh new perspective
Category: Entertainment

Headline 2: Major Retailer Announces Plans to Close Over 100 Stores
Category:

Es probable que obtenga la "categoría:" en el título rellenado con "empresa".

Puede encontrar varios ejemplos similares a este en el área de juegos de Inteligencia artificial de Azure Studio, en la lista desplegable Ejemplos de indicaciones. Intente ser lo más específico posible sobre lo que desea en la respuesta del modelo; se sorprenderá de lo perspicaz que puede ser.

Nota

Nunca es seguro suponer que las respuestas de un modelo de inteligencia artificial sean verídicas o correctas. Los equipos o las personas que se encargan de desarrollar e implementar sistemas de inteligencia artificial deben funcionar para identificar, medir y mitigar los daños. Es su responsabilidad comprobar las respuestas de los modelos de inteligencia artificial y usar esta de forma responsable. Consulte las notas de transparencia de Microsoft en Azure OpenAI para más instrucciones sobre el uso responsable de los modelos de Azure OpenAI.

Encontrará más detalles en la página de documentación de ingeniería de la mensajería.

Puntos de conexión disponibles.

Se puede acceder a Azure OpenAI a través de una API de REST o un SDK disponible para Python, C#, JavaScript, etc. Los puntos de conexión disponibles para interactuar con un modelo implementado se usan de forma diferente y determinados puntos de conexión solo pueden usar ciertos modelos. Los puntos de conexión disponibles son:

  • Finalización: el modelo toma una indicación de entrada y genera una o varias finalizaciones previstas. Verá este área de juegos en el estudio, pero no se tratará en profundidad en este módulo.
  • ChatCompletion: el modelo toma la entrada, en forma de conversación de chat (donde se especifican los roles con el mensaje que se envía), y se genera la siguiente finalización del chat.
  • Inserciones: el modelo toma la entrada y devuelve una representación vectorial de ella.

Por ejemplo, la entrada de ChatCompletion es una conversación con roles claramente definidos para cada mensaje:

{"role": "system", "content": "You are a helpful assistant, teaching people about AI."},
{"role": "user", "content": "Does Azure OpenAI support multiple languages?"},
{"role": "assistant", "content": "Yes, Azure OpenAI supports several languages, and can translate between them."},
{"role": "user", "content": "Do other Azure AI Services support translation too?"}

Al dar al modelo de inteligencia artificial una conversación real, genera una mejor respuesta con un tono, una expresión y un contexto más precisos. El punto de conexión ChatCompletion permite que el modelo ChatGPT tenga una conversación más realista mediante el envío del historial del chat con el siguiente mensaje de usuario.

ChatCompletion también permite escenarios que no son de chat, como el resumen o la extracción de entidades. Esto se puede lograr proporcionando una conversación breve, especificando la información del sistema y lo que desee, junto con la entrada del usuario. Por ejemplo, si desea generar una descripción del trabajo, proporcione ChatCompletion algo parecido a la siguiente entrada de conversación.

{"role": "system", "content": "You are an assistant designed to write intriguing job descriptions. "},
{"role": "user", "content": "Write a job description for the following job title: 'Business Intelligence Analyst'. It should include responsibilities, required qualifications, and highlight benefits like time off and flexible hours."}

Nota:

Completion está disponible para todos los modelos de generación gpt-3, mientras que ChatCompletion es la única opción admitida para los modelos gpt-4 y es el punto de conexión preferido al usar el modelo gpt-35-turbo. El laboratorio de este módulo utiliza gpt-35-turbo con el punto de conexión ChatCompletion.