@deepnote/cloud

中文文档
0.4.0发布于 2026/11/10Apache-2.0TypeScriptESM + CJS近 30 天下载 3385

深音云客户端运行 API

中文使用文档
文档目录4 节
  1. 安装
  2. 使用量
  3. API 参考
  4. 许可证

@deepnote/云

深 Note Cloud API的客户端(审查):创建笔记本,触发运行,进行投票完成, 获取其执行快照,并作为 Streamlit apps 发布已有的项目文件 .

用于 deepnote run --cloud (单位:千美元)@deepnote/cli和通过 @deepnote/local-runner。 。 。 .

一个 应用 hTML、CSS和由Deepnote主持并在浏览器中运行的JavaScript。 A 类 简化应用程序 是一个运行在项目硬件上的 Python UI .

客户端接受ID和平面对象. 将笔记本内容映射到 ProjectSpec 当创建工程时.

安装

npm install @deepnote/cloud

使用量

import {
  triggerNotebookRun,
  pollRunUntilComplete,
  waitForRunSnapshot,
} from "@deepnote/cloud";

const started = await triggerNotebookRun(baseUrl, token, {
  notebookId,
  inputs,
  detachedRunStorageMode: "readonly",
});
const run = await pollRunUntilComplete(baseUrl, token, started.runId, {
  snapshotDelivery: "inline",
});
const { content: snapshotYaml } = await waitForRunSnapshot(baseUrl, token, run);

认证是 Authorization: Bearer <token>。终点: POST {baseUrl}/v2/runs 财务报告和审定财务报表 GET {baseUrl}/v2/runs/{runId}. 反应计划是允许的(.passthrough()因为API 正在预览中,其确切形状可能会漂移。 失败投出 ApiError (从) @deepnote/database-integrations) (中文(简体) ).

全注本运行默认脱去,不更新活版编辑器中的输出. detachedRunStorageMode: "readonly" 防止写作持续的项目存储; 它不隔离数据库,集成,外部API,或笔记本访问的其他系统. Block-scoped 运行使用活模式, 因为 API 不支持 blockIds 离散的运行 因此无法使用 detachedRunStorageMode。 。 。 .

API 参考

导出说明
createProject(baseUrl, token, spec, opts?)创建项目、 笔记本和块; 返回指定的 IDs Deepnote 。 见下文.
triggerNotebookRun(baseUrl, token, body)POST /v2/runs 开始运行一个已有的笔记本。 返回常态运行 .
getRun(baseUrl, token, runId, options?)GET /v2/runs/{runId} - 获取运行当前状态.
pollRunUntilComplete(baseUrl, token, runId, opts?)直到运行达到终端状态。 重复短暂的失败; 执行最后期限 .
fetchSnapshotContent(run, options)返回运行的快照 YAML, 从内置内容或一个 downloadUrl。 。 。 . null 如果它没有.
waitForRunSnapshot(baseUrl, token, run, opts?)还原 a SettledRunSnapshot 在边界定居后 内容 content 实值 null ; 无法读取的快照.
describeRunError(run)如果 API 提供一条, 运行失败的可读信息 .
isTerminalStatus 编号 : isSuccessStatus 编号 : isFailedStatus状态分类员. 未知状态被作为非地铁处理,因此漂移的API不能被挂起.
RUN_STATUSES, (中文(简体) ), RunStatus已知运行状态 .
RunTimeoutError掷出时 pollRunUntilComplete 超过期限。 载着 runId 跑步可能还在进行中.
NormalizedRun, (中文(简体) ), TriggerRunBody, (中文(简体) ), GetRunOptions, (中文(简体) ), PollOptions, (中文(简体) ), FetchSnapshotOptions, (中文(简体) ), SettledRunSnapshot, (中文(简体) ), WaitForRunSnapshotOptions类型.
listAllProjects(baseUrl, token, opts?)GET /v2/projects ——工作空间的每一个项目,行走活泼到耗尽.
getProjectDetail(baseUrl, token, projectId, opts?)GET /v2/projects/{id} - 一个项目,包括其工作目录和数据应用程序设置(dataApp, (中文(简体) ), null 其他项目类型).
createDataAppProject(baseUrl, token, { name, folderId? }, opts?)POST /v2/projects 与 projectType: 'data_app' ——创建空的未公布的数据应用项目;返回 { id, name }。 。 。 .
setDataAppPublished(baseUrl, token, projectId, published, opts?)PATCH /v2/projects/{id} 与 { dataApp: { published } } ——发布或撤销数据应用项目;返回 { published, url }。 。 。 .
exportProject(baseUrl, token, projectId, opts?)GET /v2/projects/{id}/export ——项目笔记本为定型 .deepnote 文档(未从导出 ZIP 中解开,每个笔记本一个)。 见下文.
importProject(baseUrl, token, projectId, files, opts?)POST /v2/projects/{id}/import - 核对ZIP .deepnote 文档(准确反向输出)进入项目。 见下文.
uploadProjectFile(baseUrl, token, projectId, path, bytes, opts?)POST /v2/files ——上传1个工作-指导文件(多部分). 不覆盖;先删除。 缓期调剂限于100米B.
deleteProjectFile(baseUrl, token, projectId, path, opts?)DELETE /v2/files 删除一个工作指导文件; false 如果它不存在的话.
downloadProjectFile(baseUrl, token, projectId, path, opts?)GET /v2/files/download ——一个工作-指导文件的生字节. 缓期调剂限于100米B.
createStreamlitApp(baseUrl, token, body, opts?)POST /v2/streamlit-apps ——作为主机Streamlit应用程序服务于现有项目相关文件. 返回 StreamlitApp 记录; url 这是它的地址.
listStreamlitApps(baseUrl, token, projectId, opts?)GET /v2/streamlit-apps?projectId= ——项目"流体"应用软件(未涂装).
getStreamlitAppStatus(baseUrl, token, appId, opts?)GET /v2/streamlit-apps/{id}/status —— 说 running, (中文(简体) ), starting,或 unavailable。 。 。 .
waitForStreamlitApp(baseUrl, token, appId, opts?)投票直到 running· ; unavailable 不是终端。 重复短暂的失败; 抛出 StreamlitAppTimeoutError 之后 timeoutMs (默认10分).
StreamlitAppTimeoutError掷出时 waitForStreamlitApp 超过期限。 卡莉丝 streamlitAppId 财务报告和审定财务报表 lastStatus;应用程序可能仍在启动.
StreamlitApp, (中文(简体) ), StreamlitAppStatus, (中文(简体) ), CreateStreamlitAppBody, (中文(简体) ), StreamlitAppRequestOptions, (中文(简体) ), WaitForStreamlitAppOptions类型.

说明 exportProject数字 : 导出是一个 ZIP 和一个 .deepnote 每个笔记本的文档 携带完整的项目信封和共享 metadata.modifiedAt。 。 。 . exportProject 解开它 返回文档({ filename, content }[],按文件名排序). 这个 文档 为: 字节决定一个不变的项目——ZIP容器不是——所以计算变化 指纹在文档上,而不是档案.

说明 importProject数字 : 发送一个 ZIP 和一个 .deepnote 文档 导出形状。 通过导出 metadata.modifiedAt 作为 baseModifiedAt 检测结构 更改(创建/删除/改名、其他进口)和内容散列为 baseContentHash 也可以检测编辑器块编辑,它从不推进时间戳;在不匹配服务器时 以409(丢失的更新保护)拒绝进口,以及 force 跳过两个检查。 进口 用笔记本 id 进行校正( 创建了不匹配的笔记本, 缺失的笔记本只删除与 deleteMissingNotebooks;空的 ZIP 导入不包含笔记本, 或者删除下面的每个笔记本 旗帜)。 每份文件都必须属于目标项目,并商定项目名称和整合 附录。 使用共享名称和一份礼物 project.integrations 列表对齐 工程附件( x)[] 解开全部;缺出一个字段后,它们保持不变)。 一体化 全权证书及全权证书 settings.requirements 从未进口.

终端状态可以在其快照附后前到达. 偏爱 waitForRunSnapshot 之后 投票:它简短地重复附件,返回 content: null 当没有生产出任何文物的时候, 并保留下载/读取失败为错误,而不是将其误认为是空运行.

关于快照下载的说明 : 只在下载 URL 时发送无记名符号 同一来源 baseUrl。在没有认证的情况下获取一个跨源的URL(例如,预先签名的S3链接), 所以信使永远不会泄露给第三方主机.

云运行和内容创建请求,即使呼叫者提供 取消信号。 最后期限包括消耗反应机构,以及暂停/调用者破坏 错误仍可与 ApiError 回应.

说明 createProject数字 : 这是无头对应器 uploadNotebook,使用 未认证 /v1/import 端点,因此必须在浏览器中完成. 带着一个标志, 首选项 createProject ——它还原出新的id,以便你立即运行笔记本.

两个API细节通过它泄露. POST /v2/projects 种子新工程,带有空占位符 笔记本,什么 createProject 一旦您的名称存在, 删除( 没有终点可重命名); a 无法删除的占位符通过 onWarning 而不是失败的创造。 还有 没有块块的终点,所以块块每个需要一个相继请求——使用 onProgress 报告 在一个大笔记本上。 中途失败的创建会留下部分内容:没有交易.

许可证

阿帕奇 - 2.0

版本与发布记录

@deepnote/cloud 共发布 5 个版本,首次发布于 2026/08/13;过去 12 个月发布了 5 个版本。

版本发布日期距今
0.4.0latest2026/11/101 天前
0.3.02026/11/056 天前
0.2.12026/10/1230 天前
0.2.02026/10/051 个月前
0.1.02026/08/132 个月前

关于 @deepnote/cloud 的常见问题

@deepnote/cloud 是什么?

深音云客户端运行 API

如何安装 @deepnote/cloud?

在项目目录运行 npm install @deepnote/cloud,或使用 pnpm add / yarn add / bun add。

@deepnote/cloud 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@deepnote/cloud 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@deepnote/cloud 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.14.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@deepnote/cloud 可以商用吗?

@deepnote/cloud 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@deepnote/cloud 的下载量有多少?

根据 npm 官方下载统计,@deepnote/cloud 在 2026/10/12 – 2026/11/10 这 30 天内被下载 3,385 次,日均约 113 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@deepnote/cloud 还在维护吗?

最新版本 0.4.0 发布于 2026/11/10(1 天前);至今共发布 5 个版本,其中过去 12 个月发布了 5 个;首次发布于 2026/08/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。