在可视化知识处理任务中,系统提供了丰富的算子用于数据处理。如果企业需要使用外部 API 处理数据,可以通过自定义算子接入外部 API 至企业知识引擎内部。本文介绍如何添加、配置自定义算子。
前提条件
推荐由企业管理员维护自定义算子。如果企业管理员需要指定其他用户维护自定义算子,则需要先为该用户授予可视化建模、数据集的高级配置编辑与查看权限。授权具体操作说明请参见按内容管理。

新建自定义算子
系统默认内置了一个自定义算子(名称 REST API 2.0调用),您也可以根据需要添加新的自定义算子,以适配不同的业务。
- 登录营销 Agent 控制台。
- 在左侧导航栏选择企业知识引擎。
- 在企业知识引擎左侧导航栏,选择项目中心 > 知识处理配置。
- 在知识处理配置左侧导航栏,选择高级设置 > 自定义算子管理。
- 在页面右上角,单击新建算子,并完成以下配置。

- 算子来源:必填,选择复制已有算子。
- 选择要复制的算子:必填,选择 REST API 2.0调用。
- 新算子的名称:必填,自定义名称,标识该算子。
- 描述:选填,当前算子的描述,如用途、限制等信息。
- 算子类型:必填,选择自定义调用。
- 单击确定,在自定义算子列表中可查看已新增的算子。
在操作列支持编辑、删除自定义算子。
编辑算子的默认设置
您可以为自定义算子预设默认配置,后续在构建数据处理任务中即可直接应用算子。
登录营销 Agent 控制台。
在左侧导航栏选择企业知识引擎。
在企业知识引擎左侧导航栏,选择项目中心 > 知识处理配置。
在知识处理配置左侧导航栏,选择高级设置 > 算子默认设置。
将鼠标悬浮在需要编辑默认设置的算子卡片上,并单击设置。

完成以下配置,并单击保存。
模块 | 配置项 | 说明 |
|---|
基本信息 | URL地址 | API 请求地址,支持通过 cURL 导入导出。 |
请求方式 | 设置接口的请求方式,GET 或 POST。 |
OAuth2认证 | 支持 OAuth2 认证,开启后,您需要完成 OAuth2 授权。 注意 当 API 请求需要访问采用 OAuth2 授权码模式的第三方服务接口时启用此功能。 - 开启后,在 Oauth2授权状态区域,单击点击授权。
- 配置基本信息(AK、SK和授权跳转地址),具体获取方式见相关三方网站文档,配置完成后单击下一步。
- 如果用户是第一次利用该 AK 和授权跳转地址组合配置授权信息,需要进一步获取 AccessToken 配置和 RefreshToken 配置。配置 API 地址、请求方式、请求参数等相关信息,点击确认后浏览器自动发起请求授权链接,跳转三方授权页面。
- 用户完成授权后,自动跳转到统一授权回调地址。系统会根据先前用户的授权配置,后台同步发起获取 Access Token 和获取 Refresh Token 请求,校验通过后配置生效,回到数据连接页即可见完成授权。
注意 - 三方网站授权通常针对单个 AK 维度,多个数据链接若使用同一 AK,需共享同一个授权。
- 系统会根据授权链接 host 和 AK 自动匹配有效授权;若无,则需首次配置。
- 系统无法校验三方出参(无统一格式),请仔细检查参数,避免因参数错误导致接口返回失败。若授权地址和 AK 相同,系统将自动匹配上次配置,错配数据只能订正后重新配置。
- 获取 Access Token 回调请求中 code 对应的参数 key 固定为 “code”,无法修改。
|
参数设置 | 设置 API 对应的请求头、请求参数、请求体。 说明 - value 支持静态参数值与动态参数值。
- 静态参数值填写具体值即可,如
male。 - 若是动态参数,按照
${params|example:value}的格式填写,其中:
params指的是上个节点的输出字段名称,该字段下的值将作为 API 参数的入参值。在算子执行时使用,必填项。example:value是样例值,用于发送请求获取接口的返回格式,必填项。- 示例:假设 API 的入参是 object_id,要将上游输出的字段 unit_id 的值作为 object_id 的入参值,则在填写 API 配置时,Key 是 object_id,value 的填写格式为${unit_id
- 系统提供了内置变量和内置函数,具体可参考系统内置变量、系统内置函数。
- 请求头:支持配置 key、value,支持添加、删除操作,最多可配置 10 组。
- 请求参数:输入 API 所需的所有查询参数。
- 请求体:选择请求体类型(form-data 或 raw),均支持用户输入 JSON 格式的请求体。
总则:对JSON进行操作,$表示根节点,.号表示取子节点。
如果JSON数据为:
{
"showapi_res_error": "",
"showapi_res_id": "6597a2f5fb638cf45b4d460c",
"showapi_res_code": 0,
"showapi_fee_num": 1,
"showapi_res_body": {
"list": [
{
"time": "14:26:57",
"zhesuan": "193.69",
"code": "AED",
"hui_out": "195.91",
"chao_in": "192.95",
"chao_out": "199.47",
"name": "阿联酋迪拉姆",
"hui_in": "194.55",
"day": "2024-01-05"
},
{
"time": "14:26:57",
"zhesuan": "477.56",
"code": "AUD",
"hui_out": "481.77",
"chao_in": "478.08",
"chao_out": "483.16",
"name": "澳大利亚元",
"hui_in": "478.57",
"day": "2024-01-05"
}
],
"listSize": 28,
"ret_code": 0
}
}
则一些路径对应的值结果取值如下: $.showapi_fee_num = 1
$.showapi_res_id = "6597a2f5fb638cf45b4d460c"
$.showapi_res_body.list.* = [{"time":"14:26:57","zhesuan":"193.69" ... // 后面省略
设置前置操作。
当您需要在主请求之前执行一些额外的步骤来准备数据或获取必要的信息时,可以通过该配置来完成。最多可设置 5 个前置操作。 - 单击新增前置操作,在配置页面需要输入前置操作的详细信息,包括 URL 地址、请求方式等。
- 单击发送请求后,系统将解析这个前置请求,并将解析结果呈现在请求结果区域,您需要配置动态参数的 key 和结果字段路径,方便后续将前置请求结果应用于当前请求。动态参数编写可参考动态参数编写规则。
设置后置操作。
提供一种更加灵活和强大的自定义参数配置方式,支持 groovy 语法,支持用户编写代码实现多层次的请求解析。后置操作编写规则可参考后置操作编写规则。
|
高级设置 | 并行度 | 该并行度设置的是 Spark 任务单个 Partition 的并行度,实际最终并行度受该任务分配的 Partition 个数影响,实际执行时的并行数和集群可用的资源有关。建议用户根据调用的接口性能(QPS、QPM 等限制),合理计算并行度进行填充。
默认值:1 |
超时时间 | 输入请求在没有响应时等待的最长时间,单位为毫秒(ms)。
默认值:180000 |
重试次数 | 当请求失败,系统尝试重试的次数,最多支持 5 次。
默认值:3 |
请求间隔 | 任务的最终 QPS 取决于输出节点分配的 core 数目和请求间隔,调整请求间隔能够控制任务并发。请求间隔越小,QPS 越大。单位为毫秒(ms)。
默认值:100 注意 请谨慎设置请求间隔,并发过高时有服务风险(当单任务的 QPS>全局 QPS,以全局 QPS 为准)。 |
补全异常处理 | - 终止任务:当发生异常时,立即终止当前任务的执行,并清除中间结果。这是默认选项。
- 忽略异常:当发生异常时,忽略错误(使用 null 填充数据)并继续执行任务的后续步骤。
|
解析请求与路径配置 | 解析结果 | 完成以上配置后,在基本信息 > 参数设置区域单击发送请求,系统将解析请求。
解析顺序为前置操作 > 当前请求 > 后置操作,并将呈现解析结果。 |
字段设置 | 根据解析结果,添加对应的字段 key、解析路径以及字段类型,其中解析路径支持:$表示根节点,.号用于标识节点层级,*表示通配符,例如$.data.items.*。 |
查看自定义算子配置是否生效
当您完成本文介绍的“新建自定义算子”、“编辑算子的默认设置”后,可创建一个测试任务,预览对应算子配置是否符合预期。如何创建任务,请参见第一步 新建任务。
- 查看新建的自定义算子是否可以使用。

- 查看自定义算子的默认配置是否符合预期。
