Compartilhar via


Trabalhar com prompt flows RAG localmente (versão prévia)

A Geração Aumentada de Recuperação (RAG) é um padrão que funciona com Modelos de Linguagem Grande (LLM) pré-treinados e seus próprios dados para gerar respostas. No Azure Machine Learning, agora você pode implementar o RAG em um prompt flow.

Neste artigo, você aprenderá a fazer a transição de fluxos de RAG do workspace de nuvem do Azure Machine Learning para um dispositivo local e trabalhar com eles usando a extensão de prompt flow no Visual Studio Code.

Importante

No momento, o RAG está em versão preliminar pública. Essa versão prévia é oferecida sem um SLA e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Pré-requisitos

  • Python instalado localmente

    • O SDK de prompt flow e os pacotes de ferramentas de prompt flow instalados por execução
      pip install promptflow promptflow-tools
    • A ferramenta promptflow-vectordb instalada por execução
      pip install promptflow-vectordb
  • Visual Studio Code com as extensões Python e Prompt Flow instaladas.

    Captura de tela da extensão VS Code do fluxo de prompt no marketplace.

  • Um recurso de conta do OpenAI do Azure que tem implantações de modelo para chat e text-embedding-ada

  • Um índice de vetor criado no estúdio do Azure Machine Learning para o prompt flow de exemplo a ser usado

Criar o prompt flow

Este tutorial usa o prompt flow RAG P e R Sobre Seus Dados de amostra, que contém um nó de pesquisa que usa a ferramenta de pesquisa de índice vetor para pesquisar perguntas dos documentos indexados armazenados no blob de armazenamento do workspace.

  1. Na guia Conexões da página dePrompt Flow do Estúdio do Azure Machine Learning, configure uma conexão com seu recurso do OpenAI do Azure se você ainda não tiver uma. Se você usar um índice da Pesquisa de IA do Azure como fonte de dados para o índice de vetor, também deverá ter uma conexão da Pesquisa de IA do Azure.

  2. Na página de Prompt flow do Estúdio do Azure Machine Learning, selecione Criar.

  3. Na tela Criar um novo fluxo, selecione Clonar no bloco P e R Sobre os Seus Dados para clonar o prompt flow de amostra.

    O fluxo clonado é aberto na interface de criação.

    Captura de tela de trazer seus próprios dados QnA no Estúdio do Azure Machine Learning.

  4. Na etapa de pesquisa do fluxo clonado, preencha a entrada mlindex_content com suas informações de índice de vetor.

    Captura de tela do nó de pesquisa no estúdio mostrando entradas.

  5. Preencha a etapa answer_the_question_with_context com suas informações de Conexão e Implantação para a API de chat.

    Captura de tela do nó answer_the_question_with_context no estúdio mostrando entradas.

  6. Verifique se o fluxo de exemplo é executado corretamente e salve-o.

  7. Selecione o ícone Baixar no canto superior direito da seção Arquivos. Os arquivos de fluxo são baixados como um pacote ZIP para seu computador local.

    Captura de tela da seção Arquivos da página de criação com o ícone Baixar realçado.

  8. Descompacte o pacote em uma pasta.

Trabalhar com o fluxo no VS Code

O restante deste artigo detalha como usar a extensão do prompt flow do VS Code para editar o fluxo. Se você não quiser usar a extensão Prompt Flow, poderá abrir a pasta descompactada em qualquer ambiente de desenvolvimento integrado (IDE) e usar a CLI para editar os arquivos. Para obter mais informações, consulte oInício rápido do Prompt Flow.

  1. No VS Code com a extensão Prompt Flow ativada, abra uma pasta de prompt flow descompactada.

  2. Selecione o ícone de Prompt Flow no menu esquerdo para abrir o painel de gerenciamento de prompt flow.

    Captura de tela do ícone de extensão do VS Code de prompt flow no menu à esquerda do VS Code.

  3. Selecione Instalar Dependências no painel de gerenciamento e verifique se o interpretador do Python correto está selecionado e se os pacotes promptflow e promptflow-tools estão instalados.

Criar as conexões

Para usar a ferramenta de pesquisa de índice vetorial localmente, você precisa criar a mesma conexão com o serviço de índice vetorial que fez na nuvem.

  1. Expanda a seção Conexões na parte inferior do painel de gerenciamento do prompt flow e selecione o ícone + ao lado do tipo de conexão AzureOpenAI.

    Captura de tela da criação das conexões no VS Code.

  2. Um arquivo new_AzureOpenAI_connection.yaml é aberto no painel de edição. Edite este arquivo para adicionar a conexão name e api_base ou ponto de extremidade do OpenAI do Azure. Não insira suas informações de api_key ainda.

    Captura de tela do arquivo para criar uma conexão do OpenAI do Azure.

  3. Selecione o link Criar Conexão na parte inferior do arquivo. O aplicativo é executado para criar a conexão. Quando solicitado, insira a chave de API para sua conexão no terminal.

  4. Se você usou um índice da Pesquisa de IA do Azure como fonte de dados para seu índice de vetor, crie também uma nova conexão da Pesquisa de IA do Azure para a ferramenta de pesquisa de índice de vetor local a ser usada. Para obter mais informações, consulte Ferramenta de Pesquisa de Índice para o Azure Machine Learning (Versão Prévia).

Verificar os arquivos

  1. Abra o arquivo flow.dag.yaml e selecione o link Editor Visual na parte superior do arquivo.

    Captura de tela do arquivo fluxo DAG do YAML com o editor visual destacado no VS Code.

  2. Na versão do editor visual de flow.dag.yaml, role até o nó de pesquisa , que consome a ferramenta de pesquisa de índice vetor nesse fluxo. Em mlindex_content, verifique os caminhos e conexões para suas inserções e índice.

    Captura de tela do nó de documentos indexados no VS Code mostrando as entradas.

    Observação

    Se seus documentos indexados forem um ativo de dados em seu workspace, o consumo local exigirá a autenticação do Azure. Verifique se você está conectado ao locatário correto do Azure e conectado ao workspace do Azure Machine Learning.

  3. Selecione o ícone Editar na caixa de entrada consultas, que abre o arquivo RAW flow.dag.yaml para a definição do nó lookup.

  4. Verifique se o valor da seção tool nesse nó está definido como promptflow_vectordb.tool.vector_index_lookup.VectorIndexLookup.search, que é a versão local da ferramenta de pesquisa de índice vetor.

    Captura de tela da seção de ferramentas do nó de pesquisa.

    Observação

    Se você tiver problemas com a ferramenta local promptflow_vectordb, consulte o Erro Ferramenta de Pacote Não Encontrada e Migrar de ferramentas herdadas para a ferramenta Pesquisa de Índice para obter solução de problemas.

  5. Role até o nó generate_prompt_context e, no arquivo RAW flow.dag.yaml, selecione o link Abrir arquivo de código.

  6. No arquivo de código Python, verifique se o nome do pacote da ferramenta de vetor é promptflow_vectordb.

    Captura de tela do arquivo de código Python com o nome do pacote de ferramentas de vetor realçado.

  7. Role até o nó answer_the_question_with_context e verifique se ele usa a conexão local que você criou. Verifique o deployment_name, que é o modelo que você usa aqui para a inserção.

    Captura de tela da resposta à pergunta com o nó de contexto com a conexão realçada.

Testar e executar o fluxo

Role até a parte superior do fluxo e preencha o valor Entradas com uma única pergunta para esta execução de teste, como Como usar o SDK V2?, e selecione o ícone Executar para executar o fluxo.

Captura de tela do arquivo YAML do DAG de fluxo mostrando entradas e valor de realce do botão de entrada e execução da pergunta.

Para obter mais informações sobre a execução e a avaliação em lote, consulte Enviar a execução de fluxo para o workspace do Azure Machine Learning.