SuperAPI AI 工具集

call-cognite-function

编程与开发

查看项目

更新于 10-15 20:13

技能介绍

用途:调用任意已部署的 Cognite CDF Function,轮询至完成后返回带类型、经 schema 校验的结果。

主要能力:CDF Functions API 采用三步协议——先用当前用户 token 换取短期 nonce,再向函数的 /call 端点 POST 输入数据与 nonce,然后循环 GET 调用状态,状态为 Completed 后 GET /response 端点。每个 API 响应都用 Zod 校验,schema 漂移会在调用处抛出清晰的 ZodError;函数自身输出也可用调用方提供的 schema 校验,并据此推断返回类型。

文件:code/cogniteFunctionService.ts 为框架无关的异步函数,含 Zod 校验、无 React 依赖,复制到 src/services/;code/useCogniteFunction.ts 为包装该服务的 React Query useMutation hook,复制到 src/hooks/。依赖 @cognite/sdk 与 zod;hook 还需 @tanstack/react-query 及树中的 QueryClientProvider。

用法:callCogniteFunction<TOutput>(client, functionId, data, opts?) 返回 Promise<TOutput>。functionId 为数字型 CDF 函数 ID(或其字符串形式),不是 external ID,需先解析。data 为任意可 JSON 序列化对象。opts.outputSchema 为推荐的结果类型方式,省略则返回 unknown。opts.maxPollAttempts 默认 120(约 6 分钟,3 秒间隔),长任务可增大;opts.pollIntervalMs 默认 3000,带 ±20% 抖动;opts.signal 用于非 React 场景取消。建议定义 Zod schema 而非手写 interface。错误不封装自定义类:SDK HTTP 错误、ZodError、状态 Failed/Timeout 或轮询耗尽时的普通 Error(含函数 ID 与调用 ID)原样抛出。React 中 hook 返回 call、isLoading、error、result、reset,采用 mutation 语义(函数调用非幂等,每次新执行并计入 100 并发上限)。纯读函数可跳过 hook,直接用 useQuery 包装服务以缓存去重。若只有 external ID,可先 GET /api/v1/projects/{project}/functions 解析。未知状态视为仍在运行并继续轮询,仅 Failed/Timeout 报错、Completed 返回结果。

限制:资料未提供收费、价格、平台支持范围等信息。