命名空间:Microsoft.Azure。Workflows.Sdk
WorkflowFactory是定义和注册Azure 逻辑应用工作流的主要入口。 它通过使用 WorkflowTriggers、 WorkflowActions 和 OperationChain 构建的触发根图创建有状态、无状态和代理工作流。
用法
// 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);
相关内容
- AgentToolContext 类定义
- IChainableNode 接口定义
- 可实现工作流程操作接口定义
- IWorkflowAction 接口定义
- IWorkflowOperation 接口定义
- IWorkflowProvider 接口定义
- IWorkflowTrigger 接口定义
- OperationChain 类定义
- 类型工作流动作接口定义
- 类型化工作流触发器接口定义
- WorkflowActionBase 类定义
- WorkflowActions 类定义
- WorkflowBuiltInActions 类定义
- WorkflowBuiltInTriggers 类定义
- WorkflowContext 类定义
- 工作流程控制行动类定义
- WorkflowManagedActions 类定义
- WorkflowManagedTriggers 类定义
- WorkflowProviderExtensions 类定义
- WorkflowTriggerBase 类定义
- 工作流程触发类定义
- WorkflowVariableActions 类定义