Tutorial: implementación de una aplicación web de chat empresarial
Importante
Los elementos marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.
En este artículo, implementará una aplicación web de chat empresarial que usa sus datos con un modelo de lenguaje grande en el portal de Azure AI Foundry.
El origen de datos se usa para ayudar a crear la base del modelo con datos específicos. Crear la base significa que el modelo usa los datos para ayudarle a comprender el contexto de la pregunta. No va a cambiar el propio modelo implementado. Los datos se almacenan de forma independiente y segura en el origen de datos original
A continuación se muestran los pasos de este tutorial:
- Configure los recursos.
- Adición de los datos.
- Prueba del modelo con los datos.
- Implemente la aplicación web.
Requisitos previos
Una suscripción a Azure (cree una cuenta gratuita).
Un modelo de chat de Azure OpenAI implementado. Si aún no lo ha hecho, consulte el inicio rápido sobre el área de juegos de Azure AI Foundry para crear este recurso.
Una conexión al servicio Search para indexar los datos del producto de ejemplo. Si no tiene una, siga los pasos para crear y conectar un servicio de búsqueda.
Una copia local de los datos del producto. El repositorio Azure-Samples/rag-data-openai-python-promptflow en GitHub contiene información de ejemplo de productos minoristas que es relevante para este escenario. En concreto, el archivo
product_info_11.md
contiene información del producto sobre los zapatos de senderismo TrailWalker pertinente para este ejemplo del tutorial. Descargue los datos de los productos minoristas de ejemplo de Contoso Trek en un archivo ZIP en el equipo local.Un proveedor de recursos de Microsoft.Web registrado en la suscripción seleccionada para poder realizar la implementación en una aplicación web. Para más información sobre cómo registrar un proveedor de recursos, consulte Registro del proveedor de recursos.
Los permisos necesarios para agregar asignaciones de roles en la suscripción de Azure. La concesión de permisos por asignación de roles solo está permitida por el propietario de los recursos específicos de Azure.
Portal de Azure AI Foundry y Azure Portal
En este tutorial, realizará algunas tareas en el portal de Azure AI Foundry y otras en Azure Portal.
El portal de Azure AI Foundry es un entorno basado en web para crear, entrenar e implementar modelos de IA. Como desarrollador, es donde compilará e implementará la aplicación web de chat.
Azure Portal permite a un administrador administrar y supervisar los recursos de Azure. Como administrador, usará el portal para configurar las opciones de varios servicios de Azure necesarios para el acceso desde la aplicación web.
Configure resources
Importante
Debe tener los permisos necesarios para agregar asignaciones de roles en la suscripción de Azure. La concesión de permisos por asignación de roles solo está permitida por el propietario de los recursos específicos de Azure. Es posible que tenga que pedir al propietario de la suscripción de Azure (quién podría ser su administrador de TI) que complete esta sección por usted.
Para que los recursos funcionen correctamente dentro de una aplicación web, debe configurarlos con los permisos correctos. Este trabajo se realiza en Azure Portal.
Para empezar, identifique los recursos que necesita configurar desde el portal de Azure AI Foundry.
Abra el portal de Azure AI Foundry y seleccione el proyecto que usó para implementar el modelo de chat de Azure OpenAI.
Seleccione Centro de administración en el panel izquierdo.
Seleccione Recursos conectados en el proyecto.
Identifique los tres recursos que necesita configurar: Azure OpenAI, Búsqueda de Azure AI y Azure Blob Storage que corresponde a su workspaceblobstore.
Sugerencia
Si tiene varios recursos de Azure OpenAI, use el que contiene el modelo de chat implementado.
Para cada recurso, seleccione el vínculo para abrir los detalles del recurso. En la página de detalles, seleccione el nombre del recurso para abrir el recurso en Azure Portal. (Como valor de workspaceblobstore, seleccione Ver en Azure Portal).
Después de que se abra la pestaña del explorador, vuelva al portal de Azure AI Foundry y repita el proceso para el siguiente recurso.
Cuando haya terminado, debe tener tres nuevas pestañas del explorador abiertas, para el servicio Search, los servicios de Azure AI y el contenedor de blobstore. Mantenga abiertas las tres pestañas nuevas, ya que irá de una a otra para configurar los recursos.
Habilitación de una entidad administrada
En la pestaña explorador del recurso servicio Search en Azure Portal, habilite la identidad administrada:
- En el panel izquierdo, en Configuración, seleccione Identidad.
- Cambie Estado a Activado.
- Seleccione Guardar.
En la pestaña del explorador del recurso servicios de Azure AI en Azure Portal, habilite la identidad administrada:
- En el panel de la izquierda, en Administración de recursos, seleccione Identidad.
- Cambie Estado a Activado.
- Seleccione Guardar.
Establecimiento del control de acceso para la búsqueda
En la pestaña del explorador del recurso servicio Search en Azure Portal, establezca la directiva de acceso de API:
- En la sección Configuración del panel izquierdo, seleccione Claves.
- En Control de acceso de API, seleccione Ambos.
- Cuando se le solicite, seleccione Sí para confirmar el cambio.
Asignación de roles
Repetirá este patrón varias veces en los elementos con viñetas siguientes.
El patrón general para asignar el control de acceso basado en rol (RBAC) para cualquier recurso es:
- Vaya al recurso dado en Azure Portal.
- En la página izquierda de Azure Portal, seleccione Control de acceso (IAM).
- Seleccione Agregar>Agregar asignación de roles.
- Busque el rol que necesita asignar y selecciónelo. Seleccione Siguiente.
- Cuando se asigne un rol a usted mismo:
- Seleccione Usuario, grupo o entidad de servicio.
- Elija Seleccionar miembros.
- Busque su nombre y selecciónelo.
- Cuando asigne un rol a otro recurso:
- Seleccione Identidad administrada.
- Elija Seleccionar miembros.
- Use la lista desplegable para buscar el tipo de recurso que desea asignar. Por ejemplo, servicios de Azure AI o servicio Search.
- Seleccione el recurso de la lista que aparece. Es posible que solo haya uno, pero aun así debe seleccionarlo.
- Continúe con el asistente y seleccione Revisar + asignar para agregar la asignación de roles.
Siga estos pasos para asignar roles a los recursos que está configurando en este tutorial:
Asigne los siguientes roles en la pestaña del explorador del servicio Search en Azure Portal:
- Lector de datos de índice de búsqueda a la identidad administrada por los servicios de Azure AI.
- Colaborador del servicio Search a la identidad administrada por los servicios de Azure AI.
- Colaborador a sí mismo (para buscar Colaborador, cambie a la pestaña Roles de administrador con privilegios en la parte superior. Todos los demás roles se encuentran en la pestaña Roles de función de trabajo).
Asigne los siguientes roles en la pestaña del explorador de los servicios de Azure AI en Azure Portal:
- Colaborador de OpenAI de Cognitive Services a la identidad administrada por el servicio Search.
- Colaborador a usted mismo.
Asigne los siguientes roles en la pestaña del explorador de Azure Blob Storage en Azure Portal:
- Colaborador de datos de Storage Blob a la identidad administrada por los servicios de Azure AI.
- Lector de datos de Storage Blob a la identidad administrada por el servicio Search.
- Colaborador a usted mismo
Ha terminado de configurar los recursos. Ahora puede cerrar las pestañas del explorador de Azure Portal si lo desea.
Adición de los datos y reintento del modelo de chat
En el inicio rápido sobre el área de juegos de Azure AI Foundry (que es un requisito previo de este tutorial), observe cómo responde el modelo sin los datos. Ahora agregue los datos al modelo para ayudarlo a responder a preguntas sobre sus productos.
Para completar esta sección, necesita una copia local de los datos del producto. El repositorio Azure-Samples/rag-data-openai-python-promptflow en GitHub contiene información de ejemplo de productos minoristas que es relevante para este escenario. En concreto, el archivo product_info_11.md
contiene información del producto sobre los zapatos de senderismo TrailWalker pertinente para este ejemplo del tutorial. Descargue los datos de los productos minoristas de ejemplo de Contoso Trek en un archivo ZIP en el equipo local.
Siga estos pasos para agregar los datos en el área de juegos de chat para ayudar al asistente a responder preguntas sobre sus productos. No va a cambiar el propio modelo implementado. Los datos se almacenan de forma independiente y segura en la suscripción de Azure.
Vaya al proyecto en Azure AI Foundry.
Seleccione Áreas de juegos.
Seleccione Probar el área de juegos de chat.
Seleccione el modelo de chat implementado en la lista desplegable Implementación.
En el lado izquierdo del área de juegos del chat, seleccione Agregar los datos (versión preliminar)>+ Agregar un nuevo origen de datos.
En la lista desplegable Origen de datos, seleccione Cargar archivos.
Seleccione Cargar>Carga de archivos para examinar los archivos locales.
Seleccione los archivos que quiere cargar. Seleccione los archivos de información del producto que descargó o creó anteriormente. Agregue todos los archivos ahora. No lo podrá hacer más adelante en la misma sesión de área de juegos.
Seleccione Cargar para cargar el archivo en la cuenta de Azure Blob Storage. Luego, seleccione Siguiente.
Seleccione el servicio Búsqueda de Azure AI.
En Nombre de índice vectorial, escriba product-info y seleccione Siguiente.
En la página Configuración de búsqueda en Vector de búsqueda, desactive la casilla Agregar búsqueda vectorial a este recurso de búsqueda. Esta configuración ayuda a determinar cómo responde el modelo a las solicitudes. Luego, seleccione Siguiente.
Nota:
Si agrega vector de búsqueda, habrá más opciones disponibles aquí para un costo adicional.
Compruebe la configuración y seleccione Crear índice vectorial.
En el área de juegos, puede ver que la ingesta de datos está en curso. Esto proceso puede llevar varios minutos. Antes de continuar, espere hasta que vea el origen de datos y el nombre del índice en lugar del estado.
Ahora puede chatear con el modelo y hacerle la misma pregunta que antes ("¿Cuánto valen los zapatos de montaña TrailWalker"?), pero esta vez usará la información de los datos para construir la respuesta. Puede expandir el botón Referencias para ver los datos que se usaron.
Implementación de la aplicación web
Una vez que esté satisfecho con la experiencia en el portal de Azure AI Foundry, puede implementar el modelo como una aplicación web independiente.
Vaya a su grupo de recursos en Azure Portal.
En este tutorial, la aplicación web se implementa en el mismo grupo de recursos que el centro de Azure AI Foundry. Más adelante, configurará la autenticación para la aplicación web en Azure Portal.
Siga estos pasos para ir al grupo de recursos en Azure Portal:
Vaya al proyecto en Azure AI Foundry. Luego seleccione Centro de administración en el panel izquierdo.
En el encabezado Proyecto, seleccione Información general.
Seleccione el nombre del grupo de recursos para abrir el grupo de recursos en Azure Portal. En este ejemplo, el grupo de recursos se llama
rg-sdg-ai
.Ahora debería estar en Azure Portal y ver el contenido del grupo de recursos donde implementó el centro. Quédese con el nombre y la ubicación del grupo de recursos, ya que usará esta información en la sección siguiente.
Mantenga esta página abierta en una pestaña del explorador. Volverá a ella más adelante.
Implementación de la aplicación web
La publicación crea una instancia de Azure App Service en la suscripción. Puede suponer costes en función del plan de precios que elijas. Cuando haya terminado con la aplicación, podrá eliminarla de Azure Portal.
Para implementar la aplicación web:
Importante
Debe registrarMicrosoft.Web como proveedor de recursos para poder implementarlo en una aplicación web.
Siga los pasos de la sección anterior para agregar los datos al área de juegos. (Puede implementar una aplicación web con o sin sus propios datos, pero al menos necesita un modelo implementado como se describe en el inicio rápido del área de juegos de Azure AI Foundry).
Seleccione Implementar > ...como una aplicación web.
En el panel Implementar en una aplicación web, escriba los detalles siguientes:
- Nombre: un nombre único para la aplicación web.
- Suscripción: Su suscripción de Azure. Si no ve ninguna suscripción disponible, primero registre Microsoft.Web como proveedor de recursos.
- Grupo de recursos: seleccione el grupo de recursos en el que va a implementar la aplicación web. Use el mismo grupo de recursos que el centro.
- Ubicación: seleccione la ubicación en la que va a implementar la aplicación web. Use la misma ubicación que el centro.
- Plan de precios: elija un plan de precios para la aplicación web.
- Habilitar historial de chat en la aplicación web: para los fines del tutorial, el historial de chat no está seleccionado. Si habilita la característica, los usuarios tendrán acceso a sus consultas y respuestas anteriores individuales. Para más información, consulte los comentarios del historial de chat.
Seleccione Implementar.
Espere a que se implemente la aplicación (esta operación podría tardar unos minutos).
Cuando esté listo, el botón Iniciar estará habilitado en la barra de herramientas. Sin embargo, no inicie aún la aplicación y no cierre la página del área de juegos de chat, ya que volverá a ella más adelante.
Configuración de la autenticación de la aplicación web
De forma predeterminada, la aplicación web solo es accesible para usted. En este tutorial, agregará la autenticación para restringir el acceso a la aplicación a los miembros del inquilino de Azure. Se pedirá a los usuarios que inicien sesión con su cuenta de Microsoft Entra para poder acceder a su aplicación. Podría seguir un proceso similar para agregar otro proveedor de identidades si lo prefiriese. La aplicación no usa la información de inicio de sesión del usuario de ninguna otra manera que no sea para comprobar que sea miembro del inquilino.
Vuelva a la pestaña del explorador que contiene Azure Portal (o vuelva a abrir Azure Portal en una nueva pestaña del explorador) y vea el contenido del grupo de recursos en el que implementó la aplicación web (es posible que tenga que actualizar la vista para ver la aplicación web).
Seleccione el recurso App Service en la lista de recursos del grupo de recursos.
En el menú izquierdo contraíble en Configuración, seleccione Autenticación.
Si ve que Microsoft muestra un proveedor de identidades en esta página, no se necesita nada más. Puede avanzar el paso siguiente.
Agregue un proveedor de identidades con la siguiente configuración:
- Proveedor de identidades: seleccione Microsoft como proveedor de identidades. La configuración predeterminada de esta página restringe la aplicación al inquilino solamente, por lo que no será necesario cambiar nada más aquí.
- Tipo de inquilino: Workforce.
- Registro de aplicaciones: cree un nuevo registro de aplicaciones.
- Nombre: nombre del servicio de aplicación web.
- Tipos de cuenta admitidos: inquilino actual, un solo inquilino.
- Restringir acceso: requiere autenticación.
- Solicitudes no autenticadas: Redirección HTTP 302 encontrada (se recomienda para sitios web).
Usar la aplicación web
Casi ha terminado. Ahora puede probar la aplicación web.
Si ha cambiado la configuración, espere 10 minutos a que la configuración de autenticación surta efecto.
Vuelva a la pestaña del explorador que contiene la página del área de juegos de chat en el portal de Azure AI Foundry.
Seleccione Iniciar para iniciar la aplicación web implementada. Si se le pide, acepte la solicitud de permisos.
Si la configuración de autenticación aún no se ha aplicado, cierre la pestaña del explorador de la aplicación web y vuelva al área de juegos de chat en el portal de Azure AI Foundry. A continuación, espere un poco más e inténtelo de nuevo.
En la aplicación web, puede hacer la misma pregunta que antes ("¿Cuánto valen los zapatos de montaña TrailWalker"?), pero esta vez usará la información de los datos para construir la respuesta. Puede expandir el botón Referencia para ver los datos que se usaron.
Descripción del historial de chat
Con la característica del historial de chat, los usuarios tendrán acceso a sus consultas y respuestas anteriores individuales.
Puede habilitar el historial de chat al implementar la aplicación web. Active la casilla Habilitar historial de chat en la aplicación web.
Importante
Al habilitar el historial de chat, se creará una instancia de Cosmos DB en el grupo de recursos y se incurrirán en cargos adicionales por el almacenamiento usado. La eliminación de la aplicación web no elimina automáticamente la instancia de Cosmos DB. Para eliminar la instancia de Cosmos DB, junto con todos los chats almacenados, debe ir al recurso asociado en el Azure Portal y eliminarlo.
Cuando haya habilitado el historial de chats, los usuarios podrán mostrarlo y ocultarlo en la esquina superior derecha de la aplicación. Cuando se muestra el historial, pueden cambiar el nombre o eliminar conversaciones. A medida que vayan iniciando sesión en la aplicación, las conversaciones se van ordenando automáticamente de la más reciente a la más antigua y se denominarán en función de la primera consulta de la conversación.
Si elimina el recurso de Cosmos DB, pero mantiene activada la opción del historial de chat en Studio, los usuarios reciben una notificación de un error de conexión, pero pueden seguir usando la aplicación web sin acceso al historial de chat.
Actualización de la aplicación web
Use el área de juegos para agregar más datos o probar el modelo con diferentes escenarios. Cuando esté listo para actualizar la aplicación web con el nuevo modelo, seleccione de nuevo Implementar > ... como aplicación web. Seleccione Actualizar una aplicación web existente y elija la aplicación web existente en la lista. El nuevo modelo se implementa en la aplicación web existente.
Limpieza de recursos
Para evitar incurrir en costes innecesarios de Azure, debe eliminar los recursos que creó en este inicio rápido si ya no son necesarios. Para administrar recursos, puede usar Azure Portal.