Introducción a Azure OpenAI Assistants y llamada a funciones en JavaScript

Este artículo muestra cómo implementar y ejecutar Azure OpenAI Assistant Quick Start sin servidor. Este ejemplo implementa una aplicación de asistentes usando JavaScript, Azure OpenAI Service Assistants con llamada a funciones y Azure Functions.

Introducción a la arquitectura

Azure OpenAI Assistants le permite crear asistentes de IA adaptados a sus necesidades mediante instrucciones personalizadas y aumentadas con herramientas avanzadas como el intérprete de código y las funciones personalizadas. En este artículo, se proporciona un tutorial detallado sobre cómo empezar a trabajar con la API de asistentes.

Diagrama que muestra la arquitectura del cliente a la aplicación back-end.

Esta aplicación está construida en torno a dos componentes principales:

  • Una página HTML simple con archivos CSS y JavaScript estándar, y hospedada en Azure Static Web Apps.

  • Una API sin servidor compilada con Azure Functions y usando el SDK de OpenAI JavaScript. La aplicación sin servidor envía la definición de los asistentes, incluida la llamada a la función, al punto de conexión de OpenAI. El punto de conexión responde con la llamada a la función de seguimiento y los parámetros necesarios para completar dicha llamada.

    • La llamada a la función del ejemplo simula una llamada a la API generando un valor de teletipo bursátil aleatorio basado en el símbolo bursátil enviado a Azure Function. Esta simulación puede sustituirse por una API remota en su solución.

    Diagrama que muestra la integración de Azure Functions con Azure OpenAI donde Azure OpenAI puede devolver nombres de función de seguimiento a los que Azure Functions debe llamar.

Requisitos previos

Hay disponible un entorno contenedor de desarrollo con todas las dependencias necesarias para completar este artículo. Puede ejecutar el contenedor de desarrollo en GitHub Codespaces (en un navegador) o localmente utilizando Visual Studio Code.

Para usar este artículo, necesita los siguientes requisitos previos:

  1. Una suscripción a Azure: cree una cuenta gratuita.
  2. Permisos de la cuenta Azure: Su cuenta Azure debe tener permisos Microsoft.Authorization/roleAssignments/write, como Administrador de acceso de usuario o Propietario.
  3. Acceso concedido a Azure OpenAI en la suscripción de Azure que quiera. Actualmente, solo la aplicación concede acceso a este servicio. Para solicitar acceso a Azure OpenAI, rellene el formulario en https://aka.ms/oai/access. Si tiene algún problema, abra una incidencia en este repositorio para ponerse en contacto con nosotros.
  4. GitHub

Entorno de desarrollo abierto

Comience ahora con un entorno de desarrollo que tenga todas las dependencias instaladas para completar este artículo.

GitHub Codespaces ejecuta un contenedor de desarrollo administrado por GitHub con Visual Studio Code para la web como interfaz de usuario. Para obtener el entorno de desarrollo más sencillo, utilice Codespaces de GitHub de modo que tenga las herramientas y dependencias de desarrollador correctas preinstaladas para completar este artículo.

Importante

Todas las cuentas de GitHub pueden usar Codespaces durante un máximo de 60 horas gratis cada mes con 2 instancias principales. Para obtener más información, consulte Almacenamiento y horas de núcleo incluidas mensualmente en GitHub Codespaces.

  1. Inicie el proceso para crear una nueva instancia de GitHub Codespace en la rama main del repositorio de GitHub Azure-Samples/azure-openai-assistant-javascript.

  2. Haga clic con el botón derecho del ratón en el botón siguiente y seleccione Abrir vínculo en ventanas nuevas para disponer al mismo tiempo del entorno de desarrollo y de la documentación.

    Abrir en GitHub Codespaces

  3. En la página Crear codespace, revise las opciones de configuración de codespace y, después, seleccione Crear nuevo codespace

  4. Espere a que se inicie Codespace. Este proceso de startup puede tardar unos minutos.

  5. En el terminal de la parte inferior de la pantalla, inicie sesión en Azure con Azure Developer CLI.

    azd auth login
    
  6. Copie el código del terminal y péguelo en un navegador. Siga las instrucciones para autenticarse con su cuenta Azure.

  7. Las tareas restantes de este artículo tienen lugar en el contexto de este contenedor de desarrollo.

Implementación y ejecución

El repositorio de ejemplo contiene todo el código y los archivos de configuración necesarios para implementar una aplicación de funciones en Azure. Los siguientes pasos le guiarán a través del proceso de implementación de la muestra en Azure.

Implementación de la aplicación de asistentes en Azure

Importante

Los recursos Azure creados en esta sección incurren en costes inmediatos, principalmente del recurso Azure AI Search. Estos recursos pueden acumular costes incluso si interrumpe el comando antes de que se ejecute por completo.

  1. Ejecute el siguiente comando de la Azure Developer CLI para aprovisionar los recursos de Azure e implementar el código fuente:

    azd up
    
  2. Cuando se le pida que introduzca un nombre de entorno, manténgalo corto y en minúsculas. Por ejemplo, myenv. Se usa como parte del nombre del grupo de recursos.

  3. Cuando se le solicite, seleccione una suscripción en la que crear los recursos.

  4. Cuando se le pida que seleccione una ubicación la primera vez, seleccione una ubicación cercana. Esta ubicación se utiliza para la mayoría de los recursos, incluido el hospedaje.

  5. Si se le pide una ubicación para el modelo OpenAI, seleccione una ubicación que esté cerca de usted. Si está disponible la misma ubicación que la primera, selecciónela.

  6. Espere hasta que se implemente la aplicación. La implementación puede tardar entre 5 y 10 minutos en completarse.

  7. Una vez que la aplicación se ha implementado correctamente, aparece una URL en el terminal.

  8. Seleccione esa URL etiquetada Deploying service web para abrir la aplicación de chat en un navegador.

Use la aplicación de asistente

Puede usar la aplicación de asistente para obtener la cotización en bolsa de MSFT. Los pasos a continuación le guiarán a través del proceso de uso de la aplicación de asistente. El asistente puede enviarle las respuestas por correo electrónico. Eso no está configurado todavía, por lo que debe cambiar el aviso para no usar esa solicitud.

  1. En el navegador, copie y pegue la siguiente solicitud:

    Based on the latest financial data and current stock market trends, can you provide a detailed analysis of Microsoft's current state? Please include insights into their recent performance, market position, and future outlook. Additionally, retrieve and include the latest closing price of Microsoft's stock using its ticker symbol (MSFT). 
    
  2. Haga clic en el botón Ejecutar. Sus resultados deberían ser similares a la siguiente respuesta.

    Captura de pantalla de la primera respuesta de la aplicación de asistente.

Limpieza de recursos

Limpieza de los recursos de Azure

Los recursos Azure creados en este artículo se facturan a su suscripción Azure. Si no espera necesitar estos recursos en el futuro, elimínelos para evitar incurrir en más gastos.

Ejecute el siguiente comando de la Azure Developer CLI para eliminar los recursos de Azure y eliminar el código de origen:

azd down --purge

Limpiar GitHub Codespaces

La eliminación del entorno de GitHub Codespaces garantiza que pueda maximizar la cantidad de derechos de horas gratuitas por núcleo que obtiene para su cuenta.

Importante

Para obtener más información sobre los derechos de la cuenta de GitHub, consulte Almacenamiento y horas de núcleo incluidas mensualmente en GitHub Codespaces.

  1. Inicie sesión en el panel de GitHub Codespaces (https://github.com/codespaces).

  2. Busque los espacios de código que se ejecutan actualmente procedentes del repositorio de GitHub Azure-Samples/azure-openai-assistant-javascript.

    Captura de pantalla de todos los espacios de código en ejecución, incluidos su estado y las plantillas.

  3. Abra el menú contextual ... del codespace y, a continuación, seleccione Eliminar.

Obtener ayuda

Este repositorio de muestras ofrece información para la resolución de problemas.

Si su problema no se resuelve, regístrelo en el apartado de problemas del repositorio.