Partilhar via


Desenvolver um fluxo rápido

Importante

Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

O fluxo imediato é uma ferramenta de desenvolvimento projetada para simplificar todo o ciclo de desenvolvimento de aplicações de IA alimentadas por Modelos de Linguagem Grande (LLM). O fluxo imediato fornece uma solução abrangente que simplifica o processo de prototipagem, experimentação, iteração e instalação das suas aplicações de IA.

Com o fluxo imediato, você é capaz de:

  • Orquestre fluxos executáveis com LLMs, prompts e ferramentas Python por meio de um gráfico visualizado.
  • Teste, depure e itere seus fluxos com facilidade.
  • Crie variantes de prompt e compare seu desempenho.

Neste artigo, você aprenderá a criar e desenvolver seu primeiro fluxo de prompt no Azure AI Studio.

Pré-requisitos

  • Se você ainda não tiver um projeto do Azure AI Studio, primeiro crie um projeto.
  • O fluxo de prompt requer uma sessão de computação. Se você não tiver um tempo de execução, poderá criar um no Azure AI Studio.
  • Você precisa de um modelo implantado.

Crie e desenvolva seu fluxo de prompt

Você pode criar um fluxo clonando as amostras disponíveis na galeria ou criando um fluxo do zero. Se você já tiver arquivos de fluxo no compartilhamento local ou de arquivos, também poderá importá-los para criar um fluxo.

Para criar um fluxo de prompt da galeria no Azure AI Studio:

  1. Entre no Azure AI Studio e selecione seu projeto.

  2. No menu recolhível à esquerda, selecione Fluxo de prompt.

  3. Selecione + Criar.

  4. No bloco Fluxo padrão, selecione Criar.

  5. Na página Criar um novo fluxo, insira um nome de pasta e selecione Criar.

    Captura de tela da seleção e criação de um fluxo padrão.

  6. A página de criação do fluxo de prompt é aberta. Você pode começar a criar seu fluxo agora. Por padrão, você vê um fluxo de amostra. Este fluxo de exemplo tem nós para as ferramentas LLM e Python.

    Captura de tela da entrada e saída de fluxo na página de fluxo do prompt de edição.

    Nota

    A vista de gráfico apenas para visualização. Ele mostra a estrutura de fluxo que você está desenvolvendo. Não é possível editar a visualização do gráfico diretamente, mas é possível ampliar, reduzir e rolar. Você pode selecionar um nó na visualização de gráfico para realçar e navegar até o nó na visualização de edição da ferramenta.

  7. Opcionalmente, você pode adicionar mais ferramentas ao fluxo. As opções de ferramenta visíveis são LLM, Prompt e Python. Para ver mais ferramentas, selecione + Mais ferramentas.

    Captura de tela de onde você pode encontrar mais ferramentas na página de fluxo de prompt de edição.

  8. Selecione uma conexão e implantação no editor de ferramentas LLM.

    Captura de tela da conexão e implantação selecionadas na ferramenta LLM na página de fluxo de prompt de edição.

  9. Selecione Executar para executar o fluxo.

    Captura de tela de onde selecionar executar na página de fluxo do prompt de edição.

  10. O status de execução do fluxo é mostrado como Em execução.

    Captura de tela do fluxo no estado de execução na página de fluxo do prompt de edição.

  11. Quando a execução do fluxo estiver concluída, selecione Exibir saídas para visualizar os resultados do fluxo.

    Captura de tela de onde você pode selecionar para exibir os resultados do fluxo na página de fluxo do prompt de edição.

  12. Você pode visualizar o status e a saída da execução do fluxo na seção Saídas .

    Captura de tela dos detalhes da saída.

Criação do fluxo

Cada fluxo é representado por uma pasta que contém um arquivo 'flow.dag.yaml'', arquivos de código-fonte e pastas do sistema. Você pode adicionar novos arquivos, editar arquivos existentes e excluir arquivos. Você também pode exportar os arquivos para o local ou importar arquivos do local.

Além de editar inline o nó na visualização nivelada, você também pode ativar o modo de arquivo Raw e selecionar o nome do arquivo para editar o arquivo na guia de abertura do arquivo.

Entrada e saída de fluxo

Entrada de fluxo são os dados passados para o fluxo como um todo. Defina o esquema de entrada especificando o nome e o tipo. Defina o valor de entrada de cada entrada para testar o fluxo. Você pode fazer referência à entrada de fluxo posteriormente nos nós de fluxo usando ${input.[input name]} sintaxe.

Saída de fluxo são os dados produzidos pelo fluxo como um todo, que resume os resultados da execução do fluxo. Você pode visualizar e exportar a tabela de saída após a conclusão da execução do fluxo ou da execução em lote. Defina o valor de saída de fluxo fazendo referência à saída de nó único de fluxo usando sintaxe ${[node name].output} ou ${[node name].output.[field name]}.

Ao fazer referência à saída do nó, você pode vincular nós. Por exemplo, você pode fazer referência à saída do nó LLM na entrada do nó Python, para que o nó Python possa consumir a saída do nó LLM e, na visualização do gráfico, você pode ver que os dois nós estão vinculados.

Habilitar o controle condicional para o fluxo

O Prompt Flow oferece não apenas uma maneira simplificada de executar o fluxo, mas também traz um recurso poderoso para os desenvolvedores - o controle condicional, que permite aos usuários definir condições para a execução de qualquer nó em um fluxo.

Em sua essência, o controle condicional fornece a capacidade de associar cada nó em um fluxo a uma configuração de ativação. Essa configuração é essencialmente uma instrução "when" que determina quando um nó deve ser executado. O poder desse recurso é percebido quando você tem fluxos complexos onde a execução de certas tarefas depende do resultado de tarefas anteriores. Usando o controle condicional, você pode configurar seus nós específicos para executar somente quando as condições especificadas forem atendidas.

Especificamente, você pode definir a configuração de ativação para um nó selecionando o botão Ativar configuração na placa de nó. Você pode adicionar a instrução "quando" e definir a condição. Você pode definir as condições fazendo referência à entrada de fluxo ou saída de nó. Por exemplo, você pode definir a condição ${input.[input name]} como valor específico ou ${[node name].output} como valor específico.

Se a condição não for atendida, o nó será ignorado. O status do nó é mostrado como "Ignorado".

Testar o fluxo

Você pode testar o fluxo de duas maneiras:

  • Execute um único nó.
    • Para executar um único nó, selecione o ícone Executar no nó na visualização nivelada. Quando a execução estiver concluída, você poderá verificar rapidamente o resultado na seção de saída do nó.
  • Execute todo o fluxo.
    • Para executar todo o fluxo, selecione o botão Executar na parte superior direita.

Exibir resultado do teste e rastreamento (visualização)

Para toda a execução do fluxo, depois de executar o fluxo, você pode ver o status da execução no banner de execução. Em seguida, você pode selecionar Exibir rastreamento para visualizar o rastreamento para verificar o resultado e observar a execução do fluxo, onde você pode ver a entrada e saída de todo o fluxo e cada nó, juntamente com informações mais detalhadas para depuração. Está disponível durante a execução e após a conclusão da mesma.

Compreender a vista de rastreio

O tipo de rastreamento de um fluxo de prompt é designado como Fluxo. Dentro da visualização de traço, a sequência clara das ferramentas usadas para orquestração de fluxo pode ser observada.

Cada span de nível 2 sob a raiz do fluxo representa um nó no fluxo, executado na forma de uma chamada de função, portanto, o tipo de span é identificado como Função. Você pode ver a duração da execução de cada nó na árvore de extensão.

Na árvore de extensão, as chamadas LLM são facilmente identificáveis como a extensão LLM . Eles fornecem informações sobre a duração da chamada LLM e o custo do token associado.

Ao selecionar uma extensão, você pode ver as informações detalhadas no lado direito. Isso inclui entrada e saída, Raw Json e Exception, todos úteis para observação e depuração.

 Captura de tela de detalhes de rastreamento.

Nota

No SDK de fluxo de prompt, definimos tipos de serval span, incluindo LLM, Função, Incorporação, Recuperação e Fluxo. E o sistema cria automaticamente extensões com informações de execução em atributos e eventos designados.

Para saber mais sobre os tipos de extensão, consulte Rastrear extensão.

Depois que a execução do fluxo for concluída, para verificar os resultados, você poderá selecionar o botão Exibir resultados do teste para verificar todos os registros históricos de execução em uma lista. Por padrão, os registros de execução criados nos últimos 7 dias são exibidos. Você pode selecionar o Filtro para alterar a condição.

Captura de tela do resultado do teste de fluxo.

Você também pode selecionar o Nome do registro de execução para exibir as informações detalhadas no modo de exibição de rastreamento.

Desenvolver um fluxo de bate-papo

O fluxo de bate-papo foi projetado para o desenvolvimento de aplicativos de conversação, aproveitando os recursos do fluxo padrão e fornecendo suporte aprimorado para entradas/saídas de bate-papo e gerenciamento de histórico de bate-papo. Com o fluxo de chat, você pode criar facilmente um chatbot que lida com a entrada e saída do chat.

Na página de criação do fluxo de chat, o fluxo de chat é marcado com um rótulo de "chat" para distingui-lo do fluxo padrão e do fluxo de avaliação. Para testar o fluxo de chat, selecione o botão "Chat" para acionar uma caixa de chat para conversa.

Entrada/saída de chat e histórico de chat

Os elementos mais importantes que diferenciam um fluxo de bate-papo de um fluxo padrão são a entrada de bate-papo, o histórico de bate-papo e a saída de bate-papo.

  • Entrada de chat: a entrada de chat refere-se às mensagens ou consultas enviadas pelos usuários ao chatbot. Lidar eficazmente com a entrada de chat é crucial para uma conversa bem-sucedida, pois envolve entender as intenções do usuário, extrair informações relevantes e desencadear respostas apropriadas.
  • Histórico de bate-papo: o histórico de bate-papo é o registro de todas as interações entre o usuário e o chatbot, incluindo entradas do usuário e saídas geradas por IA. Manter o histórico de bate-papo é essencial para acompanhar o contexto da conversa e garantir que a IA possa gerar respostas contextualmente relevantes.
  • Saída de chat: A saída de chat refere-se às mensagens geradas por IA que são enviadas ao utilizador em resposta às suas entradas. Gerar resultados de bate-papo contextualmente apropriados e envolventes é vital para uma experiência positiva do usuário.

Um fluxo de chat pode ter várias entradas, o histórico de chat e a entrada de chat são necessários no fluxo de chat.

  • Na seção de entradas de fluxo de chat, uma entrada de fluxo pode ser marcada como entrada de chat. Em seguida, você pode preencher o valor de entrada do bate-papo digitando na caixa de bate-papo.

  • O fluxo de prompt pode ajudar o usuário a gerenciar o histórico de bate-papo. A chat_history seção Entradas é reservada para representar o histórico do bate-papo. Todas as interações na caixa de chat, incluindo entradas de bate-papo do usuário, saídas de bate-papo geradas e outras entradas e saídas de fluxo, são armazenadas automaticamente no histórico de bate-papo. O usuário não pode definir manualmente o valor de chat_history na seção Entradas. Está estruturado como uma lista de entradas e saídas:

    [
    {
        "inputs": {
        "<flow input 1>": "xxxxxxxxxxxxxxx",
        "<flow input 2>": "xxxxxxxxxxxxxxx",
        "<flow input N>""xxxxxxxxxxxxxxx"
        },
        "outputs": {
        "<flow output 1>": "xxxxxxxxxxxx",
        "<flow output 2>": "xxxxxxxxxxxxx",
        "<flow output M>": "xxxxxxxxxxxxx"
        }
    },
    {
        "inputs": {
        "<flow input 1>": "xxxxxxxxxxxxxxx",
        "<flow input 2>": "xxxxxxxxxxxxxxx",
        "<flow input N>""xxxxxxxxxxxxxxx"
        },
        "outputs": {
        "<flow output 1>": "xxxxxxxxxxxx",
        "<flow output 2>": "xxxxxxxxxxxxx",
        "<flow output M>": "xxxxxxxxxxxxx"
        }
    }
    ]
    

Nota

A capacidade de salvar ou gerenciar automaticamente o histórico de bate-papo é um recurso na página de criação ao realizar testes na caixa de bate-papo. Para execuções em lote, é necessário que os usuários incluam o histórico de bate-papo no conjunto de dados de execução em lote. Se não houver nenhum histórico de bate-papo disponível para teste, basta definir o chat_history para uma lista [] vazia dentro do conjunto de dados de execução em lote.

Prompt do autor com histórico de bate-papo

Incorporar o histórico do bate-papo em suas solicitações é essencial para criar respostas de chatbot sensíveis ao contexto e envolventes. Em seus prompts, você pode fazer referência chat_history para recuperar interações anteriores. Isso permite que você faça referência a entradas e saídas anteriores para criar respostas contextualmente relevantes.

Use a gramática for-loop da linguagem Jinja para exibir uma lista de entradas e saídas do chat_history.

{% for item in chat_history %}
user:
{{item.inputs.question}}
assistant:
{{item.outputs.answer}}
{% endfor %}

Teste com a caixa de chat

A caixa de chat fornece uma maneira interativa de testar seu fluxo de bate-papo simulando uma conversa com seu chatbot. Para testar seu fluxo de bate-papo usando a caixa de bate-papo, siga estas etapas:

  1. Selecione o botão "Chat" para abrir a caixa de chat.
  2. Digite suas entradas de teste na caixa de chat e pressione Enter para enviá-las para o chatbot.
  3. Analise as respostas do chatbot para garantir que sejam contextualmente apropriadas e precisas.
  4. Visualize o rastreamento no local para observar e depurar rapidamente.

Próximos passos