Classe WorkflowFactory

Namespace: Microsoft.Azure. Workflows.Sdk

WorkflowFactory è il punto di ingresso principale per definire e registrare i flussi di lavoro App per la logica di Azure. Crea flussi di lavoro con stato, senza stato e agenti a partire da grafi radicati nei trigger costruiti con WorkflowTriggers, WorkflowActions e OperationChain.

Usage

// Stateful workflow
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
trigger.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Hello").WithName("Greet"));
var stateful = WorkflowFactory.CreateStatefulWorkflow("MyStatefulFlow", trigger);

// Stateless workflow
var timer = WorkflowTriggers.BuiltIn.CreateRecurrenceTrigger();
timer.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Tick").WithName("Process"));
var stateless = WorkflowFactory.CreateStatelessWorkflow("MyStatelessFlow", timer);

// Agent workflow
var agentTrigger = WorkflowTriggers.BuiltIn.CreateConversationalAgentTrigger();
agentTrigger.Then(WorkflowActions.BuiltIn.Agent(
    AgentModelType.OpenAI, "gpt-4", new AgentModelSettings(), "conn",
    messages: () => new[] { new AgentPromptMessage { Role = "system", Content = "Hello" } }));
var agent = WorkflowFactory.CreateAgentWorkflow("MyAgentFlow", agentTrigger);

Methods

CreateStatefulWorkflow(String, IWorkflowTrigger)

Crea un flusso di lavoro con stato duraturo da un IWorkflowTrigger. Questo sovraccarico si verifica InvalidOperationException se il trigger fornito è un ConversationalFlowTrigger.

public static FlowDefinition CreateStatefulWorkflow(string flowName, IWorkflowTrigger trigger)
Name Description TIPO Required
flowName Il nome unico del flusso di lavoro. corda
trigger Il trigger che avvia il grafico del flusso di lavoro. IWorkflowTrigger
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
trigger.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Hello").WithName("Greet"));
var flow = WorkflowFactory.CreateStatefulWorkflow("MyStatefulFlow", trigger);

CreateStatefulWorkflow(String, OperationChain)

Crea un flusso di lavoro duraturato e con stato da una OperationChain. Questo sovraccarico estrae il grilletto dall'avvio della catena e si lancia InvalidOperationException se la catena non parte con un IWorkflowTrigger o se quel trigger è un ConversationalFlowTrigger.

public static FlowDefinition CreateStatefulWorkflow(string flowName, OperationChain chain)
Name Description TIPO Required
flowName Il nome unico del flusso di lavoro. corda
catena La catena di operazioni il cui nodo iniziale deve essere un trigger. OperationChain
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
var chain = trigger
    .Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Step 1").WithName("Step1"))
    .Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Step 2").WithName("Step2"));
var flow = WorkflowFactory.CreateStatefulWorkflow("MyStatefulFlow", chain);

CreateStatelessWorkflow(String, IWorkflowTrigger)

Crea un flusso di lavoro leggero e senza stato da un IWorkflowTrigger. Questo sovraccarico si verifica InvalidOperationException se il trigger fornito è un ConversationalFlowTrigger.

public static FlowDefinition CreateStatelessWorkflow(string flowName, IWorkflowTrigger trigger)
Name Description TIPO Required
flowName Il nome unico del flusso di lavoro. corda
trigger Il trigger che avvia il grafico del flusso di lavoro. IWorkflowTrigger
var timer = WorkflowTriggers.BuiltIn.CreateRecurrenceTrigger();
timer.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Tick").WithName("Process"));
var flow = WorkflowFactory.CreateStatelessWorkflow("MyStatelessFlow", timer);

CreateStatelessWorkflow(String, OperationChain)

Crea un flusso di lavoro leggero senza stato da una OperationChain. Questo sovraccarico estrae il grilletto dall'avvio della catena e si lancia InvalidOperationException se la catena non parte con un IWorkflowTrigger o se quel trigger è un ConversationalFlowTrigger.

public static FlowDefinition CreateStatelessWorkflow(string flowName, OperationChain chain)
Name Description TIPO Required
flowName Il nome unico del flusso di lavoro. corda
catena La catena di operazioni il cui nodo iniziale deve essere un trigger. OperationChain
var timer = WorkflowTriggers.BuiltIn.CreateRecurrenceTrigger();
var chain = timer.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Tick").WithName("Process"));
var flow = WorkflowFactory.CreateStatelessWorkflow("MyStatelessFlow", chain);

CreateAgentWorkflow(String, ConversationalFlowTrigger)

Crea un flusso di lavoro di agente da un ConversationalFlowTriggerfile di . I flussi di lavoro degli agenti richiedono un trigger conversazionale e non possono essere creati da trigger HTTP standard o di ricorrenza.

public static FlowDefinition CreateAgentWorkflow(string flowName, ConversationalFlowTrigger trigger)
Name Description TIPO Required
flowName Il nome unico del flusso di lavoro. corda
trigger Il trigger conversazionale che avvia il flusso di lavoro dell'agente. ConversazionalFlusso Trigger
var agentTrigger = WorkflowTriggers.BuiltIn.CreateConversationalAgentTrigger();
agentTrigger.Then(WorkflowActions.BuiltIn.Agent(
    AgentModelType.OpenAI,
    "gpt-4",
    new AgentModelSettings(),
    "conn",
    messages: () => new[] { new AgentPromptMessage { Role = "system", Content = "Hello" } }));
var flow = WorkflowFactory.CreateAgentWorkflow("MyAgentFlow", agentTrigger);

CreateAgentWorkflow(String, OperationChain)

Crea un flusso di lavoro di agente da una OperationChain. Questo sovraccarico estrae il trigger dall'avvio della catena e richiede che il nodo di partenza sia un ConversationalFlowTrigger.

public static FlowDefinition CreateAgentWorkflow(string flowName, OperationChain chain)
Name Description TIPO Required
flowName Il nome unico del flusso di lavoro. corda
catena La catena di operazioni il cui nodo iniziale deve essere un trigger conversazionale. OperationChain
var agentTrigger = WorkflowTriggers.BuiltIn.CreateConversationalAgentTrigger();
var chain = agentTrigger.Then(WorkflowActions.BuiltIn.Agent(
    AgentModelType.OpenAI,
    "gpt-4",
    new AgentModelSettings(),
    "conn",
    messages: () => new[] { new AgentPromptMessage { Role = "system", Content = "Hello" } }));
var flow = WorkflowFactory.CreateAgentWorkflow("MyAgentFlow", chain);

ConfigureServices

Registra i servizi di runtime SDK di Logic Apps in un IServiceCollection, inclusi l'infrastruttura di inizializzazione del flusso di lavoro e i servizi di runtime richiesti.

public static void ConfigureServices(IServiceCollection services)
Name Description TIPO Required
services La raccolta di servizi di iniezione di dipendenza da configurare. CollezioneIservice
IServiceCollection services = new ServiceCollection();
WorkflowFactory.ConfigureServices(services);