Compartir a través de


Usar la aplicación web de Azure OpenAI

Junto con Azure AI Foundry, Azure OpenAI Studio, API y SDK, puede usar la aplicación web independiente personalizable para interactuar con los modelos de Azure OpenAI mediante una interfaz gráfica de usuario. Entre las características principales se incluyen:

  • Conectividad con varios orígenes de datos para admitir consultas enriquecidas y generación aumentada de recuperación, como Azure AI Search, Flujo de avisos y mucho más.
  • Historial de conversaciones y recopilación de comentarios de usuarios a través de Cosmos DB.
  • Autenticación con control de acceso basado en rol a través de Microsoft Entra ID.
  • Personalización de la interfaz de usuario, los orígenes de datos y las características mediante variables de entorno (sin código a través de Azure Portal).
  • Compatibilidad con la modificación del código fuente de la aplicación web subyacente como repositorio de código abierto.

Puede implementar la aplicación mediante Azure AI Foundry o Azure OpenAI Studio, o a través de una implementación manual a través de Azure Portal o la Azure Developer CLI a través de la máquina local (instrucciones disponibles en el repositorio aquí). En función del canal de implementación, puede cargar previamente un origen de datos con el que chatear a través de la aplicación web, pero esto puede cambiarse después de la implementación.

Para principiantes de Azure OpenAI que buscan chatear con sus datos a través de la aplicación web, Azure AI Foundry es el medio recomendado para la implementación inicial y la configuración del origen de datos.

Recorte de pantalla que muestra la interfaz de la aplicación web.

Consideraciones importantes

  • Esta aplicación web y muchas de sus características están en versión preliminar, lo que significa que los errores pueden producirse y que no todas las características pueden completarse. Si encuentra un error o requiere ayuda, genere un problema en el repositorio de GitHub asociado.
  • La publicación de una aplicación web crea una instancia de Azure App Service en la suscripción. Puede suponer costes en función del plan de precios que elija. Cuando haya terminado con la aplicación, puede eliminarla y los recursos asociados de Azure Portal.
  • Los modelos GPT-4 Turbo con Vision no se admiten actualmente.
  • De forma predeterminada, la aplicación se implementa con el proveedor de identidades de Microsoft ya configurado. El proveedor de identidades restringe el acceso a la aplicación a los miembros del inquilino de Azure. Para agregar o modificar la autenticación:
    1. Vaya a Azure Portal y busque el nombre de la aplicación que especificó durante la publicación. Seleccione la aplicación web y, a continuación, seleccione Autenticación en el menú de la izquierda. Seleccione Agregar proveedor de identidades.

      Recorte de pantalla del panel de autenticación en Azure Portal.

    2. 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í. Seleccione Agregar.

Ahora se pedirá a los usuarios que inicien sesión con su cuenta de Microsoft Entra para acceder a la 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 manera distinta a la comprobación de que el usuario sea miembro del inquilino. Para obtener más información sobre cómo administrar la autenticación, consulte este inicio rápido sobre la autenticación de aplicaciones web en Azure App Service.

Personalización de la aplicación mediante variables de entorno

Puede personalizar la lógica de front-end y back-end de la aplicación. La aplicación proporciona varias variables de entorno para escenarios de personalización comunes, como cambiar el icono de la aplicación.

Estas variables de entorno se pueden modificar a través de Azure Portal después de implementar la aplicación web.

  1. En Azure Portal, busque y seleccione la página App Services.
  2. Seleccione la aplicación web que acaba de implementar.
  3. En el menú izquierdo de la aplicación, seleccione Configuración > Variables de entorno.
  4. Para modificar una variable de entorno existente, haga clic en su nombre.
  5. Para agregar una sola variable de entorno nueva, haga clic en Agregar en la barra de menús superior del panel.
  6. Para usar el editor basado en JSON para administrar variables de entorno, haga clic en Edición avanzada.

Al personalizar la aplicación, se recomienda lo siguiente:

  • Comunicar claramente cómo afecta cada configuración que usted implementa a la experiencia del usuario.

  • Actualización de la configuración de la aplicación para cada una de las aplicaciones implementadas para usar nuevas claves de API después de rotar las claves para el recurso de Azure OpenAI o Azure AI Search.

El código fuente de ejemplo para la aplicación web está disponible en GitHub. El código fuente se proporciona "tal cual" y solo como ejemplo. Los clientes son responsables de toda la personalización e implementación de sus aplicaciones web.

Modificación de la interfaz de usuario de la aplicación

Las variables de entorno relevantes para la personalización de la interfaz de usuario son:

  • UI_CHAT_DESCRIPTION: este es el texto de párrafo más pequeño que se muestra debajo de UI_CHAT_TITLE en el centro de la página al cargarse.
    • Tipo de datos: texto
  • UI_CHAT_LOGO: esta es la imagen grande que se muestra en el centro de la página al cargarse.
    • Tipo de datos: dirección URL a imagen
  • UI_CHAT_TITLE: este es el texto grande que se muestra en el centro de la página al cargarse.
    • Tipo de datos: texto
  • UI_FAVICON: este es el favicono que se muestra en la ventana o pestaña del explorador.
    • Tipo de datos: dirección URL a imagen
  • UI_LOGO: este es el logotipo aparece en la parte superior izquierda de la página y a la izquierda del título.
    • Tipo de datos: dirección URL a imagen
  • UI_TITLE: este es el título que se muestra en la ventana o pestaña del explorador. También aparece en la parte superior izquierda de la página por el logotipo.
    • Tipo de datos: texto
  • UI_SHOW_SHARE_BUTTON: este botón aparece en la parte superior derecha de la página y permite a los usuarios compartir una dirección URL vinculada a la aplicación web.
    • Tipo de datos: booleano, debe escribir VERDERO o FALSO, el valor predeterminado es VERDADERO si se deja en blanco o no especificado.
  • UI_SHOW_CHAT_HISTORY_BUTTON: aparece en la parte superior derecha de la página y a la izquierda del UI_SHOW_SHARE_BUTTON.
    • Tipo de datos: booleano, debe escribir VERDERO o FALSO, el valor predeterminado es VERDADERO si se deja en blanco o no especificado.

Para modificar la interfaz de usuario de la aplicación, siga las instrucciones del paso anterior para abrir la página de variables de entorno de la aplicación web. A continuación, use Edición avanzada para abrir el editor basado en JSON. En la parte superior del código JSON (después del carácter [ ), pegue el bloque de código siguiente y personalice los valores en consecuencia:

  {
    "name": "UI_CHAT_DESCRIPTION",
    "value": "This is an example of a UI Chat Description. Chatbots can make mistakes. Check important info and sensitive info.",
    "slotSetting": false
  },
  {
    "name": "UI_CHAT_LOGO",
    "value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
    "slotSetting": false
  },
  {
    "name": "UI_CHAT_TITLE",
    "value": "This is an example of a UI Chat Title. Start chatting",
    "slotSetting": false
  },
  {
    "name": "UI_FAVICON",
    "value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
    "slotSetting": false
  },
  {
    "name": "UI_LOGO",
    "value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
    "slotSetting": false
  },
  {
    "name": "UI_TITLE",
    "value": "This is an example of a UI Title",
    "slotSetting": false
  },

Habilitación del historial de chat mediante Cosmos DB

Puede activar el historial de chat para los usuarios de la aplicación web. Al activar la característica, los usuarios tienen acceso a sus consultas y respuestas anteriores individuales.

Para activar el historial de chats, implemente o vuelva a implementar el modelo como una aplicación web mediante Azure OpenAI Studio o Azure AI Foundry y seleccione Habilitar el historial de chat y los comentarios de los usuarios en la aplicación web.

Recorte de pantalla de la casilla para habilitar el historial de chats en Azure OpenAI o Azure AI Foundry.

Importante

Al activar el historial de chat se crea una instancia de Azure Cosmos DB en el grupo de recursos y se incurre en cargos adicionales para el almacenamiento que use más allá de los niveles gratuitos.

Después de activar el historial de chats, los usuarios pueden mostrarlo y ocultarlo en la esquina superior derecha de la aplicación. Cuando los usuarios muestran el historial de chat, pueden cambiar el nombre o eliminar conversaciones. Puede modificar si los usuarios pueden acceder a esta función mediante la variable de entorno UI_SHOW_CHAT_HISTORY_BUTTON tal y como se especificó en la sección anterior. Dado que los usuarios han iniciado sesión en la aplicación, las conversaciones se ordenan automáticamente de la más reciente a la más antigua. Las conversaciones se denominan en función de la primera consulta de la conversación.

Nota:

Las regiones populares de Azure, como Este de EE. UU., pueden experimentar períodos de alta demanda en los que es posible que no sea posible implementar una nueva instancia de Cosmos DB. En ese caso, opte por implementar en una región alternativa, como Este de EE. UU. 2 o vuelva a intentar la implementación hasta que se realice correctamente. Si se produce un error en la implementación de Cosmos DB, la aplicación estará disponible en su dirección URL especificada, pero el historial de chat no estará disponible. La habilitación del historial de conversaciones también habilitará el botón Ver historial de conversaciones en la parte superior derecha.

La implementación con la opción historial de chat seleccionada rellenará automáticamente las siguientes variables de entorno, por lo que no es necesario modificarlas a menos que desee cambiar las instancias de Cosmos DB. Son las siguientes:

  • AZURE_COSMOSDB_ACCOUNT: este es el nombre de la cuenta de Cosmos DB que se implementa junto con la aplicación web.
    • Tipo de datos: texto
  • AZURE_COSMOSDB_ACCOUNT_KEY: se trata de una variable de entorno alternativa que solo se usa cuando los permisos no se conceden a través de Microsoft Entra ID y la autenticación basada en claves se usan en su lugar.
    • Tipo de datos: texto. Normalmente no está presente o rellenado.
  • AZURE_COSMOSDB_DATABASE: este es el nombre del objeto de base de datos dentro de Cosmos DB que se implementa junto con la aplicación web.
    • Tipo de datos: texto, debe ser db_conversation_history
  • AZURE_COSMOSDB_CONTAINER: este es el nombre del objeto contenedor de base de datos dentro de Cosmos DB que se implementa junto con la aplicación web.
    • Tipo de datos: texto, debe ser conversations
  • AZURE_COSMOSDB_ACCOUNT: este es el nombre de la cuenta de Cosmos DB que se implementa junto con la aplicación web.
    • Tipo de datos: texto

Recorte de pantalla del historial de chat en la aplicación web.

Recopilación de comentarios de usuario

Para recopilar comentarios de los usuarios, puede habilitar un conjunto de iconos "pulgares hacia arriba" y "pulgares hacia abajo" que aparecen en cada una de las respuestas del bot de chat. Esto permitirá a los usuarios evaluar la calidad de una respuesta e indicar dónde se producen los errores mediante una ventana modal "proporcionar comentarios negativos".

Para habilitar esta característica, establezca la siguiente variable de entorno en VERDADERO:

  • AZURE_COSMOSDB_ENABLE_FEEDBACK: este es el nombre de la cuenta de Cosmos DB que se implementa junto con la aplicación web.
    • Tipo de datos: Tipo de datos: Boolean, debe escribir VERDADERO o FALSO

Esto se puede lograr mediante las opciones Edición avanzada o Edición simple, como se explicó anteriormente. El JSON que se va a pegar en el editor JSON de edición avanzada es:

  {
    "name": "AZURE_COSMOSDB_ENABLE_FEEDBACK",
    "value": "True",
    "slotSetting": false
  },

Conectando a Búsqueda de Azure AI y archivos cargados como origen de datos

Uso de Azure AI Foundry

Siga este tutorial sobre la integración de la Búsqueda de Azure AI con AI Foundry y vuelva a implementar la aplicación.

Uso de Azure OpenAI Studio

Siga este tutorial sobre la integración de la Búsqueda de Azure AI con OpenAI Studio y vuelva a implementar la aplicación.

Uso de variables de entorno

Para conectarse a la Búsqueda de Azure AI sin volver a implementar la aplicación, puede modificar las siguientes variables de entorno obligatorias mediante cualquiera de las opciones de edición que se describen anteriormente.

  • DATASOURCE_TYPE: esto determina qué origen de datos se va a usar al responder a las consultas de un usuario.
    • Tipo de datos: texto. Debe establecerse en AzureCognitiveSearch (nombre anterior de la Búsqueda de Azure AI)
  • AZURE_SEARCH_SERVICE: este es el nombre de la instancia de la Búsqueda de Azure AI.
    • Tipo de datos: texto
  • AZURE_SEARCH_INDEX: este es el nombre del nombre del índice de la instancia de la Búsqueda de Azure AI.
    • Tipo de datos: texto
  • AZURE_SEARCH_KEY: esta es la clave de autenticación de la instancia de la Búsqueda de Azure AI. Opcional si usa Microsoft Entra ID para la autenticación.
    • Tipo de datos: texto

Escenarios de personalización adicionales mediante variables de entorno

  • AZURE_SEARCH_USE_SEMANTIC_SEARCH: indica si se debe usar la búsqueda semántica en la Búsqueda de Azure AI.
    • Tipo de datos: booleano, debe establecerse en False si no se usa la búsqueda semántica.
  • AZURE_SEARCH_SEMANTIC_SEARCH_CONFIG: especifica el nombre de la configuración de búsqueda semántica que se usará si está habilitada la búsqueda semántica.
    • Tipo de datos: texto, el valor predeterminado es azureml-default.
  • AZURE_SEARCH_INDEX_TOP_K: define el número de documentos principales que se van a recuperar de la Búsqueda de Azure AI.
    • Tipo de datos: entero, debe establecerse en 5.
  • AZURE_SEARCH_ENABLE_IN_DOMAIN: limita las respuestas a las consultas relacionadas solo con los datos.
    • Tipo de datos: booleano, debe establecerse en True.
  • AZURE_SEARCH_CONTENT_COLUMNS: especifica la lista de campos del índice de la Búsqueda de Azure AI que contiene el contenido de texto de los documentos, que se usa al simular una respuesta del bot.
    • Tipo de datos: texto, el valor predeterminado es content si se implementa desde Azure AI Foundry o Azure OpenAI Studio,
  • AZURE_SEARCH_FILENAME_COLUMN: especifica el campo del índice de la Búsqueda de Azure AI que proporciona un identificador único de los datos de origen que se van a mostrar en la interfaz de usuario.
    • Tipo de datos: texto, el valor predeterminado es filepath si se implementa desde Azure AI Foundry o Azure OpenAI Studio,
  • AZURE_SEARCH_TITLE_COLUMN: especifica el campo del índice de la Búsqueda de Azure AI que proporciona un título o encabezado pertinentes para que el contenido de los datos se muestre en la interfaz de usuario.
    • Tipo de datos: texto, el valor predeterminado es title si se implementa desde Azure AI Foundry o Azure OpenAI Studio,
  • AZURE_SEARCH_URL_COLUMN: especifica el campo del índice de la Búsqueda de Azure AI que contiene una dirección URL para el documento.
    • Tipo de datos: texto, el valor predeterminado es url si se implementa desde Azure AI Foundry o Azure OpenAI Studio,
  • AZURE_SEARCH_VECTOR_COLUMNS: especifica la lista de campos del índice de la Búsqueda de Azure AI que contienen incrustaciones vectoriales de los documentos, que se usan al simular una respuesta del bot.
    • Tipo de datos: texto, el valor predeterminado es contentVector si se implementa desde Azure AI Foundry o Azure OpenAI Studio,
  • AZURE_SEARCH_QUERY_TYPE: especifica el tipo de consulta que se va a usar: simple, semantic, vector, vectorSimpleHybrid o vectorSemanticHybrid. Esta configuración tiene prioridad sobre AZURE_SEARCH_USE_SEMANTIC_SEARCH.
    • Tipo de datos: texto, se recomienda probar con vectorSemanticHybrid.
  • AZURE_SEARCH_PERMITTED_GROUPS_COLUMN: especifica el campo del índice de la Búsqueda de Azure AI que contiene identificadores de grupo de Microsoft Entra, lo que determina el control de acceso de nivel de documento.
    • Tipo de datos: texto
  • AZURE_SEARCH_STRICTNESS: especifica el nivel de estricto para el modelo que limita las respuestas a los datos.
    • Tipo de datos: entero, debe establecerse entre 1 y 5, con 3 recomendado.
  • AZURE_OPENAI_EMBEDDING_NAME: especifica el nombre de la implementación del modelo de inserción si se usa el vector de búsqueda.
    • Tipo de datos: texto

El JSON que se va a pegar en el editor JSON de edición avanzada es:

{
    "name": "AZURE_SEARCH_CONTENT_COLUMNS",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_ENABLE_IN_DOMAIN",
    "value": "true",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_FILENAME_COLUMN",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_INDEX",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_KEY",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_PERMITTED_GROUPS_COLUMN",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_QUERY_TYPE",
    "value": "vectorSemanticHybrid",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_SEMANTIC_SEARCH_CONFIG",
    "value": "azureml-default",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_SERVICE",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_STRICTNESS",
    "value": "3",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_TITLE_COLUMN",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_TOP_K",
    "value": "5",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_URL_COLUMN",
    "value": "",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_USE_SEMANTIC_SEARCH",
    "value": "true",
    "slotSetting": false
  },
  {
    "name": "AZURE_SEARCH_VECTOR_COLUMNS",
    "value": "contentVector",
    "slotSetting": false
  },

Conexión al Flujo de avisos como origen de datos

Los flujos de avisos permiten definir una lógica de procesamiento y RAG altamente personalizable en las consultas de un usuario.

Creación e implementación del flujo de avisos en el portal de Azure AI Foundry

Siga este tutorial para crear, probar e implementar un punto de conexión de inferencia para el flujo de avisos en el portal de Azure AI Foundry.

Habilitación de citas subyacentes desde el flujo de avisos

Al configurar el flujo de avisos para mostrar citas cuando se integra esta aplicación web, debe devolver dos salidas clave: una llamada documents (las citas) y otra llamada reply (la respuesta del lenguaje natural).

  1. documents es un objeto JSON, que debe contener los siguientes elementos. citations es una lista que puede contener varios elementos después del mismo esquema. el objeto documents debe generarse y rellenarse en función del patrón RAG seleccionado.
{
    "citations": [
        {
                "content": "string",
                "id": 12345,
                "title": "string",
                "filepath": "string",
                "url": "string",
                "metadata": "string",
                "chunk_id": None,
                "reindex_id": None,
                "part_index": None
        }
    ],
    "intent": "Your_string_here"
}
  1. reply consta de una cadena devuelta que representa el lenguaje natural final a una consulta de usuario determinada. reply debe contener referencias a cada uno de los documentos (orígenes) en el formato siguiente: [doc1], [doc2] y mucho más. La aplicación web analizará reply y procesará las referencias, reemplazando todas las instancias de [doc1] por pequeños indicadores numéricos superíndices que se vinculan directamente al documents ordenado que se devuelven. Por lo tanto, debe solicitar al LLM que genere el lenguaje natural final para incluir estas referencias, que también se deben pasar en la llamada LLM para asegurarse de que se alinean correctamente. Por ejemplo:
system:
You are a helpful chat assistant that answers a user's question based on the information retrieved from a data source. 

YOU MUST ALWAYS USE CITATIONS FOR ALL FACTUAL RESPONSES. YOU MUST INCLUDE CITATIONS IN YOUR ANSWER IN THE FORMAT [doc1], [doc2], ... AND SO FORTH WHEN YOU ARE USING INFORMATION RELATING TO SAID SOURCE. THIS MUST BE RETURNED IN YOUR ANSWER.

Provide sort and concise answers with details directly related to the query. 

## Conversation history for context
{% for item in chat_history %}
user:
{{item.inputs.query}}

assistant:
{{item.outputs.reply}}
{% endfor %}

## Current question
user:
### HERE ARE SOME CITED SOURCE INFORMATION FROM A MOCKED API TO ASSIST WITH ANSWERING THE QUESTION BELOW. ANSWER ONLY BASED ON THE TRUTHS PRESENTED HERE.
{{your_input_name_for_documents}}
FOR EACH OF THE CITATIONS ABOVE, YOU MUST INCLUDE IN YOUR ANSWER [doc1], [doc2], ... AND SO FORTH WHEN YOU ARE USING INFORMATION RELATING TO SAID SOURCE. THIS MUST BE RETURNED IN YOUR ANSWER.
### HERE IS THE QUESTION TO ANSWER.
{{question}}
  

Configuración de variables de entorno para integrar el flujo de avisos

Las variables de entorno que se van a modificar son:

  • AZURE_OPENAI_STREAM: determina si la respuesta se carga en un formato de streaming (carga incremental). Esto no se admite para el flujo de avisos y, por tanto, debe establecerse en False para usar esta característica.
    • Tipo de datos: booleano, se establece en True si no se usa el flujo de avisos, False si se usa el flujo de avisos
  • USE_PROMPTFLOW: indica si se debe usar un punto de conexión implementado por el flujo de avisos existente. Si se establece en True, debe establecerse tanto PROMPTFLOW_ENDPOINT como PROMPTFLOW_API_KEY.
    • Tipo de datos: booleano, debe establecerse en False si no se usa el flujo de avisos.
  • PROMPTFLOW_ENDPOINT: especifica la dirección URL del punto de conexión del flujo de avisos del sistema implementado.
    • Tipo de datos: texto, por ejemplo https://pf-deployment-name.region.inference.ml.azure.com/score
  • PROMPTFLOW_API_KEY: clave de autenticación para el punto de conexión de flujo de avisos del sistema implementado. Nota: solo se admite la autenticación basada en claves.
    • Tipo de datos: texto
  • PROMPTFLOW_RESPONSE_TIMEOUT: define el valor de tiempo de espera en segundos para que responda el punto de conexión del flujo de avisos.
    • Tipo de datos: entero, debe establecerse en 120.
  • PROMPTFLOW_REQUEST_FIELD_NAME: el nombre de campo predeterminado para construir la solicitud de flujo de avisos del sistema. Nota: chat_history se construye automáticamente en función de la interacción. Si la API espera otros campos obligatorios, deberá cambiar los parámetros de solicitud en la función promptflow_request.
    • Tipo de datos: texto, debe establecerse en query.
  • PROMPTFLOW_RESPONSE_FIELD_NAME: el nombre de campo predeterminado para procesar la respuesta de la solicitud de flujo de avisos.
    • Tipo de datos: texto, debe establecerse en reply.
  • PROMPTFLOW_CITATIONS_FIELD_NAME: el nombre de campo predeterminado para procesar la salida de las citas de la solicitud de flujo de avisos.
    • Tipo de datos: texto, debe establecerse en documents.

Conectarse a otros orígenes de datos

Se admiten otros orígenes de datos, entre los que se incluyen:

  • Azure Cosmos DB
  • Elasticsearch
  • Azure SQL Server
  • Pinecone
  • Índice de Azure Machine Learning

Para obtener más instrucciones sobre cómo habilitar estos orígenes de datos, consulte el repositorio de GitHub.

Actualizando la aplicación web para incluir los cambios más recientes

Nota:

Después del 1 de febrero de 2024, la aplicación web requiere que el comando de inicio de la aplicación se establezca en python3 -m gunicorn app:app. Al actualizar una aplicación publicada antes del 1 de febrero de 2024, debe agregar manualmente el comando de inicio desde la página Configuración de App Service.

Se recomienda extraer los cambios de la rama main del código fuente de la aplicación web con frecuencia para asegurarse de que tiene las últimas correcciones de errores, versiones de la API y mejoras. Además, la aplicación web debe sincronizarse cada vez que se retira la versión de API que se usa. Considere la posibilidad de hacer clic en los botones de reloj o estrella en el repositorio de GitHub de la aplicación web para recibir notificaciones sobre los cambios y las actualizaciones del código fuente.

Si no ha personalizado la aplicación web, puede seguir estos pasos para sincronizarla:

  1. Vaya a la aplicación web en Azure Portal.

  2. En el menú de la izquierda, en Implementación, seleccione Centro de implementación.

  3. Seleccione Sincronización en la parte superior del panel y confirme que la aplicación se volverá a implementar.

    Recorte de pantalla del botón de sincronización de aplicaciones web en Azure Portal.

Si personalizó o cambió el código fuente de la aplicación, debe actualizar manualmente el código fuente de la aplicación y volver a implementarlo:

  • Si la aplicación se hospeda en GitHub, inserte los cambios de código en el repositorio y, a continuación, use los pasos de sincronización anteriores.
  • Si va a implementar la aplicación manualmente (por ejemplo, mediante la CLI de Azure), siga los pasos de la estrategia de implementación.

Eliminación de la instancia de Cosmos DB

Eliminar su aplicación web no elimina su instancia de Cosmos DB automáticamente. Para eliminar la instancia de Cosmos DB junto con todos los chats almacenados, debe ir al recurso asociado en Azure Portal y eliminarlo. Si elimina el recurso de Cosmos DB pero mantiene seleccionada la opción del historial de chat en las actualizaciones posteriores desde Azure OpenAI Studio, la aplicación notifica al usuario un error de conexión. Sin embargo, el usuario puede seguir usando la aplicación web sin acceso al historial de chat.

Habilitación de la autenticación de Microsoft Entra ID entre servicios

Para habilitar Microsoft Entra ID para la autenticación dentro del servicio de su aplicación web, siga estos pasos.

Habilitar la identidad administrada en su recurso de Azure OpenAI y Azure App Service

Puede habilitar la identidad administrada para el recurso de Azure OpenAI y Azure App Service navegando hasta "Identidad" y activando la identidad administrada asignada por el sistema en Azure Portal para cada recurso.

Recorte de pantalla que muestra la configuración de la identidad de la aplicación en Azure Portal.

Nota:

Si está utilizando un modelo de inserción implementado en el mismo recurso utilizado para la inferencia, solo tendrá que habilitar la identidad administrada en un recurso de Azure OpenAI. Si usa un modelo de inserción implementado en un recurso distinto del utilizado para la inferencia, también deberá habilitar la identidad administrada en el recurso de Azure OpenAI utilizado para implementar su modelo de inserción.

Habilitar el control de acceso basado en roles (RBAC) en su recurso de Azure Search (opcional)

Si está usando On Your Data con Azure Search, deberá seguir este paso.

Para permitir que su recurso de Azure OpenAI acceda a su recurso de Azure Search, debe habilitar el control de acceso basado en roles en su recurso de Azure Search. Obtenga más información sobre cómo habilitar los roles de RBAC para sus recursos.

Asignación de roles de RBAC para habilitar la comunicación entre servicios

La siguiente tabla resume las asignaciones de rol de RBAC necesarias para todos los recursos de Azure asociados a su aplicación.

Role Persona asignada Resource
Search Index Data Reader Azure OpenAI (inferencia) Azure AI Search
Search Service Contributor Azure OpenAI (inferencia) Azure AI Search
Cognitive Services OpenAI User Aplicación web Azure OpenAI (inferencia)
Cognitive Services OpenAI User Azure OpenAI (inferencia) Azure OpenAI (inserciones)

Para asignar estos roles, siga estas instrucciones para crear las asignaciones de roles necesarias.

Cambios en la configuración de la aplicación

En la configuración de la aplicación webapp, vaya a "Variables de entorno" y realice los siguientes cambios:

  • Quite la variable de entorno AZURE_OPENAI_KEY, ya que no es necesaria.
  • Si usa On Your Data con Azure Search y está usando la autenticación de Microsoft Entra ID entre Azure OpenAI y Azure Search, también debería eliminar las variables de entorno AZURE_SEARCH_KEY para las claves de acceso al origen de datos.

Si utiliza un modelo de inserción implementado en el mismo recurso que su modelo utilizado para la inferencia, no es necesario realizar ningún otro cambio en la configuración.

Sin embargo, si está usando un modelo de inserción implementado en un recurso diferente, realice los siguientes cambios adicionales en las variables de entorno de su aplicación:

  • Establezca la variable AZURE_OPENAI_EMBEDDING_ENDPOINT en la ruta de acceso completa de la API de inserción del recurso que esté usando para la inserción, por ejemplo, https://<your Azure OpenAI Service resource name>.openai.azure.com/openai/deployments/<your embedding deployment name>/embeddings
  • Elimine la variable AZURE_OPENAI_EMBEDDING_KEY para usar la autenticación de Microsoft Entra ID.

Una vez finalizados todos los cambios en las variables de entorno, reinicie la aplicación web para comenzar a usar la autenticación de Microsoft Entra ID entre los servicios de la aplicación web. Transcurrirán unos minutos tras el reinicio para que los cambios en la configuración surtan efecto.