Compartir a través de


Comience con el chat utilizando su propia muestra de datos para Python

En este artículo se muestra cómo implementar y ejecutar la aplicación de chat de con su propio ejemplo de datos para Python. En este ejemplo se implementa una aplicación de chat mediante Python, Azure OpenAI Service y recuperación de generación aumentada (RAG) en Azure AI Search para obtener respuestas sobre los beneficios para empleados en una empresa ficticia. La aplicación se inicializa con archivos PDF que incluyen el manual de empleados, un documento de beneficios y una lista de roles y expectativas de la empresa.

Vea el vídeo de demostración siguiente.

Siguiendo las instrucciones de este artículo, puede:

  • Implemente una aplicación de chat en Azure.
  • Obtenga respuestas sobre los beneficios para empleados.
  • Cambie la configuración para cambiar el comportamiento de las respuestas.

Después de finalizar este procedimiento, puede empezar a modificar el nuevo proyecto con el código personalizado.

Este artículo forma parte de una colección de artículos que muestran cómo crear una aplicación de chat mediante Azure OpenAI y Azure AI Search.

Otros artículos de la colección son:

Nota:

En este artículo se usan una o varias plantillas de aplicaciones de IA como base para los ejemplos e instrucciones del artículo. Las plantillas de aplicación de IA proporcionan implementaciones de referencia bien mantenidas que son fáciles de implementar. Ayudan a garantizar un punto de partida de alta calidad para las aplicaciones de inteligencia artificial.

Introducción a la arquitectura

En el diagrama siguiente se muestra una arquitectura sencilla de la aplicación de chat.

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

Entre los componentes clave de la arquitectura se incluyen:

  • Una aplicación web para hospedar la experiencia de chat interactivo.

  • Un recurso de Búsqueda de Azure AI para obtener respuestas de sus propios datos.

  • Azure OpenAI para proporcionar:

    • Palabras clave para mejorar la búsqueda sobre sus propios datos.
    • Respuestas del modelo de Azure OpenAI.
    • Incrustaciones del modelo ada.

Costos

La mayoría de los recursos de esta arquitectura utilizan un nivel de precios básico o de consumo. Los precios de consumo se basan en el uso, lo que significa que solo se paga por lo que se usa. Hay un cargo por completar este artículo, pero es mínimo. Cuando haya terminado con el artículo, puede eliminar los recursos para dejar de incurrir en cargos.

Obtenga más información sobre el coste en el repositorio de ejemplo.

Requisitos previos

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

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

Apertura de un entorno de desarrollo

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 el web como interfaz de usuario (UI). 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 GitHub Codespaces durante hasta 60 horas gratuitas cada mes con dos 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 un nuevo espacio de código de GitHub en la rama main del repositorio Azure-Samples/azure-search-openai-demo GitHub.

  2. Haga clic con el botón derecho en el botón siguiente y seleccione Abrir enlace en nuevas ventanas para tener el entorno de desarrollo y la documentación disponible al mismo tiempo.

    Abrir en GitHub Codespaces.

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

    Captura de pantalla que muestra la pantalla de confirmación antes de crear un nuevo espacio de código.

  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 la CLI para desarrolladores de Azure:

    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.

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 chat 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 chat 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 costos 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. Si se le pide que escriba un nombre de entorno, manténgalo corto y use letras minúsculas. Un ejemplo es 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 usa para la mayoría de los recursos, incluido el hospedaje.

  5. Si se le pide una ubicación para el modelo de Azure OpenAI o para el recurso de Inteligencia de documentos de Azure AI, seleccione la ubicación más cercana. Si está disponible la misma ubicación que la primera, selecciónela.

  6. Espere 5 o 10 minutos después de que la aplicación se implemente antes de continuar.

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

    Captura de pantalla que muestra la aplicación implementada como se indica al final del proceso azd up de la CLI de AZD.

  8. Seleccione la dirección URL etiquetada (✓) Done: Deploying service webapp para abrir la aplicación de chat en un explorador.

    Captura de pantalla que muestra la aplicación de chat en un explorador que muestra varias sugerencias para la entrada de chat y el cuadro de texto del chat para escribir una pregunta.

Uso de la aplicación de chat para obtener respuestas de archivos PDF

La aplicación de chat está precargada con información sobre los beneficios de los empleados a partir de archivos PDF. Puede utilizar la aplicación de chat para hacer preguntas sobre los beneficios. Los siguientes pasos le guiarán a través del proceso de uso de la aplicación de chat. Las respuestas pueden variar a medida que se actualizan los modelos subyacentes.

  1. En el explorador, seleccione o escriba ¿Qué ocurre en una revisión de rendimiento? en el cuadro de texto del chat.

    Captura de pantalla que muestra la primera respuesta de la aplicación de chat.

  2. De la respuesta, seleccione una cita.

    Captura de pantalla que muestra la primera respuesta de la aplicación de chat con su cita resaltada en un cuadro rojo.

  3. En el panel derecho, use las pestañas para comprender cómo se generó la respuesta.

    Pestaña Descripción
    Proceso de ideas Esta pestaña es un script de las interacciones en el chat. Puede ver la pregunta del sistema (content) y su pregunta de usuario (content).
    Contenido adicional Esta pestaña incluye la información para responder a su pregunta y el material de origen. El número de citas del material fuente se indica en Configuración de desarrollador. El valor predeterminado es 3.
    Referencia bibliográfica Esta pestaña muestra la página original que contiene la cita.
  4. Cuando haya terminado, vuelva a seleccionar la pestaña para cerrar el panel.

Usar la configuración de la aplicación de chat para cambiar el comportamiento de las respuestas

La inteligencia del chat viene determinada por el modelo de Azure OpenAI y la configuración que se usa para interactuar con el modelo.

Captura de pantalla que muestra la configuración del desarrollador de chat.

Configuración Descripción
Anular plantilla de solicitud Invalida la solicitud usada para generar la respuesta en función de la pregunta y los resultados de búsqueda.
Temperatura Establece la temperatura de la solicitud en el modelo de lenguaje grande (LLM) que genera la respuesta. Las temperaturas más altas dan lugar a respuestas más creativas, pero podrían ser menos fundamentadas.
Valor de inicialización Define una inicialización para mejorar la capacidad de reproducción de las respuestas del modelo. La inicialización puede ser cualquier entero.
puntuación de búsqueda mínima Establece una puntuación mínima para los resultados de búsqueda que se obtienen de Azure AI Search. El intervalo de puntuación depende de si se usa híbrido (valor predeterminado), solo vectores o solo texto.
Puntuación mínima del reclasificador Establece una puntuación mínima para los resultados de búsqueda que se obtienen del reordenador semántico. La puntuación siempre oscila entre 0 y 4. Cuanto mayor sea la puntuación, más relevante semánticamente será el resultado para la pregunta.
Recuperar esta cantidad de resultados Establece el número de resultados de búsqueda que se van a recuperar de Azure AI Search. Más resultados pueden aumentar la probabilidad de encontrar la respuesta correcta. Pero más resultados también puede provocar que el modelo se pierda "en el camino". Puede ver estas fuentes devueltas en las pestañas Proceso de ideas y Contenido auxiliar de la cita.
Excluir categoría Especifica una categoría que se debe excluir de los resultados de la búsqueda. No se usan categorías en el conjunto de datos predeterminado.
Usar clasificador semántico para la recuperación Habilita el clasificador semántico de Búsqueda de Azure AI, un modelo que vuelve a clasificar los resultados de búsqueda en función de la similitud semántica con la consulta del usuario.
Usar subtítulos semánticos Envía subtítulos semánticos al LLM en lugar del resultado de búsqueda completo. Un subtítulo semántico se extrae de un resultado de búsqueda durante el proceso de clasificación semántica.
Sugerir preguntas de seguimiento Solicita al LLM que sugiera preguntas de seguimiento basadas en la consulta del usuario.
modo de recuperación Define el modo de recuperación de la consulta de Búsqueda de Azure AI. vectores + texto (híbrido) usa una combinación de búsqueda vectorial y búsqueda de texto completo. vectores usa solo la búsqueda de vectores. Text usa solo búsqueda de texto completo. Híbrido suele ser óptimo.
Transmitir respuestas de finalización de chat Transmite continuamente la respuesta a la interfaz de usuario de chat a medida que se genera.

Los siguientes pasos le guiarán a través del proceso de cambio de la configuración.

  1. En el explorador, seleccione la pestaña Configuración del desarrollador.

  2. Active la casilla Sugerir preguntas de seguimiento y vuelva a formular la misma pregunta.

    What happens in a performance review?
    

    El chat devolvió preguntas de seguimiento sugeridas, como los ejemplos siguientes:

    1. What is the frequency of performance reviews?
    2. How can employees prepare for a performance review?
    3. Can employees dispute the feedback received during the performance review?
    
  3. En la pestaña Configuración, desactive la casilla Usar clasificador semántico para la recuperación.

  4. Vuelva a hacer la misma pregunta.

    What happens in a performance review?
    
  5. ¿Cuál es la diferencia en las respuestas?

    • Con el clasificador semántico: durante una revisión de rendimiento en Contoso Electronics, los empleados tienen la oportunidad de discutir sus éxitos y desafíos en el lugar de trabajo (1). La revisión proporciona comentarios positivos y constructivos para ayudar a los empleados a desarrollar y crecer en sus roles (1). El empleado recibe un resumen escrito de la revisión de rendimiento, que incluye una clasificación de su rendimiento, comentarios y objetivos para el próximo año (1). La revisión del rendimiento es un diálogo bidireccional entre los administradores y los empleados (1).
    • Sin el clasificador semántico: durante una revisión de rendimiento en Contoso Electronics, los empleados tienen la oportunidad de discutir sus éxitos y desafíos en el lugar de trabajo. Se proporcionan comentarios positivos y útiles para ayudar a los empleados a desarrollar y crecer en sus roles. Se proporciona un resumen por escrito de la revisión de rendimiento, incluida una clasificación del rendimiento, los comentarios y los objetivos del próximo año. La revisión es un diálogo bidireccional entre los administradores y los empleados (1).

Limpieza de recursos

Los pasos siguientes le guiarán por el proceso de limpieza de los recursos que usó.

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 --force

Los modificadores proporcionan:

  • purge: los recursos eliminados se purgan inmediatamente para que pueda reutilizar los tokens de Azure OpenAI por minuto.
  • force: la eliminación se produce de forma silenciosa, sin necesidad de consentimiento del usuario.

Limpieza de GitHub Codespaces y Visual Studio Code

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.

  2. Busque los codespaces que se ejecutan actualmente a partir del repositorio de GitHub Azure-Samples/azure-search-openai-demo.

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

  3. Abra el menú contextual del espacio de código y seleccione Eliminar.

    Captura de pantalla que muestra el menú contextual de un único espacio de código con la opción Eliminar resaltada.

Obtener ayuda

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

Si su problema no se resuelve, agréguelo a la página web de problemas del repositorio.