Usar fluxos de trabalho no código

Concluído

Depois de desenhar e testar um fluxo de trabalho no designer visual do Microsoft Foundry, pode integrá-lo nas suas aplicações usando o Azure AI Projects SDK. Isto permite-lhe incorporar automação orientada por fluxos de trabalho em aplicações web, APIs, serviços de backend e outras soluções de software.

Os fluxos de trabalho são criados no portal Foundry usando o designer visual, que gera a definição YAML subjacente. Depois de um fluxo de trabalho ser guardado no seu projeto, pode invocá-lo programaticamente ao referir o seu nome. Também pode descarregar a definição YAML do fluxo de trabalho do portal e incluí-la na sua base de código.

Invocar um fluxo de trabalho

Antes de executar um fluxo de trabalho, estabeleça uma ligação ao seu projeto Microsoft Foundry usando o AIProjectClient. Este cliente gere a autenticação e fornece acesso à API compatível com OpenAI para executar conversas e invocar fluxos de trabalho. Para executar um fluxo de trabalho existente no seu projeto, crie uma conversa e invoce o fluxo de trabalho pelo nome.

# Reference a workflow created in the Foundry portal
workflow_name = "triage-workflow"

# Create a conversation context for the workflow
conversation = openai_client.conversations.create()

# Execute the workflow, passing input to drive the workflow logic
stream = openai_client.responses.create(
    conversation=conversation.id,
    extra_body={"agent": {"name": workflow_name, "type": "agent_reference"}},
    input="Users can't reset their password from the mobile app.",
    stream=True,
)

O input parâmetro permite-lhe passar um prompt ou mensagem ao fluxo de trabalho, que este pode usar para orientar a sua lógica — como processar um pedido de utilizador, triar um pedido de suporte ou responder a uma pergunta. Dependendo de como o seu fluxo de trabalho está desenhado, esta entrada pode ser:

  • Uma pergunta de utilizador que os agentes analisam e a que respondem
  • Uma descrição do ticket de suporte para classificação e encaminhamento
  • Uma carga útil de dados que aciona a lógica de processamento
  • Uma cadeia vazia que simplesmente inicia o fluxo de trabalho sem uma entrada específica

Eventos do fluxo de trabalho

Quando o streaming está ativado, a sua aplicação recebe eventos à medida que o fluxo de trabalho é executado. Estes eventos permitem-lhe mostrar progresso em tempo real, capturar resultados de agentes e responder a ações do fluxo de trabalho.

for event in stream:
    if event.type == "response.completed":
        print("Workflow completed:")
        for message in event.response.output:
            if message.content:
                for content_item in message.content:
                    if content_item.type == 'output_text':
                        print(content_item.text)
    if (event.type == "response.output_item.done") and event.item.type == ItemType.WORKFLOW_ACTION:
        print(f"Action '{event.item.action_id}' completed with status: {event.item.status}")

Tipos de eventos comuns incluem:

Tipo de Evento Description
response.completed O fluxo de trabalho terminou a execução e devolveu uma resposta final
response.output_item.done Um item de saída individual (como uma ação de fluxo de trabalho) concluído

Ao monitorizar estes eventos, pode ver como o fluxo de trabalho progride em tempo real ou desencadear ações externas com base no estado do fluxo. Em alternativa, pode optar por esperar que todo o fluxo de trabalho seja concluído e processar a resposta final sem fazer streaming. Para fluxos de trabalho que incluem padrões humano-no-laço, a aplicação pode precisar de lidar com pausas onde o fluxo de trabalho espera por entrada do utilizador. Nestes casos, pode enviar mensagens adicionais à conversa para fornecer a entrada solicitada e retomar a execução do fluxo de trabalho.

Benefícios da integração de código

Integrar fluxos de trabalho no seu código permite vários cenários:

Scenario Benefício
Aplicações Web Incorpore fluxos de trabalho orientados por IA diretamente em aplicações voltadas para o utilizador
APIs e microsserviços Expor capacidades de workflow através de endpoints REST
Processamento em lotes Invocar fluxos de trabalho programaticamente para operações em massa
Testes e validação Automatizar a testagem de workflows como parte das pipelines CI/CD
Interfaces personalizadas Construir interfaces especializadas adaptadas a casos de uso específicos do fluxo de trabalho

Ao combinar a experiência de design visual do portal Foundry com a flexibilidade da integração de código, pode criar soluções poderosas impulsionadas por IA que se encaixam perfeitamente na sua arquitetura de software existente.