promptflow.contracts.flow 模块#
- class promptflow.contracts.flow.ActivateCondition(condition: InputAssignment, condition_value: Any)#
基础类:
object这个类表示一个节点的激活条件。
- Parameters:
condition (InputAssignment) – 激活条件的条件。
condition_value (Any) – 条件的值。
- condition: InputAssignment#
- condition_value: Any#
- static deserialize(data: dict, node_name: Optional[str] = None) ActivateCondition#
从字典中反序列化激活条件。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构建的激活条件。
- Return type:
- class promptflow.contracts.flow.FlexFlow(id: str, name: str, inputs: Dict[str, FlowInputDefinition], outputs: Dict[str, FlowOutputDefinition], init: Optional[Dict[str, FlowInputDefinition]] = None, program_language: str = 'python', environment_variables: Optional[Dict[str, object]] = None, message_format: str = 'basic', sample: Optional[Dict[str, dict]] = None)#
基础类:
FlowBase这个类表示一个弹性流。
- Parameters:
id (str) – 流程的id。
name (str) – 流程的名称。
inputs (Dict[str, FlowInputDefinition]) – 流程的输入。
outputs (Dict[str, FlowOutputDefinition]) – 流程的输出。
program_language (str) – 流程的编程语言。
environment_variables (Dict[str, object]) – 流程的默认环境变量。
message_format (str) – 用于表示不同多媒体合同的流的消息格式类型。
sample (Dict[str, object]) – 流程的样本数据。如果未提供,将成为默认输入和初始化参数。
- static deserialize(data: dict) FlexFlow#
从字典中反序列化流程。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构建的流程。
- Return type:
EagerFlow
- environment_variables: Dict[str, object] = None#
- get_connection_names(environment_variables_overrides: Optional[Dict[str, str]] = None)#
返回连接名称。
- init: Dict[str, FlowInputDefinition] = None#
- message_format: str = 'basic'#
- program_language: str = 'python'#
- sample: Dict[str, dict] = None#
- class promptflow.contracts.flow.Flow(id: str, name: str, inputs: Dict[str, FlowInputDefinition], outputs: Dict[str, FlowOutputDefinition], nodes: List[节点], tools: List[工具], node_variants: Optional[Dict[str, 节点变体]] = None, program_language: str = 'python', environment_variables: Optional[Dict[str, object]] = None, message_format: str = 'basic')#
基础类:
FlowBase这个类代表一个流程。
- Parameters:
id (str) – 流程的id。
name (str) – 流程的名称。
nodes (List[Node]) – 流程的节点。
inputs (Dict[str, FlowInputDefinition]) – 流程的输入。
outputs (Dict[str, FlowOutputDefinition]) – 流程的输出。
工具 (列表[工具]) – 流程的工具。
node_variants (Dict[str, NodeVariants]) – 流程的节点变体。
program_language (str) – 流程的编程语言。
environment_variables (Dict[str, object]) – 流程的默认环境变量。
message_format (str) – 用于表示不同多媒体合同的流的消息格式类型。
- static deserialize(data: dict) Flow#
从字典中反序列化流程。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构建的流程。
- Return type:
- environment_variables: Dict[str, object] = None#
- get_chat_input_name()#
返回聊天输入的名称。
- get_chat_output_name()#
返回聊天输出的名称。
- get_connection_input_names_for_node(node_name)#
返回节点的连接输入名称,还将返回未分配的节点连接输入。
- Parameters:
node_name – 节点名称
- get_connection_names(environment_variables_overrides: Optional[Dict[str, str]] = None)#
返回连接名称。
- get_node(node_name)#
返回具有给定名称的节点。
- get_tool(tool_name)#
返回具有给定名称的工具。
- has_aggregation_node()#
返回流程是否具有聚合节点。
- is_chat_flow()#
返回流程是否为聊天流程。
- is_llm_node(node)#
给定一个节点,返回它是否使用了LLM工具。
- is_normal_node(node_name)#
返回节点是否为普通节点。
- is_reduce_node(node_name)#
返回节点是否为reduce节点。
- is_referenced_by_flow_output(node)#
给定一个节点,返回它是否被输出引用。
- is_referenced_by_other_node(node)#
给定一个节点,返回它是否被其他节点引用。
- classmethod load_env_variables(flow_file: Path, working_dir=None, environment_variables_overrides: Optional[Dict[str, str]] = None) Dict[str, str]#
从流程 yaml 中读取 flow_environment_variables。 如果存在 environment_variables_overrides,则覆盖 yaml 级别的配置。 返回合并后的环境变量字典。
- static load_message_format_from_yaml(flow_file: Path, working_dir=None) str#
- message_format: str = 'basic'#
- program_language: str = 'python'#
- serialize()#
将流程序列化为字典。
- Returns:
流程的字典。
- Return type:
字典
- class promptflow.contracts.flow.FlowBase(id: str, name: str, inputs: Dict[str, FlowInputDefinition], outputs: Dict[str, FlowOutputDefinition])#
基础类:
object这是流程的基类。
- Parameters:
id (str) – 流程的id。
name (str) – 流程的名称。
inputs (Dict[str, FlowInputDefinition]) – 流程的输入。
outputs (Dict[str, FlowOutputDefinition]) – 流程的输出。
- get_connection_names(environment_variables_overrides: Optional[Dict[str, str]] = None)#
返回带有环境变量覆盖的连接名称。 注意:只有在flow.environment_variables中存在的环境变量才会被考虑。
- Parameters:
environment_variables_overrides – 用于覆盖流程的环境变量。
- Returns:
此流程中使用的连接名称。
- get_environment_variables_with_overrides(environment_variables_overrides: Optional[Dict[str, str]] = None) Dict[str, str]#
- id: str#
- inputs: Dict[str, FlowInputDefinition]#
- name: str#
- outputs: Dict[str, FlowOutputDefinition]#
- class promptflow.contracts.flow.FlowInitDefinition(type: ValueType, default: Optional[str] = None, description: Optional[str] = None)#
-
这个类表示可调用类流程的初始化关键字的定义。
- static deserialize(data: dict) FlowInitDefinition#
从字典中反序列化流程初始化定义。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构建的流程输入定义。
- Return type:
- class promptflow.contracts.flow.FlowInputAssignment(value: Any, value_type: InputValueType = InputValueType.LITERAL, section: str = '', property: str = '', prefix: str = 'flow.')#
-
此类表示流程输入值的分配。
- Parameters:
prefix (str) – 流程输入的前缀。
- static deserialize(value: str) FlowInputAssignment#
将流程输入分配从字符串反序列化。
- Parameters:
value (str) – 要反序列化的字符串。
- Returns:
从字符串构建的流程输入分配。
- Return type:
- static is_flow_input(input_value: str) bool#
检查输入值是否为流程输入。
- Parameters:
input_value (str) – 要检查的输入值。
- Returns:
输入值是否为流程输入。
- Return type:
布尔
- prefix: str = 'flow.'#
- class promptflow.contracts.flow.FlowInputDefinition(type: ValueType, default: Optional[str] = None, description: Optional[str] = None, enum: Optional[List[str]] = None, is_chat_input: bool = False, is_chat_history: Optional[bool] = None)#
-
此类表示流程输入的定义。
- Parameters:
type (ValueType) – 流程输入的类型。
default (str) – 流程输入的默认值。
description (str) – 流程输入的描述。
enum (List[str]) – 流程输入的枚举。
is_chat_input (bool) – 流程输入是否为聊天输入。
is_chat_history (bool) – 流程输入是否为聊天历史记录。
- static deserialize(data: dict) FlowInputDefinition#
从字典中反序列化流程输入定义。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构建的流程输入定义。
- Return type:
- enum: List[str] = None#
- is_chat_history: bool = None#
- is_chat_input: bool = False#
- serialize()#
将流程输入定义序列化为字典。
- Returns:
流程输入定义的字典。
- Return type:
字典
- class promptflow.contracts.flow.FlowOutputDefinition(type: ValueType, reference: InputAssignment, description: str = '', evaluation_only: bool = False, is_chat_output: bool = False)#
基础类:
object此类表示流程输出的定义。
- Parameters:
type (ValueType) – 流程输出的类型。
reference (InputAssignment) – 流程输出的引用。
description (str) – 流程输出的描述。
evaluation_only (bool) – 流程输出是否仅用于评估。
is_chat_output (bool) – 流程输出是否为聊天输出。
- description: str = ''#
- static deserialize(data: dict)#
从字典中反序列化流程输出定义。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构建的流程输出定义。
- Return type:
- evaluation_only: bool = False#
- is_chat_output: bool = False#
- reference: InputAssignment#
- serialize()#
将流程输出定义序列化为字典。
- Returns:
流程输出定义的字典。
- Return type:
字典
- class promptflow.contracts.flow.FlowParamDefinitionBase(type: ValueType, default: Optional[str] = None, description: Optional[str] = None)#
基础类:
object用于定义流参数(输入和初始化关键字参数)的基类。
- default: str = None#
- description: str = None#
- serialize()#
将流程参数定义序列化为字典。
- Returns:
流程参数定义的字典。
- Return type:
字典
- class promptflow.contracts.flow.InputAssignment(value: Any, value_type: InputValueType = InputValueType.LITERAL, section: str = '', property: str = '')#
基础类:
object这个类表示输入值的分配。
- Parameters:
value (Any) – 输入分配的值。
value_type (InputValueType) – 输入分配的类型。
section (str) – 输入分配的部分,通常是输出。
property (str) – 输入分配中存在于该部分的属性。
- static deserialize(value: str) InputAssignment#
将输入的赋值从字符串反序列化。
- Parameters:
value (str) – 要反序列化的字符串。
- Returns:
从字符串构建的输入赋值。
- Return type:
- static deserialize_node_reference(data: str) InputAssignment#
反序列化输入分配的节点引用部分。
- Parameters:
data (str) – 要反序列化的字符串。
- Returns:
输入节点引用类型的赋值。
- Return type:
- static deserialize_reference(value: str) InputAssignment#
反序列化输入分配中的引用部分(包括节点/流程引用)。
- Parameters:
value (str) – 要反序列化的字符串。
- Returns:
引用类型的输入赋值。
- Return type:
- property: str = ''#
- section: str = ''#
- serialize()#
将输入的任务序列化为字符串。
- value: Any#
- value_type: InputValueType = 'Literal'#
- class promptflow.contracts.flow.InputValueType(value)#
基础:
Enum输入值类型的枚举。
- FLOW_INPUT = 'FlowInput'#
- LITERAL = 'Literal'#
- NODE_REFERENCE = 'NodeReference'#
- class promptflow.contracts.flow.Node(name: str, tool: str, inputs: Dict[str, InputAssignment], comment: str = '', api: Optional[str] = None, provider: Optional[str] = None, module: Optional[str] = None, connection: Optional[str] = None, aggregation: bool = False, enable_cache: bool = False, use_variants: bool = False, source: Optional[ToolSource] = None, type: Optional[ToolType] = None, activate: Optional[ActivateCondition] = None)#
基础类:
object这个类表示流程中的一个节点。
- Parameters:
name (str) – 节点的名称。
工具 (str) – 节点的工具。
inputs (Dict[str, InputAssignment]) – 节点的输入。
comment (str) – 节点的注释。
api (str) – 节点的api。
provider (str) – 节点的提供者。
module (str) – 节点的模块。
connection (str) – 节点的连接。
aggregation (bool) – 节点是否为聚合节点。
enable_cache (bool) – 节点是否启用缓存。
use_variants (bool) – 节点是否使用变体。
source (ToolSource) – 节点的来源。
type (ToolType) – 节点的工具类型。
activate (ActivateCondition) – 节点的激活条件。
- activate: Optional[ActivateCondition] = None#
- aggregation: bool = False#
- api: str = None#
- comment: str = ''#
- connection: str = None#
- static deserialize(data: dict) 节点#
从字典中反序列化节点。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构造的节点。
- Return type:
- enable_cache: bool = False#
- inputs: Dict[str, InputAssignment]#
- module: str = None#
- name: str#
- provider: str = None#
- serialize()#
将节点序列化为字典。
- Returns:
节点的字典。
- Return type:
字典
- source: Optional[ToolSource] = None#
- tool: str#
- use_variants: bool = False#
- class promptflow.contracts.flow.NodeVariant(node: 节点, description: str = '')#
基础类:
object这个类表示一个节点变体。
- Parameters:
node (Node) – 节点变体的节点。
description (str) – 节点变体的描述。
- description: str = ''#
- static deserialize(data: dict) NodeVariant#
从字典中反序列化节点变体。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构造的节点变体。
- Return type:
- class promptflow.contracts.flow.NodeVariants(default_variant_id: str, variants: Dict[str, NodeVariant])#
基础类:
object这个类表示一个节点的变体。
- Parameters:
default_variant_id (str) – 节点的默认变体ID。
variants (Dict[str, NodeVariant]) – 节点的变体。
- default_variant_id: str#
- static deserialize(data: dict) 节点变体#
从字典中反序列化节点变体。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构建的节点变体。
- Return type:
- variants: Dict[str, NodeVariant]#
- class promptflow.contracts.flow.PromptyFlow(id: str, name: str, inputs: Dict[str, FlowInputDefinition], outputs: Dict[str, FlowOutputDefinition], program_language: str = 'python', environment_variables: Optional[Dict[str, object]] = None, message_format: str = 'basic')#
基础类:
FlowBase这个类代表一个提示流。
- Parameters:
id (str) – 流程的id。
name (str) – 流程的名称。
inputs (Dict[str, FlowInputDefinition]) – 流程的输入。
outputs (Dict[str, FlowOutputDefinition]) – 流程的输出。
program_language (str) – 流程的编程语言。
environment_variables (Dict[str, object]) – 流程的默认环境变量。
message_format (str) – 用于表示不同多媒体合同的流的消息格式类型。
- classmethod deserialize(data: dict) PromptyFlow#
从字典中反序列化prompty流。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构建的流程。
- Return type:
- environment_variables: Dict[str, object] = None#
- get_connection_names(environment_variables_overrides: Optional[Dict[str, str]] = None)#
返回连接名称。
- message_format: str = 'basic'#
- program_language: str = 'python'#
- class promptflow.contracts.flow.ToolSource(type: ToolSourceType = ToolSourceType.Code, tool: Optional[str] = None, path: Optional[str] = None)#
基础类:
object这个类表示工具的来源。
- Parameters:
type (ToolSourceType) – 工具源的类型。
tool (str) – 工具源的工具。
path (str) – 工具源的路径。
- static deserialize(data: dict) ToolSource#
从字典中反序列化工具源。
- Parameters:
data (dict) – 要反序列化的字典。
- Returns:
从字典构建的工具源。
- Return type:
- path: Optional[str] = None#
- tool: Optional[str] = None#
- type: ToolSourceType = 'code'#