evofabric.app.sop2workflow#
- evofabric.app.sop2workflow.extract_text_between(text: str, start: str, end: str) str | None#
从给定字符串中提取位于指定起始和结束标记之间的子字符串。
- 参数:
text (str) -- 原始文本。
start (str) -- 起始标记字符串。
end (str) -- 结束标记字符串。
- 返回:
如果成功找到起始和结束标记,则返回两者之间的子字符串;否则返回
None。- 返回类型:
Optional[str]
- evofabric.app.sop2workflow.generate_condition_router_function_call(source: str, possible_targets: list, fallback_target: str = 'end', exit_function_name: str = None)#
生成一个条件路由函数,可以注入到决策节点的系统提示中,用于根据模型输出决定下一步执行的节点。
- 参数:
source (str) -- 当前决策节点的名称。
possible_targets (list[str]) -- 当前节点可能跳转到的目标节点名称列表。
fallback_target (str, optional) -- 当模型返回未知或空选择时,默认跳转到的节点名称。默认为
end。exit_function_name (str | None, optional) -- 可选参数。如果提供,模型可以通过调用该名称的工具函数立即跳转到
end节点(紧急退出)。
- 返回:
一个路由函数,接收状态对象
state作为输入,返回目标节点名称。- 返回类型:
callable
- evofabric.app.sop2workflow.user_feedback_router(state)#
用户反馈路由函数。查找最后一条助手消息,并将流程跳转回该消息对应的节点。
- 参数:
state (object) -- 当前状态对象,需包含
messages属性。- 返回:
目标节点名称,若未找到则返回
end。- 返回类型:
str
- class evofabric.app.sop2workflow.GraphDespNode(BaseModel)#
节点的描述信息,继承自
BaseModel。- 参数:
name (str) -- 节点名称。
tools (List[str]) -- 该节点使用的工具名称列表。
memories (List[str]) -- 该节点使用的记忆名称列表。
instruction (str) -- 该节点的指令内容。
sop (Optional[str], optional) -- 构建该节点时使用的标准操作流程(SOP)片段。
- class evofabric.app.sop2workflow.GraphDespEdge(BaseModel)#
图中边的描述信息,继承自
BaseModel。- 参数:
source (str) -- 边的起始节点名称。
possible_targets (List[str]) -- 边可能指向的目标节点名称列表。
type (Literal["condition"], optional) -- 边的类型,默认为
condition。
- class evofabric.app.sop2workflow.GraphDescription(BaseModel)#
整个图结构的描述信息,继承自
BaseModel。- 参数:
nodes (List[GraphDespNode]) -- 图中所有节点的列表。
edges (List[GraphDespEdge]) -- 图中所有边的列表。
entry_point -- 图的入口节点名称。
global_instruction (str) -- 所有节点共享的全局指令。
- class evofabric.app.sop2workflow.WorkflowGeneratorBase(BaseComponent)#
工作流生成器的基类,继承自
BaseComponent。- 参数:
sop (str) -- 用于生成工作流的标准操作流程(SOP)。
- generate(self) GraphEngine#
使用标准操作流程(SOP)生成一个可运行的图引擎。
- 返回:
生成的图引擎实例。
- 返回类型:
- load_yaml(file_path) Any#
静态方法。加载指定路径的 YAML 文件内容。
- 参数:
file_path (str) -- YAML 文件路径。
- 返回:
加载的 YAML 数据,如果文件不存在则返回
None。- 返回类型:
Any
- dump_yaml(data, file_path) None#
静态方法。将数据写入指定路径的 YAML 文件。
- 参数:
data (Any) -- 要写入的数据。
file_path (str) -- YAML 文件路径。
- 返回:
无返回值。
- 返回类型:
None
- class evofabric.app.sop2workflow.SopBreakdownNodeDesp(BaseModel)#
描述一个分解后的SOP工作流节点。
- 参数:
name (str) -- 节点名称。
type (Literal["sop", "connect"]) -- 节点类型,只能是
sop或connect。其中sop类型的节点严格执行SOP片段;connect类型是用于连接各节点的路由节点。duty (str) -- 该节点的职责说明。
instruction (str) -- 该节点的执行指令。
next_node_routing_rule (Dict[str, str]) -- 该节点的路由规则,键为目标节点名,值为触发条件。
- to_full_instruction(self, global_instruction) str#
根据全局指令和节点自身信息,生成完整的节点执行指令。
- 参数:
global_instruction (str) -- 全局执行策略或说明。
- 返回:
完整的节点执行指令文本。
- 返回类型:
str
- class evofabric.app.sop2workflow.SopBreakdownGraphDesp(BaseModel)#
描述一个分解后的SOP工作流图结构。
- 参数:
nodes (List[SopBreakdownNodeDesp]) -- 节点列表。
global_instruction (str) -- 所有节点共享的全局指令。
entry_point (str) -- 工作流的入口节点名称。
- class evofabric.app.sop2workflow.WorkflowGenerator(WorkflowGeneratorBase, BaseComponent)#
基于SOP(标准操作流程)自动生成工作流图(Graph)的组件,继承自
WorkflowGeneratorBase和BaseComponent。- 参数:
graph_generation_client (ChatClientBase) -- 用于生成图结构的大模型客户端。
graph_node_complete_client (ChatClientBase) -- 用于完善节点信息的大模型客户端。
graph_run_client (ChatClientBase) -- 用于运行生成图的大模型客户端。
retry (int) -- 当大模型响应解析失败时的重试次数,默认为5次。
output_dir (Optional[str]) -- 用于缓存生成的图描述文件的目录。如果为
None,每次都会重新生成;如果提供目录路径,将尝试加载已有文件以跳过生成步骤。tools (List[ToolManagerBase]) -- 工作流中节点可使用的工具管理器列表。
memories (Dict[str, Tuple[str, MemBase]]) -- 工作流中节点可访问的记忆模块字典,键为自定义名称,值为(描述,实例)元组。
state_schema (Optional[List[Tuple[str, Any, str]]]) -- 除默认的
messages字段外,额外添加到状态中的字段定义列表。格式为:[(字段名, 字段类型, 字段描述), ...]。addition_global_instruction (str) -- 添加到每个节点系统提示中的全局指令片段。
user_node (Optional[AsyncNode]) -- 当节点需要与用户交互时使用的保留节点。
fallback_node (Optional[str]) -- 当节点跳转目标无效或缺失时的默认跳转节点。
auto_self_loop (bool) -- 是否默认允许节点跳转到自身。
sop_disassembly_prompt (str) -- 用于将完整SOP拆解为工作流节点的提示模板。
node_completion_prompt (str) -- 用于完善每个节点信息(如工具、记忆、指令等)的提示模板。
tool_list_mode (Literal["all", "select"]) -- 控制节点如何获取工具列表,可选 ``all``(全部)或 ``select``(按LLM选择)。
memory_list_mode (Literal["all", "select"]) -- 控制节点如何获取记忆模块列表,可选 ``all``(全部)或 ``select``(按LLM选择)。
skeleton_file_name (str) -- 用于保存图描述的文件名,默认为
_skeleton.yaml。reserved_nodes (List[str]) -- 禁止由LLM生成的保留节点名称列表,默认为
["start", "end", "user"]。exit_function_name (Optional[str]) -- 当调用该工具时立即跳转到
end节点的函数名称。build_kwargs (Dict[str, Any]) -- 传递给
evofabric.core.graph.GraphBuilder.build()的额外参数。
- generate(self) GraphEngine#
异步生成完整的工作流图引擎对象。
- 返回:
可运行的
GraphEngine实例。- 返回类型: