WorkflowFactory-Klasse

Namespace: Microsoft.Azure. Workflows.Sdk

WorkflowFactory ist der primäre Einstiegspunkt zur Definition und Registrierung Azure Logic Apps Workflows. Es erstellt stateful, stateless und agentenbasierte Workflows aus trigger-gerooteten Graphen, die mit WorkflowTriggers, WorkflowActions und OperationChain erstellt werden.

Verwendung

// 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);

Methodik

CreateStatefulWorkflow(String, IWorkflowTrigger)

Schafft einen robusten, zustandsvollen Workflow aus einem IWorkflowTrigger. Diese Überlastung wirft, InvalidOperationException wenn der mitgelieferte Auslöser ein ConversationalFlowTriggerist.

public static FlowDefinition CreateStatefulWorkflow(string flowName, IWorkflowTrigger trigger)
Name Beschreibung Typ Erforderlich
flowName Der einzigartige Workflow-Name. string Yes
trigger Der Auslöser, der den Workflow-Graphen startet. IWorkflowTrigger Yes
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
trigger.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Hello").WithName("Greet"));
var flow = WorkflowFactory.CreateStatefulWorkflow("MyStatefulFlow", trigger);

CreateStatefulWorkflow(String, OperationChain)

Erstellt einen robusten, zustandsvollen Workflow aus einer OperationChain. Diese Überladung zieht den Trigger aus dem Kettenstart und wirft, InvalidOperationException wenn die Kette nicht mit einem IWorkflowTrigger startet oder wenn dieser Trigger ein ConversationalFlowTriggerist.

public static FlowDefinition CreateStatefulWorkflow(string flowName, OperationChain chain)
Name Beschreibung Typ Erforderlich
flowName Der einzigartige Workflow-Name. string Yes
Kette Die Operationskette, deren Startknoten ein Trigger sein muss. OperationChain Yes
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)

Erstellt einen leichtgewichtigen, stateless Workflow aus einem IWorkflowTrigger. Diese Überlastung wirft, InvalidOperationException wenn der mitgelieferte Auslöser ein ConversationalFlowTriggerist.

public static FlowDefinition CreateStatelessWorkflow(string flowName, IWorkflowTrigger trigger)
Name Beschreibung Typ Erforderlich
flowName Der einzigartige Workflow-Name. string Yes
trigger Der Auslöser, der den Workflow-Graphen startet. IWorkflowTrigger Yes
var timer = WorkflowTriggers.BuiltIn.CreateRecurrenceTrigger();
timer.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Tick").WithName("Process"));
var flow = WorkflowFactory.CreateStatelessWorkflow("MyStatelessFlow", timer);

CreateStatelessWorkflow(String, OperationChain)

Erstellt einen leichtgewichtigen, stateless Workflow aus einer OperationChain. Diese Überladung zieht den Trigger aus dem Kettenstart und wirft, InvalidOperationException wenn die Kette nicht mit einem IWorkflowTrigger startet oder wenn dieser Trigger ein ConversationalFlowTriggerist.

public static FlowDefinition CreateStatelessWorkflow(string flowName, OperationChain chain)
Name Beschreibung Typ Erforderlich
flowName Der einzigartige Workflow-Name. string Yes
Kette Die Operationskette, deren Startknoten ein Trigger sein muss. OperationChain Yes
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)

Erstellt einen Agenten-Workflow aus einer ConversationalFlowTrigger. Agenten-Workflows erfordern einen konversationellen Trigger und können nicht aus Standard-HTTP- oder Recurrence-Triggern erstellt werden.

public static FlowDefinition CreateAgentWorkflow(string flowName, ConversationalFlowTrigger trigger)
Name Beschreibung Typ Erforderlich
flowName Der einzigartige Workflow-Name. string Yes
trigger Der Gesprächsauslöser, der den Agenten-Workflow startet. ConversationalFlowTrigger Yes
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)

Erstellt einen Agenten-Workflow aus einer OperationChain. Diese Überladung zieht den Trigger aus dem Kettenstart und erfordert, dass der Startknoten ein ConversationalFlowTriggerist.

public static FlowDefinition CreateAgentWorkflow(string flowName, OperationChain chain)
Name Beschreibung Typ Erforderlich
flowName Der einzigartige Workflow-Name. string Yes
Kette Die Operationskette, deren Startknoten ein konversationeller Auslöser sein muss. OperationChain Yes
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

Registriert die Laufzeitdienste des Logic Apps SDK in einem IServiceCollection, einschließlich der Workflow-Initialisierungsinfrastruktur und den erforderlichen Laufzeitdiensten.

public static void ConfigureServices(IServiceCollection services)
Name Beschreibung Typ Erforderlich
services Die Dependency Injection-Service-Sammlung, um zu konfigurieren. IService-Sammlung Yes
IServiceCollection services = new ServiceCollection();
WorkflowFactory.ConfigureServices(services);