【愚公系列】《人人都是AI程序员》020-项目实战2: 构建商业级AI 图像生成平台(十分钟实战:集成 Replicate AP

举报
愚公搬代码 发表于 2026/04/02 10:09:13 2026/04/02
【摘要】 💎【行业认证·权威头衔】✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者🏆【荣誉殿堂】🎖 连续三年蝉联"华为云十佳博主"(2022-2024)🎖 双冠加冕CSDN"年度博客之星TOP...

💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者

🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主

📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node…
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析

🚀前言

在前面学习中,我们一同走过了从认知觉醒到工具掌握、从基础搭建到项目实战的 完整流程。现在,是时候接受最终的挑战了——构建一个具备真正商业价值的复杂应用。

我们将要打造的不是一个玩具项目,而是一个集成了前沿AI 技术、完整支付体系、 用户管理系统的图像生成平台。该项目将综合运用你所学的每一项技能:从v0.dev 的精 美界面设计,到Supabase 的强大后端支持;从Replicate 的 AI 模型调用,到Stripe 的专业 支付流程;从MCP 的高级集成,到Vercel的生产环境部署。

当你完成学习后,你将不再是“学习编程的人”,而是真正的“独立创造 者”——有能力将任何创意转化为现实的数字时代创业者。

未来,正在你的指尖绽放。

🚀一、十分钟实战:集成 Replicate API 实现核心 AI 功能

本节将详细介绍如何将 Replicate 的 AI 服务集成到应用中,实现图像生成功能。该过程的核心是构建一个稳健且事件驱动的异步工作流。

🔎1.Replicate API 密钥配置与环境变量管理

首先访问 Replicate 官网注册账户,并在账户设置的 API Tokens 页面生成一个新的 API 密钥。随后将该密钥添加到项目根目录下的 .env.local 文件中:

REPLICATE_API_TOKEN=your_replicate_token_here
REPLICATE_WEBHOOK_SIGNING_SECRET=your_webhook_secret_here

在这里插入图片描述
在这里插入图片描述

🔎2.文生图功能:接入多种 AI 模型

要处理所有的生成请求,需创建 Next.js API 路由 app/api/generate/route.ts。服务端的逻辑流程如下:

  1. 用户身份验证:使用 Supabase 服务端能力,验证请求头中的 JWT(JSON Web Token),确保请求来自合法的已登录用户。

  2. 积分检查:查询数据库中的 credit_transactions 表,计算用户当前积分余额,积分不足则立即返回错误。

  3. 调用 Replicate API,相应代码如下:

    const output = await replicate.run(
      "stability-ai/sdx1:39ed52f2a78e934b3ba6e2a89f5b1c712de7dfea535525255b1aa35c5565e08b",
      {
        input: {
          prompt: prompt,
          negative_prompt: negativePrompt,
          width: 1024,
          height: 1024,
          num_outputs: 1,
          scheduler: "K_EULER",
          num_inference_steps: 50,
          guidance_scale: 7.5,
          seed: Math.floor(Math.random() * 1000000),
        },
        webhook: `${process.env.NEXT_PUBLIC_APP_URL}/api/webhook/replicate`,
        webhook_events_filter: ["completed"],
      }
    );
    
  4. 在数据库中记录任务:将任务信息存入 generation_tasks 表,并将初始 status 设置为 processing

🔎3.图生图功能:实现图像编辑与融合

对于图生图功能,流程需要稍作调整,具体如下:

  1. 前端先将用户上传的图片上传到 Supabase Storage,并获取图片的公开 URL。
  2. 在调用 API 时,将图片 URL 与提示词一起作为请求体发送到后端。
  3. 在后端的 replicate.run() 函数中,将图片 URL 作为 input 对象参数传入。

无论是文生图还是图生图,Replicate 均为异步处理,因此需要一个专门的 Webhook 处理器接收并管理任务完成后的回调通知。

🔎4.异步处理:Webhook 回调和生成状态管理

创建 Webhook 处理器 app/api/webhook/replicate/route.ts,用于接收和处理来自 Replicate 的 POST 通知,其主要职责如下:

  • 验证请求来源:校验 Webhook 请求的签名,确保请求确实来自 Replicate。

  • 解析数据:从请求体中解析出任务的最终状态和输出结果。

  • 更新数据库与文件转存:如果成功,将图片从 Replicate 下载并上传到 Supabase Storage,在 user_images 表中创建记录;如果失败,更新状态为 failed 并记录错误信息。

  • 扣除积分:使用已创建的数据库函数安全地扣除用户积分,代码如下:

    await supabase.rpc("update_user_credits", {
      p_user_id: task.user_id,
      p_amount: -task.cost_credits,
      p_type: "consumption",
      p_description: `Image generation: ${task.task_type}`,
      p_related_id: task.id,
    });
    

通过以上步骤,我们成功集成了 Replicate API,构建了一个支持文生图、图生图并具备积分管理与异步回调的完整 AI 图像生成功能。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。