SuperAPI AI 工具集

speckle-impl-automate-functions

部署与运维

查看项目

更新于 10-15 22:18

技能介绍

用途:指导端到端构建、测试、部署与发布 Speckle Automate 函数,避免 CI/CD 管线损坏与输入模式错误。

概念与触发:Function 是可复用代码模板,由开发者创建,全局列于 Function Library;Automation 是绑定到模型的项目级实例,由项目管理员配置,在版本创建时触发。流程为:用户发布新版本→服务器检测事件→查找绑定该模型的 Automation→为每个 Automation 启动 Docker 容器→执行函数访问新版本数据→结果(通过/失败、标注、文件)附加到版本并在网页与 3D 查看器展示。

主要能力:Python 使用 specklepy(3.1.0+,含 automate),Python 3.10+,输入类 AutomateBase(Pydantic);C# 使用 Speckle.Automate.Sdk(NuGet,3.4.0-alpha.20),.NET 8.0,输入为带 DataAnnotations 的 readonly struct。AutomationContext 提供 receive_version()/ReceiveVersion() 取根对象、attach_error_to_objects()/AttachErrorToObjects() 标注对象、mark_run_success()/MarkRunSuccess()、mark_run_failed()/MarkRunFailed()、store_file_result()/StoreFileResult() 附加文件、set_context_view()/SetContextView() 配置查看器 URL。

使用方式:Python 入口用 execute_automate_function(automate_function, FunctionInputs),函数不加括号、输入传类;C# 用 DI 容器加 AddAutomateSdk(),通过 IAutomationRunner.Main<FunctionInputs> 调用。输入保持扁平简单,深层嵌套或联合类型可能无法正确渲染。本地测试:Python 用 pip install -e ".[dev]"、pytest tests/、uv run python main.py;C# 用 dotnet build、dotnet test TestAutomateFunction/。发布须创建 GitHub Release,工作流自动构建镜像、推送并注册,函数才出现在库中。

限制与警告:退出前必须调用 mark_run_success 或 mark_run_failed;attach_error_to_objects 不得传空列表;敏感输入必须用 SecretStr 或 [Secret];不得修改或删除自动生成的 .github/workflows/main.yml 中 SPECKLE_FUNCTION_ID、SPECKLE_FUNCTION_TOKEN 环境变量;仅推送代码不会发布。Automate 需 Speckle Enterprise 计划与 GitHub OAuth 授权。其余细节暂未提供。