查找函数
列表包含组织自己的函数和内置预设。列表头部的三个视图用于缩小范围,每个视图带有数量:
搜索同时匹配函数名称和预设的说明。点击组织自己的函数,即可在工作台中打开。
语言
VRL 与 JavaScript 都运行在 MoleSignal 二进制内部,不需要配置项,也不需要额外安装。
保存函数时,MoleSignal 会验证并编译源代码。无效代码不会成为当前生效版本。
函数工作台提供 VRL 与 JavaScript。LLM 函数属于高级 API 工作流:函数源码是系统指令,事件是模型输入,
params_schema.output_field 决定输出字段(默认 _llm_eval)。每个命中的事件都会触发一次模型调用,因此配置项 [functions].llm_eval_enabled 默认保持为 false,参见配置。
内置预设
每个组织都能看到以下只读的 VRL 函数:
预设所在的行带有 内置 标记和说明,说明按当前登录用户的界面语言显示。点击该行可以阅读源码。
预设不能编辑。需要修改时,在该行或预设面板中选择 以此为起点。工作台会打开一个新函数,带上预设的语言和源码,名称为
<预设名>-copy。保存后得到组织自己的函数,预设本身不变。
编写与测试函数
工作台分为三部分:- 函数的名称和语言;
- 源代码,即编辑器,标题旁显示源码的校验状态;
- 测试运行,包含 JSON 格式的 样例输入 和 样例输出。
⌘ Enter 或 Ctrl+Enter 运行样例,按 ⌘S 或 Ctrl+S 保存。
运行器调用 POST /api/v1/functions/run,传入语言、源码和样例事件,并返回转换后的事件:
JavaScript 函数
源码对每个事件运行一次。全局对象molesignal 提供事件和辅助方法:
- 运行时间超过 50 毫秒会停止,并报
js timeout 50ms。 - 单个函数的堆内存上限为 32 MiB。
- 不提供网络访问、定时器和
TextEncoder。
使用函数
在流水线中将函数添加为转换节点。流水线保存有序步骤,并依次将事件传给每个函数。 删除或修改函数可能影响所有引用该函数的流水线。进行不兼容变更前,请先检查使用情况。权限
functions.read用于列出和打开函数。functions.create和functions.edit用于管理函数定义。functions.run用于执行样例运行器。functions.delete用于删除函数定义。
流水线
构建数据源 → 转换 → 目标端工作流。
扩展表
维护用于数据扩展的查询表。