小脚本区块进阶用法

快速创建接口

你可以在连线时把线头移动到某个接口的上方或下方,从而快速创建一个新接口。新建接口会自动继承被连接接口的名称和类型,因此不需要再单独配置。

这个方法对于输入和输出接口都有效,不过仅有小脚本区块可以这么做。

接口类型自动更新

在小脚本代码中,你可以看见

#region generated meta
...
#endregion

这样的注释,它们用于自动生成输入输出接口对应的类型代码。如果删除,代码中的类型就可能与区块配置不一致。

每次你在节点上修改接口名称或类型时,这段注释中的生成代码都会被更新,所以不要在这里写自己的业务代码。

如果要导入依赖请确保在这两个注释范围之外写导入语句。

信息

你也可以选择删除这些注释然后手动编写类型代码。删除注释后接口类型不会自动更新,你需要确保代码和节点上的接口配置保持一致。

AI 辅助编辑

在编辑代码的时候,你可以尝试让 AI 来帮你实现功能,在小脚本代码框的菜单栏上,点击添加聊天到上下文按钮,会打开右侧 AI 聊天框。

我们在这里新增了一个输入接口。

然后在 AI 聊天框下方选择 edit 模式,让 AI 有权限替你修改文件。

接下来就可以描述你的目的,然后等待代码自动生成:

预览

你可以在代码中调用 nodejs 预览 APIpython 预览 API 来观察多种类型的数据。

在代码中使用 context.preview() 方法可以在区块运行后将各种类型的数据渲染在区块下方。

请确保 context.preview() 是在导出的入口函数内部调用的。

信息

Context API 还提供了报告进度、读取内置模型配置、获取本地硬件信息等能力。

详细 API 文档参考Node.js Context APIPython Context API

调用 Fusion SDK

很多小脚本区块本质上就是把一个 Fusion 托管能力封装成可复用 block。

这种情况下建议这样分工:

  • block 的编排、输出、预览和进度仍然走 context
  • 真正的 Fusion 调用走 oomol-fusion-sdk
  • token 和 base URL 从运行时 context 读取,不要自己写死

TypeScript 推荐使用:

  • token: await context.getOomolToken()
  • baseUrl: context.fusionApiUrl

Python 推荐使用:

  • token=await context.oomol_token()
  • base_url=context.fusion_api_url

具体 SDK 用法可继续参考 Fusion SDK 概览Fusion SDK TypeScript 文档Fusion SDK Python 文档

TypeScript 模块的快捷导入

在 TypeScript 代码中,你可以把 ~ 当作项目根目录的别名来导入其他模块。例如:

例如,~/Hello 就会解析到项目根目录下的 Hello.ts 模块。