如何使用iii通过Workers、Functions和Cron Triggers构建文档智能后端
本教程展示了如何使用iii引擎构建文档智能工作流,包括安装引擎、注册模块化函数、组合分析管道,并通过直接调用、HTTP端点、即发即弃执行和定时cron触发器复用相同逻辑。
在本教程中,我们使用iii构建了一个文档智能工作流。首先,我们安装iii引擎和Python SDK,然后以后台进程启动引擎并连接一个Python worker。设置完成后,我们分别注册了用于文本归一化、分词、情感分析、关键词提取、报告生成和心跳跟踪的函数。接着,我们将这些函数组合成一个统一的分析管道,并通过直接调用、HTTP端点、即发即弃执行以及定时cron触发器来运行相同的逻辑。在此过程中,我们还跟踪了基本的运行时状态,使工作流更贴近真实的后端系统,而非静态的笔记本演示。
我们首先导入所需的Python模块,并设置本地二进制路径用于III引擎。我们定义了一个小的辅助函数来执行shell命令,并在III引擎尚未安装时进行安装。我们还安装了Python SDK和requests包,然后通过检查版本号验证了iii的安装。
接下来,我们启动了III引擎,并创建了一个Python worker来连接它。我们等待引擎的WebSocket和HTTP端口就绪,并确认连接成功。
我们定义了文本分析工作流中使用的核心函数,包括归一化、分词、情感检测和关键词提取。然后我们创建了一个分析函数,将其每个步骤都通过III引擎进行路由,而不是直接调用。此外,我们还添加了报告生成、HTTP处理和心跳函数,然后使用worker注册了所有这些函数。
我们注册了一个HTTP触发器,使得分析管道可以通过POST请求调用。我们还尝试注册了一个cron触发器,用于按固定计划运行心跳函数,并在引擎构建不支持该模式时安全地跳过。然后我们连接了worker并稍作暂停,以便注册的函数和触发器准备就绪。
为了测试完整的III工作流,我们向注册的分析管道发送了示例文本文档。我们通过直接调用分析了三个文档,并输出了关键词和情感结果。接着,我们通过HTTP调用相同的逻辑,测试了即发即弃执行,并检查了cron心跳是否正在运行。最后,我们打印了聚合状态报告并显示了引擎日志尾部,以便获得基本运行时可见性。
总之,我们拥有一个可工作的III系统,它使用模块化、注册的函数而非单一固定脚本来处理文本。我们分析了示例文档,通过HTTP暴露了管道,测试了异步执行风格,跟踪了心跳活动,并打印了聚合状态报告。本教程保持了示例的可读性,同时展示了iii的主要工作模式:一次定义函数,使用worker注册,然后通过不同的触发器和执行路径重用它们。它还展示了随着工作流成长为更接近生产环境时,小函数如何被清晰地连接起来。