Documentation Index
Fetch the complete documentation index at: https://tech.illasoft.com/llms.txt
Use this file to discover all available pages before exploring further.
kira-ads-platform 是一个独立的 Next.js 批量 AI 图像生成工具,和 Kira 主产品线(kira-be / kira-web)没有 API 耦合,只是同一组织下的运营辅助工具。用户导入图片、配置模型/比例/提示词,批量调用 KIE(Kira Image Engine)生成,支持 zip 批量下载。
部署形态
| 项 | 值 |
|---|
| 平台 | Fly.io (sjc) |
| 资源 | 2 CPU shared / 2 GB RAM |
| 端口 | 3000 |
| 入口 | node node_modules/next/dist/bin/next start |
| 域名 | 内部使用(未对外) |
| Path | 文件 | 类型 |
|---|
/ | app/page.tsx (210 行) | Client component |
/api/generate | app/api/generate/route.ts | Server-only,调 KIE 上传+创建任务 |
/api/generate/status | app/api/generate/status/route.ts | 查询 KIE 任务状态 |
前端架构
- 无状态管理库:纯
useState 管理 cards: GeneratorCard[]
- 卡片状态机:
idle → generating → done / error
- KIE 轮询:客户端每 5 秒调
/api/generate/status,最多 120 次 = 10 分钟超时(utils/kie.ts:33-50)
- 批量下载:JSZip 把所有
done 卡片的图片打包
KIE 集成
Server route 调用 KIE:
POST /api/generate
├─ multipart form: file + { model, aspectRatio, prompt }
├─ KIE 上传:POST {KIE_URL}/upload
├─ KIE 创建任务:POST {KIE_URL}/generate
└─ 返回 { taskId }
GET /api/generate/status?taskId=xxx
└─ KIE 查询:GET {KIE_URL}/status/{taskId}
→ { state: "idle"|"generating"|"done"|"error", imageUrl? }
KIE_KEY 存在 Fly secret,不暴露到前端。
模型和比例
见 utils/constants.ts 的 MODEL_OPTIONS:每个模型支持的宽高比列表。运营添加新模型需要手动在这里加枚举 + 前端下拉框同步更新。
环境变量
KIE_KEY # KIE API key(Fly secret)
与 Kira 主线的关系
| 维度 | 关系 |
|---|
| 数据库 | 独立(无 Supabase 连接) |
| 鉴权 | 无(目前内部工具,依赖网络访问控制) |
| 计费 | 无(不消耗用户 credits,用独立 KIE quota) |
| 事件 | 无(不发 PostHog,不入 Inngest) |
Caveat
- 10 分钟轮询超时:长生成任务会客户端失败,KIE 服务端仍可能完成
- 无错误日志持久化:浏览器关闭后错误无法追溯
- 无访问控制:部署时需要靠网络层(Cloudflare Access / 内网)保护
- 无 SSL/签名:和 KIE 的通信无额外签名,靠 KIE_KEY header
最近提交
d682be4 Dockerfile 和 fly.toml 对齐
2f29694 实现 Ads Platform 核心
72444dc 初始化