SuperAPI AI 工具集

migrating-googleai-to-domo

部署与运维

查看项目

更新于 10-16 06:39

技能介绍

用途

该技能面向从 Google AI Studio 起步、通常以 Cloud Run 或预览方式运行的项目,将其转换为 Domo App Platform 自定义应用,并以静态资源形式通过 Domo CLI 部署。核心目标是让项目成为常规前端:本地可用 npm run dev 运行,npm run build 产出 dist/,可从非根子路径托管,且渲染 UI 不依赖任何服务器运行时。

识别 AI Studio 来源

若项目出现以下任一特征,即视为 AI Studio 来源并应用后续步骤:README 提及 Google AI Studio、Gemini API、Build 模式或 Cloud Run;存在 cloudbuild.yaml、Dockerfile 或 Cloud Run 部署说明;使用 process.env.GEMINI_API_KEY 或标注为“由 AI Studio 提供”的占位符;结构依赖服务器/容器而非静态托管。

主要能力与使用方式

  1. 确保标准构建管线:检查 package.json 脚本。Vite 使用 dev: vite、build: vite build、preview: vite preview,输出 dist/。CRA 默认输出 build/,不符合契约,优先迁移到 Vite,或仅在用户明确要求 CRA 时调整发布命令。验收标准为 npm install 成功,npm run build 生成含 index.html 与 assets/* 的 dist/。

  2. 修复基础路径:Domo App Platform 不在根路径 / 托管,资源路径必须相对或显式配置。Vite 在 vite.config.* 中设置 base: './';其他打包器确保等效 public path 为相对。验收标准为从嵌套路径打开 dist/index.html 仍能加载 JS/CSS,无 404,且无硬编码绝对资源路径。

  3. 路由健壮性:若使用 React Router 或客户端路由,除非平台提供 SPA 重写,优先使用 HashRouter;若切换成本过高,需说明深层路由刷新会 404,除非 Domo 配置重写规则。默认在存在路由且无重写控制时切换为 HashRouter。验收标准为构建后应用可导航与刷新而无需服务器重写。

  4. 环境变量与密钥:AI Studio 托管运行时可提供占位符(如 Gemini API 密钥),但 Domo App Platform 浏览器无法安全保存密钥。规则:不在客户端代码中携带原始 API 密钥;若 UI 需要 Gemini/LLM 调用,优先通过 domo.js 使用 Domo AI API(若可用/允许),或经后端(如 Domo Code Engine)代理并在服务端注入密钥;将 process.env.* 替换为工具链原生用法(Vite 为 import.meta.env.VITE_*);添加 .env.example 记录所需变量(仅非机密)。验收标准为无提交的密钥,且不会因缺少 AI Studio 环境注入而运行时崩溃。

  5. Domo 部署契约:最终开发流程为 npm run build、cd dist、domo publish。若 App Platform 项目需要 Domo manifest/配置文件(如 manifest.json),确保其位于 Domo 期望位置,或在构建时复制到 dist/。若平台期望 manifest 在根目录但发布 dist/,可添加 postbuild 脚本将所需应用平台文件复制到 dist/,或按用户既定标准调整发布策略。默认添加 postbuild 脚本复制缺失文件。验收标准为 dist/ 包含发布运行所需全部内容,在 dist/ 内执行 domo publish 无需手动复制文件即可工作。

输出要求

应用更改后需提供:更改文件简短列表;本地运行的准确命令;完成清单,确认构建产出 dist/、资源在子路径下加载、路由可用(哈希路由或记录重写需求)、客户端无密钥。应果断实施更改,除非因缺少文件受阻,否则不追问。

适用场景与限制

适用于从 Google AI Studio 原型迁移到 Domo App Platform 静态部署的项目。限制包括:CRA 默认输出不符合契约;Domo 子路径托管要求相对资源路径;浏览器不能安全保存密钥;深层路由刷新可能需要重写规则。资料未提供具体收费、价格、平台支持范围或效果保证。