Skip to content

2026-03-30 工作项目记录

时间: 2026-03-30 状态: 已完成 ✅


Content Center 项目开发

项目概览

AI 内容中心,包含前端管理后台和后端服务,支持图片生成和 API Key 管理。


1. 后端 API Key 管理接口

文件: C:\project\content-center\backend\src\routes\apikey.ts(新建)

路由挂载: /api/admin/apikey

接口设计

接口方法说明
/api/admin/apikey/listGET返回所有 API Key(key 只显示前缀 ccg_live_xxxx,secret 完全隐藏)
/api/admin/apikey/createPOST创建 Key,body: { name: string },返回 { id, name, key, secret },secret 仅此次返回
/api/admin/apikey/deleteDELETE删除 Key,body: { id: string }

存储

  • 文件: C:\project\content-center\data\apikeys.json
  • 每条记录: { id, name, key, secret, createdAt, enabled }
  • Key 生成规则: ccg_live_ + 32位随机字母数字

类型定义

typescript
interface ApiKeyRecord {
  id: string;
  name: string;
  key: string;
  secret: string;
  createdAt: number;
  enabled: boolean;
}

2. 对外图生图接口 v2

文件: C:\project\content-center\backend\src\routes\v2.ts(新建)

路由挂载: /api/v2

接口设计

POST /api/v2/image/generate
Authorization: Bearer <API_KEY>
Content-Type: application/json

{
  "type": "text-to-image" | "image-to-image",
  "prompt": "string",
  "image_base64": "string (type=image-to-image 时必填)",
  "ratio": "1:1" | "16:9" | "9:16" | "4:3" | "3:4" (可选,默认 "1:1"),
  "resolution": "1k" | "2k" (可选,默认 "2k"),
  "model": "jimeng-5.0" | "nano-banana-fast" (可选,默认 "nano-banana-fast")
}

鉴权逻辑

  1. Authorization: Bearer <token> 提取 token
  2. apikeys.json 中查找 key === tokenenabled === true 的记录
  3. 未找到返回 401 {"error": "无效的API Key"}

业务逻辑

  • type=text-to-image → 调用 ImageGenerator.textToImage(prompt)
  • type=image-to-image → 调用 ImageGenerator.imageToImage(prompt, image_base64)
  • model 参数控制使用即梦或 GRS
  • 图片大小限制: image_base64 解码后不超过 10MB

返回格式

  • 成功: 直接输出图片二进制,Content-Type: image/png
  • 失败: JSON {"error": "错误信息"},状态码 4xx/5xx

3. 前端 AdminPanel API Key Tab

文件: C:\project\content-center\frontend\src\components\AdminPanel.tsx

功能

  • 新增第三个 Tab:apikeys
  • 创建 API Key(输入名称)
  • 列表展示(显示前缀、名称、状态、创建时间)
  • 删除 API Key
  • 复制 Key 到剪贴板
  • 创建后临时显示 Secret(仅一次)

4. server.ts 更新

引入新路由并挂载:

typescript
import apikeyRoutes from './routes/apikey';
import v2Routes from './routes/v2';

app.use('/api/admin/apikey', apikeyRoutes);
app.use('/api/v2', v2Routes);

Git 推送操作

jimeng-free-api-all

  • 修改内容: configs/dev/service.yml 端口 8000→8001,package.json 配置更新
  • Commit 推送至 origin release1.0 分支
  • ✅ 推送成功

node_modules 处理

  • 确认 .gitignore 已包含 node_modules/
  • 已添加到 .gitignore,避免后续误提交

项目关闭

应用户要求,关闭以下服务(端口已释放):

  • ✅ kitchen-ai-demo (8000)
  • ✅ content-center 前端 (3000)
  • ✅ content-center 后端 (3001)
  • ✅ jimeng-free-api-all (8001)

状态汇总

项目状态说明
API Key 管理✅ 完成apikey.ts,已集成到 server.ts
v2 图生图接口✅ 完成v2.ts,已集成到 server.ts
AdminPanel Tab✅ 完成前端 API Key Tab
Git 推送✅ 完成jimeng-free-api-all → release1.0
项目关闭✅ 完成所有端口已释放