WorkflowFactory 类

命名空间:Microsoft.Azure。Workflows.Sdk

WorkflowFactory是定义和注册Azure 逻辑应用工作流的主要入口。 它通过使用 WorkflowTriggersWorkflowActionsOperationChain 构建的触发根图创建有状态、无状态和代理工作流。

用法

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

通过 IWorkflowTrigger创建一个持久的有状态工作流。 InvalidOperationException如果提供的触发器是 ConversationalFlowTrigger

public static FlowDefinition CreateStatefulWorkflow(string flowName, IWorkflowTrigger trigger)
名称 说明 类型 必需
flowName 独特的工作流程名称。 字符串 是的
触发 启动工作流程图的触发器。 IWorkflow触发器 是的
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
trigger.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Hello").WithName("Greet"));
var flow = WorkflowFactory.CreateStatefulWorkflow("MyStatefulFlow", trigger);

CreateStatefulWorkflow(String, OperationChain)

操作链创建持久的有状态工作流。 该过载会从链条开始中提取触发器,如果 InvalidOperationException 链条没有 IWorkflowTrigger ,或者该触发器是 ConversationalFlowTrigger

public static FlowDefinition CreateStatefulWorkflow(string flowName, OperationChain chain)
名称 说明 类型 必需
flowName 独特的工作流程名称。 字符串 是的
起始节点必须是触发节点的操作链。 操作链 是的
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)

通过 IWorkflowTrigger创建一个轻量级无状态的工作流。 InvalidOperationException如果提供的触发器是 ConversationalFlowTrigger

public static FlowDefinition CreateStatelessWorkflow(string flowName, IWorkflowTrigger trigger)
名称 说明 类型 必需
flowName 独特的工作流程名称。 字符串 是的
触发 启动工作流程图的触发器。 IWorkflow触发器 是的
var timer = WorkflowTriggers.BuiltIn.CreateRecurrenceTrigger();
timer.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Tick").WithName("Process"));
var flow = WorkflowFactory.CreateStatelessWorkflow("MyStatelessFlow", timer);

CreateStatelessWorkflow(String, OperationChain)

操作链创建一个轻量级无状态的工作流。 该过载会从链条开始中提取触发器,如果 InvalidOperationException 链条没有 IWorkflowTrigger ,或者该触发器是 ConversationalFlowTrigger

public static FlowDefinition CreateStatelessWorkflow(string flowName, OperationChain chain)
名称 说明 类型 必需
flowName 独特的工作流程名称。 字符串 是的
起始节点必须是触发节点的操作链。 操作链 是的
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)

从. ConversationalFlowTrigger创建代理工作流程。 代理工作流程需要对话触发器,无法通过标准的HTTP或递发触发器创建。

public static FlowDefinition CreateAgentWorkflow(string flowName, ConversationalFlowTrigger trigger)
名称 说明 类型 必需
flowName 独特的工作流程名称。 字符串 是的
触发 对话触发器,启动了客服的工作流程。 会话流触发器 是的
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)

操作链创建代理工作流程。 该过载从链起始中提取触发条件,并要求起始节点为 ConversationalFlowTrigger

public static FlowDefinition CreateAgentWorkflow(string flowName, OperationChain chain)
名称 说明 类型 必需
flowName 独特的工作流程名称。 字符串 是的
该操作链的起始节点必须是对话触发器。 操作链 是的
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

注册逻辑应用SDK运行时服务, IServiceCollection包括工作流初始化基础设施和所需的运行时服务。

public static void ConfigureServices(IServiceCollection services)
名称 说明 类型 必需
services 依赖注入服务集合需要配置。 IService收藏 是的
IServiceCollection services = new ServiceCollection();
WorkflowFactory.ConfigureServices(services);