Creación de un Copilot con flujo de avisos

Completado

Después de cargar datos en Inteligencia artificial de Azure Studio y de crear un índice en los datos mediante la integración con Búsqueda de Azure AI, puede implementar el patrón RAG con el flujo de avisos para crear una aplicación copiloto.

El flujo de avisos es un marco de desarrollo para definir flujos que orquestan interacciones con un LLM.

Diagrama de un flujo de avisos.

Un flujo comienza con una o varias entradas, normalmente una pregunta o un aviso introducido por un usuario y, en el caso de conversaciones iterativas, el historial de chat hasta este punto.

Después, el flujo se define como una serie de herramientas conectadas, cada una de las cuales realiza una operación específica en las entradas y otras variables de entorno. Hay varios tipos de herramientas que puede incluir en un flujo de avisos para realizar tareas como:

  • Ejecución de código de Python personalizado
  • Búsqueda de valores de datos en un índice
  • Creación de variantes de aviso: le permite definir varias versiones de un aviso para un modelo de lenguaje grande (LLM), diferentes mensajes del sistema o redacción de avisos, y comparar y evaluar los resultados de cada variante.
  • Envío de un aviso a un LLM para generar resultados.

Por último, el flujo tiene una o varias salidas, normalmente para devolver los resultados generados de un LLM.

Uso del patrón RAG en un flujo de avisos

La clave para usar el patrón RAG en un flujo de avisos es usar una herramienta de búsqueda de índices para recuperar datos de un índice, con objeto de que las herramientas posteriores del flujo puedan usar los resultados para aumentar el aviso usado para generar la salida de un LLM.

Diagrama de un flujo de avisos con una herramienta de búsqueda de índices

Uso de un ejemplo para crear un flujo de chat

El flujo de avisos proporciona varios ejemplos que puede usar como punto de partida para crear una aplicación. Cuando quiera combinar RAG y un modelo de lenguaje en la aplicación, puede clonar el ejemplo Ronda múltiple de preguntas y respuestas en los datos.

El ejemplo contiene los elementos necesarios para incluir RAG y un modelo de lenguaje:

Captura de pantalla del flujo de chat creado con el ejemplo de preguntas y respuestas

  1. Anexe el historial a la entrada de chat para definir un aviso como forma contextualizada de una pregunta.
  2. Busque información relevante de los datos mediante el índice de búsqueda.
  3. Genere el contexto de la indicación mediante el uso de los datos recuperados del índice para mejorar la pregunta.
  4. Cree variantes de aviso agregando un mensaje del sistema y estructurando el historial de chats.
  5. Envíe la indicación a un modelo de lenguaje para generar una respuesta de lenguaje natural.

Exploremos cada uno de estos elementos con más detalle.

Modificación de la consulta con historial

El primer paso del flujo es un nodo de modelo de lenguaje de gran tamaño (LLM) que toma el historial de chat y la última pregunta del usuario y genera una nueva pregunta que incluye toda la información necesaria. Al hacerlo, se genera una entrada más concisa procesada por el resto del flujo.

Búsqueda de información relevante

A continuación, usará la herramienta Index Lookup para consultar el índice de búsqueda que creó con la característica integrada Búsqueda de Azure AI y buscar la información pertinente del origen de datos.

Sugerencia

Obtenga más información sobre la herramienta Búsqueda de índices.

Generación de contexto para la indicación

La salida de la herramienta Index Lookup es el contexto recuperado que desea usar al generar una respuesta al usuario. Quiere usar la salida en una indicación que se envía a un modelo de lenguaje, lo que significa que desea analizar la salida en un formato más adecuado.

La salida de la herramienta Búsqueda de índices puede incluir los n resultados principales (según los parámetros que establezca). Al generar el contexto de la indicación, puede usar un nodo de Python para iterar los documentos recuperados del origen de datos y combinar su contenido y orígenes en una cadena de documento. La cadena se usará en la indicación que envíe al modelo de lenguaje en el paso siguiente del flujo.

Definición de variantes de la indicación

Al construir la indicación que desea enviar al modelo de lenguaje, puede usar variantes para representar contenido de indicaciones diferentes.

Al incluir RAG en el flujo de chat, el objetivo es establecer las respuestas del bot de chat. Junto a recuperar el contexto relevante del origen de datos, también puede influir en la base de la respuesta del bot de chat, ya que le indica que use el contexto y que apunte a ser fáctico.

Con las variantes de la indicación, puede proporcionar mensajes del sistema variables en dicha indicación para explorar qué contenido proporciona más fundamento.

Chatear con contexto

Por último, use un nodo LLM para enviar la indicación a un modelo de lenguaje para generar una respuesta mediante el contexto pertinente recuperado del origen de datos. La respuesta de este nodo también es la salida de todo el flujo.

Después de configurar el flujo de chat de ejemplo para usar los datos indexados y el modelo de lenguaje que elija, puede implementar el flujo e integrarlo con una aplicación para ofrecer a los usuarios una experiencia de Copilot.