Construa um copiloto com fluxo imediato
Depois de carregar dados para o Azure AI Studio 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 Prompt Flow para criar um aplicativo copiloto.
O Prompt Flow é uma estrutura de desenvolvimento para definir fluxos que orquestram interações com um 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 bate-papo até este ponto.
O fluxo é então definido como uma série de ferramentas conectadas, cada uma das quais executa uma operação específica sobre as entradas e outras variáveis ambientais. Há vários tipos de ferramentas que você pode incluir em um fluxo de prompt para executar tarefas, como:
- Executando código Python personalizado
- Procurar valores de dados num índice
- Criação de variantes de prompt - permitindo que você defina várias versões de um prompt para um modelo de linguagem grande (LLM), variando mensagens do sistema ou palavras de prompt, e compare e avalie os resultados de cada variante.
- Enviar uma solicitação a um LLM para gerar resultados.
Finalmente, o fluxo tem uma ou mais saídas, normalmente para retornar os resultados gerados de um LLM.
Usando o padrão RAG em um fluxo de prompt
A chave para usar o padrão RAG em um fluxo de prompt é usar uma ferramenta de pesquisa de índice para recuperar dados de um índice para que as ferramentas subsequentes no fluxo possam usar os resultados para aumentar o prompt usado para gerar saída de um LLM.
Usar um exemplo para criar um fluxo de bate-papo
O fluxo de prompt fornece vários exemplos que você pode usar como ponto de partida para criar um aplicativo. Quando quiser combinar o RAG e um modelo de linguagem em seu aplicativo, você pode clonar as Perguntas e Respostas de várias rodadas em sua amostra de dados .
O exemplo contém os elementos necessários para incluir RAG e um modelo de linguagem:
- Anexe o histórico à entrada do chat para definir um prompt na forma contextualizada de uma pergunta.
- Procure informações relevantes dos seus dados usando o seu índice de pesquisa.
- Gere o contexto de prompt usando os dados recuperados do índice para aumentar a pergunta.
- Crie variantes de prompt adicionando uma mensagem do sistema e estruturando o histórico de bate-papo.
- Envie o prompt para um modelo de linguagem que gere uma resposta em linguagem natural.
Vamos explorar cada um desses elementos com mais detalhes.
Modificar consulta com histórico
O primeiro passo no fluxo é um nó Large Language Model (LLM) que pega o histórico de bate-papo 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 resto do fluxo.
Procurar informação relevante
Em seguida, use a ferramenta Pesquisa de Índice para consultar o índice de pesquisa criado com o recurso integrado Azure AI Search e localizar as informações relevantes de sua fonte de dados.
Gorjeta
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 para o usuário. Você deseja usar a saída em um prompt que é 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 melhores resultados (dependendo dos parâmetros definidos). Ao gerar o contexto de prompt, você pode usar um nó Python para iterar sobre os documentos recuperados de sua 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 enviado para o modelo de idioma na próxima etapa do fluxo.
Definir variantes de prompt
Ao construir o prompt que deseja enviar para seu modelo de idioma, você pode usar variantes para representar diferentes conteúdos de prompt.
Ao incluir o RAG em seu fluxo de bate-papo, seu objetivo é fundamentar as respostas do chatbot. Além de recuperar o contexto relevante da sua fonte de dados, você também pode influenciar a fundamentação da resposta do chatbot, instruindo-o a usar o contexto e procurar ser factual.
Com as variantes de prompt, você pode fornecer mensagens variadas do sistema no prompt para explorar qual conteúdo fornece mais fundamento.
Bate-papo com contexto
Finalmente, você usa um nó LLM para enviar o prompt para um modelo de linguagem para gerar uma resposta usando o contexto relevante recuperado de sua fonte de dados. A resposta deste 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 idioma de sua escolha, você pode implantar o fluxo e integrá-lo a um aplicativo para oferecer aos usuários uma experiência de copiloto.