Skip to main content

Quick building AI workflow.

Project description

FLOA

一个Python框架 , 用于快速搭建AI工作流 / A Python framework for quick building AI workflow.


项目结构

├── floa/               
│   ├── llm2dict.py     # 核心实现
│   ├── api.py          # 大模型API
│   ├── execute.py      # 执行生成的代码
│   ├── prompt.py       # 生成代码的提示词模版
│   └── validate.py     # 数据结构验证

Output

Output 类用于表示一个输出对象。它包含以下属性和方法:

属性

  • parent: 父节点,表示该输出的来源节点。

  • active: 表示该输出(本对象)是否处于激活状态。

  • done: 表示该输出(本对象)是否已完成。

  • value: 输出的值,Output核心,整个对象就是为了管理这个值,这个值可以是任何类型的数据。

  • child: 子节点列表,表示所有引用了这个输出值(Output.value)的下游节点。

方法

  • __init__(self, parent=None, value=None, active=True, done=False): 初始化输出对象。

  • __call__(self): 返回输出值(Output.value)。

  • __str__(self): 返回输出值(Output.value)的字符串表示。

  • __repr__(self): 返回输出值(Output.value)的字符串表示。

  • complete(self, value): 标记输出对象完成并设置值。

  • activate(self): 激活输出对象(可用)。

  • activate_and_complete(self, value, parent): 激活输出对象可用并设置完成,同时设置父节点。

  • deactivate(self): 把输出对象标记为不可用。

  • is_deactivated(self): 输出对象是否为不可用。

  • val: 属性,返回输出值(Output.done)。


Output_manager

Output_manager 类用于管理输出(Output)对象。所有的 Output 对象都应该由 Output_mansager 创建。 它包含以下属性和方法:

属性

output_list: 用于存储Output对象列表。

init(self): 初始化输出管理器。

  • create_output_required(self, parent, value=None, active=True, done=False) -> Output: 创建一个必定有输出值的Output对象。节点计算完成后必定会对这个对象进行赋值(Output.value),

  • create_output_optional(self, parent=None, value=None, active=False, done=False) -> Output: 创建一个未激活的Output对象。节点执行完毕后决定不要不要激活这个Output,一般作为控制节点分支使用

  • create_output_complete(self, value, parent=None, active=True, done=True) -> Output: 创建一个已完成的Output对象。一般作为常量使用

  • run_all_outputs(self): 执行所有记录在output_list的Output上游节点。执行所有节点


Basic_node

Basic_node 类是一个抽象基类,通过继承Basic_node实现具体的节点功能。它包含以下属性和方法:

属性

  • om: Output_manager的实例,用来新建和管理Output对象。

  • done: 表示节点是否已完成计算。

  • active: 表示节点是否处于激活状态。

  • list_output: 节点输出对象列表。

  • list_input_verify: 必填输入对象列表,执行节点前会确保该输入值已完成。

  • list_input_optional: 可选输入对象列表,执行节点时会尝试执行可选输入。

  • dict_output: 输出字典。值与list_output一致,多了输出对象的键值名称

  • dict_input: 输入字典。值与list_input_verify和list_input_optional一致,多了输入对象的键值名称

  • retry_count: 记录重试次数。

  • max_retries: 最大重试次数。

方法

  • __init__(self, om: Output_manager, *args, **kwargs): 初始化节点对象。

  • __call__(self): 执行节点。

  • verify(self, *args: list[Output]): 验证输入数据,如果上游节点没有执行会向上执行,直至所需的输入对象全部完成。

  • create_input_verify(self, value: Output): 创建一个输入对象,执行节点前会验证这个输入对象是已完成的,若该输入对象未完成,会执行该对象的上游节点。

  • create_input_optional(self, value: Output): 创建一个输入对象,节点执行时候,这个输入对象是可选的,即使这个输入对象未完成,也不会执行这个输入对象的上游节点。

  • create_output_required(self): 创建一个输出对象,节点执行完成后一定会对这个对象进行赋值并标记完成。

  • create_output_optional(self): 创建一个默认状态为未激活状态的输出对象,节点执行完成后根据具体情况来决定是否激活完成这个输出对象,通常用于节点分支,或可选输出。

  • run_chain(self): 链式执行,执行自身节点后会向下执行所有引用本节点输出(包含间接引用)的节点。

  • run(self): 执行本节点。

  • core(self): 抽象方法,继承本对象后,要编写具体实现的节点功能。

  • input(self): 抽象方法,继承本对象后,要编写具体的输入节点有哪些。

  • output(self): 抽象方法,继承本对象后,要编写具体的输出节点有哪些。

  • set_deactivate(self): 设置节点为失效状态。

  • set_complete(self): 设置节点为完成状态。

  • set_max_retries(self, max_retries: int): 设置执行节点(core)失败重试次数。

  • print(self, *args): 打印节点信息。


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

floa-0.0.1.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

floa-0.0.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file floa-0.0.1.tar.gz.

File metadata

  • Download URL: floa-0.0.1.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for floa-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3b2837468c16c093d0b09752a37478b1c32d3aabf8a3ccfda402c1d2f2793ef1
MD5 6f02b3418e67169907e9b759ec18e8e7
BLAKE2b-256 fb0d6b34dfaf4180515cc1bafbf0741a0d7d17500a2ef5b89143c652e99234db

See more details on using hashes here.

File details

Details for the file floa-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: floa-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for floa-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06fc110279966a136e370853babb7d98fbb31b20f34b12c864ce00d88dcb8a40
MD5 bd72c07b236dc9bfb6e04620deebbb79
BLAKE2b-256 7bcf64ce56bb63791c8db12ef36fbc19ab3f98f2fe69acca3d160fd729fa8182

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page