新闻详情

新闻详情

首页 / 资讯中心 / 详情

RocketRide Python SDK 部署指南:不可变版本、团队即环境、调度与 App 发布阶梯

发布时间:2026/9/25 5:09:21来源:尧图网络
RocketRide Python SDK 部署指南:不可变版本、团队即环境、调度与 App 发布阶梯
【免费下载链接】rocketride-serverHigh-performance AI pipeline engine with a C core and 50 Python-extensible nodes. Build, debug, and scale LLM workflows with 13 model providers, 8 vector databases, and agent orchestration, all from your IDE. Includes VS Code extension, TypeScript/Python SDKs, and Docker deployment.项目地址https://gitcode.com/gh_mirrors/ro/rocketride-server点击查看免费下载RocketRide 的部署体系把环境建模为团队teamclient.deploy.add将一条 pipeline 固化为不可变、sha256 锁定的注册表版本client.deploy.deploy则把一个团队指针指向某个版本——晋升Staging → Production与回滚v3 → v2本质上是同一次指针移动。本文基于 docs/public/python/deploy.md 展开并结合 Python SDK 源码 深入讲解版本管理、cron 调度、部署状态机、权限模型以及 RocketRide App 从 Deploy 到 Publish 的完整发布阶梯读完你可以在自己的项目里用十几行 Python 完成发布版本 → 部署到环境 → 挂调度 → 审计追溯的完整闭环。核心模型Teams as EnvironmentsRocketRide 的部署模型围绕三个不可动摇的设定展开不可变版本deploy.add把一条 pipeline 快照为不可变、sha256 锁定的注册表工件版本artifact version存放在组织注册表中。部署什么运行的就是什么可证明provably。团队即环境deploy.deploy让一个团队环境Staging、Production……指向某个版本。晋升与回滚是同一个指针移动——只是目标版本或目标团队不同。部署目标永远是显式给出的没有默认团队回退。不可变审计历史每次注册表添加和指针变更都会落入不可变审计历史deploy.history行记录以seq作为稳定的追加序标识append-order identity。一次典型的部署闭环如下来自 deploy.py 文档字符串 与 deploy.mdresult await client.deploy.add(my_pipeline, commentv2 prompt fix) await client.deploy.deploy(proj-1, result[artifact][version], team-staging) await client.deploy.set_schedule(proj-1, webhook_1, */15 * * * *, team-staging) # 稍后把同一版本晋升到 Production —— 完全相同的调用。 await client.deploy.deploy(proj-1, result[artifact][version], team-prod) live await client.deploy.list() for dep in live[rows]: print(dep[teamId], dep[projectId], v, dep[version], dep[state])这段代码演示了三个关键动词add发布版本、deploy部署/晋升/回滚、list查看线上部署。注意晋升 Production 与最初部署 Staging 用的是同一个函数、同一套参数只是team_id不同——这正是指针移动设计带来的操作统一性。一步式 add deployadd(..., deploy_toteam)可以把发布版本 部署到团队折叠为一步。此时返回值PublishResult同时携带artifact新版本和deployment该团队的部署记录这在 types/deploy.py 的 PublishResult 定义 中有明确体现class PublishResult(TypedDict, totalFalse): artifact: DeployArtifact # 仅当传入 deploy_to 时出现一步式 adddeploy。 deployment: Deployment标准列表信封与分页deploy.list、deploy.versions、deploy.history都返回标准服务端分页信封{rows, total, page, pageSize}。源码_list_argsdeploy.py统一折叠了分页参数只发送调用方显式给出的值缺失项由服务端应用默认值page 1、分页大小钳制。所有列表方法还支持自由文本search、列过滤filters如{state: enabled}与sort[{field: ..., dir: asc|desc}]。deploy.list还可以通过team_id限定到单一团队。读取不可变版本deploy.artifactdeploy.artifact(project_id, version)从注册表抓取某个不可变版本的真实 pipeline JSON服务端加载时做 sha256 校验——你拿到的东西可证明与当初发布的一致。源码注释强调这是已部署版本只读渲染的唯一事实来源——绝不是本地文件也不是运行中的任务deploy.py。DeployArtifact类型types/deploy.py携带version、sha256、bytes、pipelineName、publishedBy、publishedAt、comment等字段其中comment是发布时可选填的改了什么备注。调度Schedules调度是部署体系的核心价值把 pipeline 变成按 cron 自动触发的服务。设置 / 清除调度await client.deploy.set_schedule(proj-1, webhook_1, */15 * * * *, team-staging)set_schedule(project_id, source_id, schedule, team_id, ttlNone)设置或清除某个 source 的5 字段 cron 调度schedule标准 5 字段 cron 表达式传None或manual清除调度。ttl运行窗口秒即固定窗口模式None表示每个任务运行到 pipeline 完成。对应类型定义中的DeploymentSchedule.ttltypes/deploy.py。源码实现细节set_schedule发送rrext_deploy_pipe的schedule_set子命令且不触碰 paused 标志——编辑 cron/ttl 会保留暂停状态新调度默认以未暂停开始暂停/恢复由专门的动词管理deploy.py。暂停与恢复pause_schedule/resume_schedule停止并重启单个 source的触发不动它的 cron——调度配置保留只是不再触发。这是运维中临时停一下、不改配置的标准姿势。暂停期间DeploymentSchedule.paused truetypes/deploy.py。单一 cron 求值器deploy.previewdeploy.preview(schedule, countNone)是唯一的 cron 求值器——校验有效性并返回接下来若干次触发时刻preview await client.deploy.preview(*/15 * * * *, count4) # - {valid: True, next: [epoch_seconds, ...]}源码注释明确指出面板校验、next: 行、DVR 幻影轨道ghost tracks全部由此渲染客户端从不自己解析 cron——这样预览结果永远不会与调度器实际触发不一致deploy.py。返回类型SchedulePreviewtypes/deploy.py包含valid、error无效时的人类可读原因、next下次触发的时间戳列表服务端封顶。手动触发deploy.rundeploy.run(project_id, source_id, team_id)立刻触发一个已部署的 source——与调度器使用的同一套可信、无人工身份的团队分发机制返回{token, version}。运行以团队身份执行、不携带任何人类身份计费归属组织与团队谁触发的仅记录在部署的审计历史中。前提是部署必须处于enabled状态deploy.py。每 source 执行配置deploy.set_source_configawait client.deploy.set_source_config(proj-1, webhook_1, team-staging, trace_levelfull, debug_outFalse)为 deploy 运行设置单 source 的执行设置trace_levelnone|metadata|summary|fullNone 部署默认 full与debug_out完整任务调试输出对应--tracedebugOut。这些设置会搭载该 source 的每一次deploy 运行调度触发与手动触发一致编辑调度不会触碰它们source 即使没有调度也保留自己的设置deploy.py、types/deploy.py。调度运行的日志落点调度运行以团队身份执行不存储用户凭据其日志落入团队的 run-log 连续体run-log continuum。队友通过client.log并传入team_id即可读取——DVR 会话的open_event_stream()传team_idteam-prod就是读取该团队部署连续体的日志详见 docs/public/python/logs.md。日志按环形保留最近约 1 GB历史年龄为 dev 7 天 / deploy 30 天。部署状态机States每个团队部署都处于四个状态之一State含义enabled调度按 cron 触发。disabled总开关deploy.disable——在重新启用前什么都不运行调度停止触发、手动运行被拒绝。errored某次调度分发失败——权限问题或工件不可用缺失或 sha256 被篡改——且调度器已停止重试。removed软删除deploy.remove从列表隐藏历史与工件仍保留重新部署可复活。对应的生命周期动词都在client.deploy上disablekill switch、enable复活、remove软删除。源码注释把remove的语义讲得很透列表隐藏它审计历史与每个注册表工件永远存活企业级要求。重新部署任意版本即复活deploy.py。Deployment.state的取值由 types/deploy.py 的类型标注锁定为Literal[enabled, disabled, errored, removed]。审计历史行DeployHistoryEntry的action字段还包括publish、deploy、rollback、enable、disable、remove、errored等pause/resume只出现在旧词汇行因为历史不可变types/deploy.py。值得注意的是Deployment.deployedAt是最近一次指针移动deploy 或 rollback的时刻从审计轨迹计算而来——updatedAt不会因 disable/enable 或调度编辑而变动两者语义不同types/deploy.py。权限模型变更操作add、deploy、schedule、disable 等要求对目标团队拥有task.control权限。读取遵循可见性模型组织管理员可以看到每个团队与每个个人空间普通用户只能看到自己的个人空间和自己所属的团队。deploy.list省略team_id时即按此模型返回可见部署。App 发布阶梯App Publish Ladder对 RocketRide App运行在 Shell 内的界面应用部署与发布是两个语义分离的阶段全部通过rrext_deploy_appDAP 命令的 typed 包装实现mixins/apps.py。Deploy vs Publish两个阶段一个阶梯Deploy把代码复制到服务端成为下一个不可变注册表版本client.deploy.add部署在自身state中承载评审生命周期private→submit→ready|rejected。Publish把部署绑定到受众——me、team/name或public——作为纯指针user是me的遗留输入别名永不显示重新指向该绑定即可覆盖首次发布、更新、晋升与回滚四种操作。评审状态存在于部署上而非绑定上app 以private部署开发者submit管理员批准ready或拒绝rejected。public绑定只能指向ready的部署me/team接受任意非failed的部署。App id 命名空间App id 按调用方组织的developer id分区每个 app 都是developerId.name全局唯一因此一个组织只能部署/发布自己命名空间内的 id平台保留rocketride。部署或发布 app 要求组织已认领 developer id。id 语法由 _app_pack.py 的正则 定义^[a-z][a-z_]*\.[a-z][a-zA-Z0-9_-]*$。方法总表deploy.add与deploy.add_app位于client.deploy上其余动词是客户端本身的方法client.list_deployments(...)、client.publish_app(...)不在client.deploy命名空间上方法说明deploy.add唯一的通用闸门在client.deploy命名空间上把任意对象作为下一个不可变注册表版本部署。kindpipe默认接收pipeline字典kindapp接收一份app 源码 zip服务端执行构建客户端产出的二进制永不被信任接收时保留并在到达时解包出生即部署状态private。app id 必须位于你的 developer 命名空间内。deploy.add_app打包 app 文件夹源码并部署为下一个注册表版本——App Builder 的 Deploy 按钮与 CI 脚本背后的唯一次调用。按 App Builder 规则打包工作区根 zip、appManifest.include、层级 gitignore 硬基线 node_modules/dist/.git、symlink 包含约束、50MB zip / 512MB 未压缩上限on_progress逐步输出一行叙述。部署本身不激活任何东西——之后用publish_app绑定受众。deploy.verify_appadd_app的无副作用预检——纯本地、无服务端调用manifest 形状与 id 语法、声明的 icon/README 资产、appManifest.include条目、针对大小上限的打包试运行。服务端关注点构建、商店评审不在范围内。list_deployments版本轨道最新优先——开发者组织看到完整轨道无论是否发布其他调用者只看到自己可见的版本。每条记录携带部署state、buildStatusok 可服务与rungs绑定到它的受众列表。submit_app提交已部署版本供评审——翻转部署private→submit。withdraw_app撤回待评审——开发者自己的取消翻转部署submit→private版本离开管理员队列历史记录withdrawn。只有submit状态的版本可以撤回。开发者组织 命名空间门控同 submit。reply_app向 app 评审线程追加开发者消息——作为reply行sidedeveloper写入deployment_history与deploy.history()读取的同一流。开发者组织 命名空间门控。build_log某版本持久的服务端构建日志——构建工件的逐阶段完整输出存储在版本工件旁错误文本不进入轨道行。长日志只提供尾部log为空 无日志。开发者组织门控。publish_app把部署绑定到me、team/name或publicuser 遗留输入别名。绑定是出生即enabled的纯指针。public要求部署readyme/team接受任意非failed部署。把另一个组织的公共 app 固定到me/team是版本选择器发布自己的 app 要求 id 在命名空间内。where_app反向索引每个受众一条{rung, handle, version, appVersion, state, deployedAt}——state是被绑定部署的评审状态。评审模型与发布流程deploy.md引用 reference.md 给出了走向公开的完整三步行流程submit部署 →submit进入管理员队列→admin_approve→ready→publish_app public把公共绑定指向ready版本。拒绝则翻转部署为rejected开发者修复后部署新版本。me/team绑定无需批准。此外源码 AppsMixin 还提供了两个文档主表中未列出的受众级运维动词remove_app_publish移除受众绑定软操作——注册表版本与审计历史保留重新发布即复活与disable_app_publish禁用受众绑定——服务停止但行保留在 where-live 列表中并标记disabled是一个可见的关断开关区别于 remove 的隐藏语义。服务 URL无需动词的加载App 服务不需要任何动词版本的 bundle 从稳定 URL/apps/app_id/vN/remoteEntry.js加载该 URL 由其注册表版本号构造服务路由在每个请求上强制执行授权只认注册表整数——semver 仅用于展示。旧app_entry能力已退役因为版本从稳定构造 URL 服务没有需要铸造的东西apps.py 注释。源码级深入打包规则与验证实现add_app与verify_app背后是 _app_pack.py它是 TypeScriptrocketride/app-pack的 Python 镜像实现细节直接决定了哪些文件会被带上服务端、能否通过验证源码专属、工作区相对布局zip 只携带源码按工作区相对位置打包——app 文件夹在真实位置部署元数据以appRoot命名appManifest.include条目也在各自位置服务端解包后打包根之间的相对引用依然解析_app_pack.py。git 式过滤硬基线node_modules/、dist/、.git/不可被 negation 重新包含的底线 工作区各层.gitignore按 git 的 deepest-wins 优先级层级应用被忽略的目录永不深入。*.rrapp标记部署溯源总是打包用户显式命名的打包根胜出即使规则本会排除它L34-L41。symlink 包含约束安全symlink 只在工作区内被跟随——真实目标逃逸工作区根的链接被跳过数据外泄路径每根循环被打破L39-L42、L187-L244。大小上限512MB 未压缩内存构建边界、50MB zip服务端接收时拒绝更大上传——客户端提前用同一边界快速失败L66-L72。固定时间戳每个 zip 条目盖上(1980, 1, 1)固定时间使两份相同源码的打包字节只由内容决定——这对不可变版本的机器级一致性至关重要L74-L77。include 条目校验appManifest.include条目必须是存在的工作区相对路径——拒绝绝对路径、盘符、./..拼写错误会让打包响亮地失败L302-L352。verify_app返回的AppVerifyReportdataclass由客户端构造而非服务端接收包含ok、逐项checksid/ok/note、file_count与uncompressed_bytes覆盖 manifest 形状、id 语法、icon/README 声明、include 条目与打包试运行五类检查verify_app_source。开发者可以在任何编辑器中先跑verify_app拿一份无副作用报告再执行add_app真正部署。从 CLI 到程序化SDK 的完整部署工具链除部署 API 外Python SDK 还提供deploy.create_appclient.deploy.create_app(slug, ...)App Builder New App 向导的程序化孪生——脚手架写入./apps/slug、确保 pnpm workspace 文件与 ignore 卫生、vendor 连接服务器的 shell client 包并运行工作区安装返回{appId, folder, files, vendored, installed}见 deploy.py配合 App Builder 指南 中展示的rocketride app create reports --template Dashboard与rocketride app verify ./apps/reports两条 CLI 命令构成脚手架 → 验证 → 打包 → 部署 → 绑定受众的完整工具链。小结RocketRide 的部署体系把环境即团队、版本即不可变 sha256 工件、发布即指针移动贯彻到底pipeline 的晋升/回滚是同一调用、调度与手动运行共用同一团队分发、审计历史以seq无界追溯而 App 的发布把部署与受众绑定解耦、评审状态挂在部署上。所有方法均有 typed 包装DeployApi、AppsMixin类型定义见 types/deploy.py完整签名表见 API referenceApp 模型本身见 Shell API guide。赞分享【免费下载链接】rocketride-serverHigh-performance AI pipeline engine with a C core and 50 Python-extensible nodes. Build, debug, and scale LLM workflows with 13 model providers, 8 vector databases, and agent orchestration, all from your IDE. Includes VS Code extension, TypeScript/Python SDKs, and Docker deployment.项目地址https://gitcode.com/gh_mirrors/ro/rocketride-server点击查看免费下载相关推荐RocketRide TypeScript SDK 部署指南不可变版本、团队即环境与 App 发布阶梯RocketRide TypeScript SDK 部署指南不可变版本、团队即环境与 App 发布阶梯 本篇技术指南完整讲解 RocketRide TypeSMistral-7B-OpenOrca提示词工程指南掌握ChatML格式释放模型全部潜力Mistral 7B OpenOrca提示词工程指南掌握ChatML格式释放模型全部潜力 想要充分发挥Mistral 7B OpenOrca模型的强大能力吗RocketRide Python SDK 实战指南用 rocketride 客户端构建、运行与部署 AI PipelineRocketRide Python SDK 实战指南用 rocketride 客户端构建、运行与部署 AI Pipeline 导读 本文以 RocketRid上一篇快速关闭 SystemInformer 鼠标悬停提示窗口3 步禁用弹窗的完整指南下一篇Python语法高亮终极指南MagicPython让你的代码焕发光彩 创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

LabVIEW编程LabVIEW开发光谱仪ELIAS-III例程与相关资料 2026/9/25 6:19:22

LabVIEW编程LabVIEW开发光谱仪ELIAS-III例程与相关资料

LabVIEW编程LabVIEW开发光谱仪ELIAS-III例程与相关资料项目使用 ELIAS‑III 光谱仪,设备配套原厂 Sophi 上位软件,仪器依托网络通讯实现远程控制,要求控制主机与仪器 IP 处于同一网段。本项目共配置两套同型号光谱仪,但两台设备生…

阅读更多 →
代码审查实战指南:从流程设计到自动化与AI辅助 2026/9/25 6:19:22

代码审查实战指南:从流程设计到自动化与AI辅助

1. 代码审查到底在审什么:先搞清楚Review的定位做了十来年研发,我见过太多团队把代码审查(Code Review)当成了走流程:PR一挂,随便看两眼,点个“Looks Good”,合并完事。也有团队矫枉…

阅读更多 →
面试解决的问题 2026/9/25 6:19:22

面试解决的问题

1,jvm调优,调整jvm内存比例,同时减少youngGc和fullGc次数。也就是增大年轻代比例,尽可能减少放到老年代。虽然回收的东西大小是一样的,但是附带的东西是不一样的,就像一段路程,公交车走走停停肯定慢啊。 再者 垃圾收集器 使用的是jdk1.8默认的,即JDK1.8默认的垃圾收集器…

阅读更多 →
本地化恶意URL检测:从源码跑通到ONNX加速实战 2026/9/25 6:19:22

本地化恶意URL检测:从源码跑通到ONNX加速实战

简介:本资源是一个基于机器学习的恶意URL检测项目改进版源码包,面向计算机、人工智能、大数据等专业学生及安全技术学习者,适用于课程设计、期末大作业与毕业设计实践,聚焦Web安全场景下的URL恶意性判别任务。压缩包共15个文件&am…

阅读更多 →
【Python深度学习】NLP中的Transduction和Transductive Learning 2026/9/25 6:19:16

【Python深度学习】NLP中的Transduction和Transductive Learning

在深度学习和机器学习面试中,Transduction(转导) 和 Transductive Learning(直推式学习) 是一些令人印象深刻却不常见的术语。了解它们不仅可以提升面试沟通的技术深度,同时也能展示对机器学习中较为小众概念的掌握。本文将对“转导”这一概念进行深入讲解,剖析其在机器…

阅读更多 →
开源掌机工作坊:从硬件选型到端侧AI部署全链路实践 2026/9/25 6:19:16

开源掌机工作坊:从硬件选型到端侧AI部署全链路实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉