使用 Wasp AI(Mage)创建新 Wasp 应用:从标题与一段描述一键生成全栈项目
2026/9/15 20:47:41 网站建设 项目流程

使用 Wasp AI(Mage)创建新 Wasp 应用:从标题与一段描述一键生成全栈项目

【免费下载链接】waspThe batteries-included full-stack framework for the AI era. Develop JS/TS web apps (React, Node.js, and Prisma) using declarative code that abstracts away complex full-stack features like auth, background jobs, RPC, email sending, end-to-end type safety, single-command deployment, and more.项目地址: https://gitcode.com/GitHub_Trending/wa/wasp

Wasp 自带名为 Wasp AI(代号 Mage,即Magic webAppGEnerator)的应用生成能力,允许你仅凭一个标题和一段简短描述,在 GPT 模型的后台驱动下生成一个全新的 Wasp 全栈应用。本文以 Wasp 0.17 版本官方文档为主线,详细介绍两条生成路径(开源在线应用与本地wasp new命令),并结合仓库源码剖析wasp new的完整执行链路,帮助你快速上手 AI 驱动的项目初始化,并理解其底层行为与注意事项。

Wasp AI(Mage)是什么

Wasp AI 是内置于 Wasp 生态中的应用生成器:你只需提供应用标题和一段一两句话的功能描述,它便会在后台调用 GPT 系列模型,为你产出一个结构完整、可继续开发的 Wasp 项目(包含main.wasp配置文件、src客户端与服务端代码、数据库 schema 等)。这一能力在仓库 ChangeLog 中有明确记载——此前仅可通过在线方式使用,随后 Wasp AI 也进入waspCLI,使开发者能够"仅凭标题和一段简短描述"创建全新的 Wasp 应用。

两条生成路径:在线与本地 CLI

根据 创建新应用文档,使用 Wasp AI 创建新应用主要有两种方式:

  1. 免费、开源的在线应用 usemage.ai:无需本地配置,直接在线描述应用并下载生成结果。
  2. 本地运行wasp new并选择 AI 生成:需要自行提供 OpenAI API Key,但灵活性更高(可自由选择 GPT 模型)。

两条路径在后台使用完全相同的生成逻辑,智能程度一致,区别仅在于界面与可配置项(见 ChangeLog 中关于"提供自己的 OpenAI API Token、可自由选择模型"的说明)。

:::info 实验性特性提醒 Wasp AI 目前属于实验性功能。生成的应用可能包含与其复杂度成正比的错误;即便如此,修复错误后它往往仍是一个很好的起步点,也能作为探索"如何在 Wasp 中实现某个功能"的有趣参考。 :::

路径一:usemage.ai 在线生成

usemage.ai 是一个开源应用,你可以仅凭一个简短的标题和描述就创建出新的 Wasp 应用:

  • 完全免费:在线服务使用 Wasp 官方提供的 OpenAI API Key,成本由官方承担。
  • 操作极简:提供应用标题、应用描述,并选择一些基础设置后,几分钟内即可生成一个新的 Wasp 应用。
  • 可下载继续开发:生成完成后可将项目下载到本地,随后基于它继续迭代。

关于 usemage.ai 的工作原理,官方文档指引读者参阅仓库内的两篇博客文章:《GPT Web App Generator》(介绍 Mage 的工作方式)与 《How We Built GPT Web App Generator》(高层实现思路)。

路径二:wasp new 本地生成

在终端中运行wasp new并选择 AI 生成即可在本地创建新应用。整个交互流程清晰直观:

  1. 运行wasp new:进入交互式向导(也可携带参数直接指定项目名与模板,详见下文"命令形式")。
  2. 提供 OpenAI API Key:若尚未配置,wasp会要求你通过环境变量(ENV vars)提供自己的 OpenAI API Key,CLI 将用它来查询 GPT。
  3. 描述应用:输入应用标题与描述,随后选择模型与创造性级别等参数。
  4. 生成到磁盘:确认后,新应用会被生成到当前目录下。

命令形式与参数

从 ArgumentsParser.hs 的源码可以看到wasp new支持以下形式:

# 交互式创建(依次询问项目名与模板) wasp new # 直接指定项目名(使用默认 starter 模板) wasp new my-project # 指定项目名与模板 wasp new my-project -t <template-name>

其中-t / --template用于指定 starter 模板。当以交互方式运行时,CLI 会列出可选模板供你选择,其中就包含 AI 生成模板(标注为 experimental,提示语为"用几句话描述应用,让 Wasp AI 为你生成初始代码")。交互式向导与参数解析逻辑分别位于 ProjectDescription.hs 与 CreateNewProject.hs。

AI 生成的交互参数

选择 AI 生成后,CLI 会引导你完成以下参数配置(见下方截图):

  • 应用描述(Describe your app):用一两句话描述应用,例如"一个记录我养的植物清单以及上次浇水时间的应用,我可以为每棵植物指定名称和浇水频率,并执行浇水操作"。
  • GPT 模型组合:默认组合为gpt-4 (planning) + gpt-3.5-turbo (coding),即用更强的模型负责规划、用更经济的模型负责编码;你也可以按成本与速度偏好选择其他组合。若想自由指定模型,需提供自己的 OpenAI API Key。
  • 创造性级别(temperature):提供三个档位——Balanced(0.7,默认)、Conventional(0.4)、Creative(1.0),用于控制生成代码的保守程度与发散程度。

生成过程实时输出

提交后,CLI 会实时打印生成进度(见下方截图),整个过程大致分为:生成项目骨架 → 生成初始计划(最耗时步骤,通常需要 30 到 90 秒)→ 修复计划 → 生成操作(actions)与查询(queries)→ 以实体更新 Wasp 文件:

以示例项目 MyPlants 为例,生成器会基于你的描述推导出应用的领域模型,例如规划出 2 个查询(getPlantsgetPlant)、2 个操作(createPlantwaterPlant)、2 个实体(UserPlant)与 2 个页面(HomePagePlantPage),并把这些声明同步写回main.wasp文件。可见生成结果并非零散代码堆砌,而是遵循 Wasp 声明式开发范式的完整工程。

源码视角:wasp new 的执行链路

结合源码可以更准确地理解wasp new的行为边界。入口函数位于 CreateNewProject.hs,其执行顺序为:

  1. 前置检查:要求本机具备有效的 Node 与 npm 环境(ValidNodeAndNpm)。
  2. 获取项目描述:调用 ProjectDescription.hs 中的obtainNewProjectDescription——若命令行未提供参数则进入交互式询问(项目名、模板);提供了参数则使用参数值,模板缺省时使用默认 starter 模板。
  3. 创建项目到磁盘:根据所选模板类型(本地内置模板或 GitHub Release 归档模板)在磁盘上生成项目。
  4. 自动安装依赖:对新项目执行依赖安装;若失败会打印黄色警告,提示在项目目录中运行wasp install手动安装。
  5. 打印起步指引:输出成功信息与模板自带的入门说明。

项目名校验规则

ProjectDescription.hs 中parseWaspProjectNameIntoAppName对项目名做了严格校验,校验失败会明确报错:

  • 必须以字母或下划线开头;
  • 只能包含字母、数字、短横线(-)与下划线(_);
  • 不能是 Wasp 关键字。

同时项目名会被转换为驼峰形式作为 Wasp 应用名(kebabToCamelCase),例如my-project对应应用名myProject

目标目录冲突检查

若当前目录下已存在同名目录,wasp new会直接报错:Directory 'xxx' already exists. Choose a different name or delete the directory first.(见 ProjectDescription.hs),避免覆盖已有项目。

生成后的依赖处理

生成完成后 CLI 会立即尝试为新项目安装依赖;若安装失败,项目本身依然保留,你只需进入项目目录执行wasp install即可补齐依赖(见 CreateNewProject.hs)。

实验性特性与注意事项

  • 结果可能含错误:生成的代码可能包含 bug,复杂应用的错误概率更高,应将其视为高质量起点而非终稿。
  • 适合学习与探索:即使生成结果不完美,通过阅读生成代码也能快速了解 Wasp 中实体、查询、操作、页面与认证等特性的声明与组织方式。
  • 模型选择与成本:本地方式使用你自己的 OpenAI API Key,成本由自己承担,但因此获得模型自由度;在线方式免费但使用官方预设的模型组合。
  • 功能仍在演进:仓库 ChangeLog 记录了 Wasp AI 的持续迭代,例如模型从 GPT 3.5 系列升级、生成上下文扩大、以及后续版本中wasp new:ai支持任意模型名等改进,说明该特性的参数与默认值会随版本变化,使用时应以当前安装版本的文档为准。

进一步探索

  • 若想了解 AI 生成之后如何继续在已有应用上借助 Wasp AI 迭代功能,可阅读同目录下的 developing-existing-app.md。
  • 深入理解 Mage 的工作方式与实现思路,可阅读 GPT Web App Generator 博客 与 How We Built GPT Web App Generator 博客。
  • 阅读 CreateNewProject.hs 与 ArgumentsParser.hs 可进一步掌握wasp new全部命令形式与底层流程。

【免费下载链接】waspThe batteries-included full-stack framework for the AI era. Develop JS/TS web apps (React, Node.js, and Prisma) using declarative code that abstracts away complex full-stack features like auth, background jobs, RPC, email sending, end-to-end type safety, single-command deployment, and more.项目地址: https://gitcode.com/GitHub_Trending/wa/wasp

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询