Implementar o RAG em um prompt flow
Depois de carregar dados no Microsoft Foundry e criar um índice em seus dados usando a integração com o Azure AI Search, você pode implementar o padrão RAG com o Fluxo de Prompt para criar um aplicativo de IA generativo.
O Prompt flow é uma estrutura de desenvolvimento para definir fluxos que orquestram interações com uma LLM.
Um fluxo começa com uma ou mais entradas, geralmente uma pergunta ou prompt inserido por um usuário e, no caso de conversas iterativas, o histórico de chat até esse ponto.
Em seguida, o fluxo é definido como uma série de ferramentas conectadas, cada uma das quais executa uma operação específica nas entradas e em outras variáveis ambientais. Há vários tipos de ferramenta que você pode incluir em um prompt flow para executar tarefas como:
- Executar código Python personalizado
- Pesquisar valores de dados em um índice
- Criar variantes de prompt – permitindo que você defina várias versões de um prompt para um LLM (modelo de linguagem grande), mensagens de sistema variadas ou texto de prompt e compare e avalie os resultados de cada variante.
- Enviar um prompt para uma LLM para gerar resultados.
Por fim, o fluxo tem uma ou mais saídas, normalmente para retornar os resultados gerados de uma LLM.
Usando o padrão RAG em um prompt flow
A chave para usar o padrão RAG em um prompt flow é usar uma ferramenta Pesquisa de Índice para recuperar dados de um índice de modo que as ferramentas subsequentes no fluxo possam usar os resultados para aumentar o prompt usado para gerar saída de uma LLM.
Usar um exemplo para criar um fluxo de chat
O prompt flow fornece vários exemplos que você pode usar como ponto de partida para criar um aplicativo. Quando quiser combinar a RAG e um modelo de linguagem em seu aplicativo, você pode clonar o exemplo de Q&A de várias rodadas sobre seus dados.
O exemplo contém os elementos necessários para incluir a RAG e um modelo de linguagem:
- Anexar o histórico à entrada do bate-papo para definir um prompt na forma de uma pergunta contextualizada.
- Procure informações relevantes de seus dados usando seu índice de pesquisa.
- Gerar o contexto do prompt utilizando os dados recuperados do índice para complementar a pergunta.
- Criar variantes de prompt adicionando uma mensagem do sistema e estruturando o histórico de chat.
- Enviar o prompt para um modelo de linguagem que gere uma resposta em linguagem natural.
Vamos examinar cada um desses elementos mais detalhadamente.
Modificar a consulta com base no histórico
A primeira etapa no fluxo é um nó de LLM (Modelo de Linguagem Grande) que usa o histórico de chat e a última pergunta do usuário e gera uma nova pergunta que inclui todas as informações necessárias. Ao fazer isso, você gera uma entrada mais sucinta que é processada pelo restante do fluxo.
Pesquisar informações relevantes
Em seguida, você usa a ferramenta Pesquisa de Índice para consultar o índice de pesquisa criado com o recurso integrado da Pesquisa de IA do Azure e encontrar as informações relevantes a partir da sua fonte de dados.
Dica
Saiba mais sobre a ferramenta Pesquisa de Índice.
Gerar contexto de prompt
A saída da ferramenta Pesquisa de Índice é o contexto recuperado que você deseja usar ao gerar uma resposta ao usuário. Você deseja usar a saída em um prompt enviado para um modelo de linguagem, o que significa que você deseja analisar a saída em um formato mais adequado.
A saída da ferramenta Pesquisa de Índice pode incluir os n principais resultados (dependendo dos parâmetros definidos). Ao gerar o contexto de prompt, você pode usar um nó Python para iterar sobre os documentos recuperados da fonte de dados e combinar seu conteúdo e fontes em uma cadeia de caracteres de documento. A cadeia de caracteres será usada no prompt que você enviar para o modelo de linguagem na próxima etapa do fluxo.
Definir variantes de prompt
Ao construir o prompt que deseja enviar para seu modelo de linguagem, você pode usar variantes para representar conteúdos de prompt diferentes.
Ao incluir a RAG no fluxo de chat, sua meta é fundamentar as respostas do chatbot. Além de recuperar o contexto relevante da fonte de dados, você também pode influenciar a fundamentação da resposta do chatbot instruindo-o a usar o contexto e buscar ser factual.
Com as variantes de prompt, você pode fornecer várias mensagens do sistema no prompt para explorar qual conteúdo fornece mais fundamentação.
Chat com contexto
Por fim, você usa um nó LLM para enviar o prompt para um modelo de linguagem para gerar uma resposta usando o contexto relevante recuperado da sua fonte de dados. A resposta desse nó também é a saída de todo o fluxo.
Depois de configurar o fluxo de chat de exemplo para usar seus dados indexados e o modelo de linguagem de sua escolha, você pode implantar o fluxo e integrá-lo a um aplicativo para oferecer aos usuários uma experiência do Agentic.