跳转到内容

接口总览

这是什么。 一次调用同时拿到「AI 肤质分析 + 高级测肤报告 + 商品推荐」。您会得到那份精准报告——它建立在实测皮肤指标与专业护肤参考数据库之上——再加上完全从您自家商品里给出的推荐,只需一个请求、一次轮询流程。

一个接口调用就把整个闭环走完:既有科学、高度可靠、精准的肤质分析报告,又有完全基于您的商品目录的商品推荐。商品曝光与用户黏性一次兼顾,用户体验从头到尾不断档。

  • 前置准备——上传您的商品目录

商品目录就是肤质分析做推荐时使用的那份商品清单。上传一次,记下它的 catalog_id,之后每次测肤都传入这个 id。目录归属于您的账号,不属于某一个 API 密钥——账号下的每个密钥(包括项目密钥)看到的都是同一批目录,轮换密钥或删除密钥都不会影响它们。上传与存储目录完全免费。

目录文件要求

项目取值
格式带表头行的 CSV
编码UTF-8,带或不带 BOM 皆可(Excel 的"CSV UTF-8"会带上 BOM)
文件大小上限5 MB
SKU 数量上限除文件大小外没有限制
必填栏位product_id、product_name、product_description

其他栏位会被忽略,但仍计入 5 MB 的大小限制。取值中包含逗号或换行时,必须按标准 CSV 的规则加引号。每一行非空的数据行算作一个 SKU。

product_id,product_name,product_description
SKU-001,Hydrating Serum,"A lightweight serum for dry skin."
SKU-002,Brightening Cream,"Evens out skin tone, for daily use."
SKU-003,Barrier Repair Cream,"Rich cream for dry, redness-prone skin."
# Upload a catalog — validated in the same request
curl -sS -X POST "$BASE_URL/s2s/v2.1/product-catalog" \
  -H "Authorization: Bearer $API_KEY" \
  -F "file=@catalog.csv" \
  -F "name=Summer skincare"

文件校验通过时,响应会给出 status: ready,并带上它的 catalog_id 与 sku_count——请务必记下这个 id:

{
  "status": 200,
  "data": {
    "catalog_id": "1662043585118399001",
    "name": "Summer skincare",
    "status": "ready",
    "created_time": 1760256000000,
    "sku_count": 3
  }
}
# List every catalog of your account, newest first (ready and failed alike)
curl -sS -H "Authorization: Bearer $API_KEY" "$BASE_URL/s2s/v2.1/product-catalog"

# Delete a catalog — immediate and permanent
curl -sS -X DELETE -H "Authorization: Bearer $API_KEY" \
  "$BASE_URL/s2s/v2.1/product-catalog/1662043585118399001"

目录状态与限制

状态含义可用于测肤
ready已上传并通过校验可以
failed已上传,但文件未通过校验不可以

未通过校验的上传会返回错误,同时仍会被记录成一个 failed 目录,在「列出目录」里能看到它;错误响应体中不会带上它的 catalog_id。每个账号最多保留 10 个目录,ready 与 failed 合并计算——要先删掉一个,才能上传新的。更新目录的做法是上传一份新文件:每次上传都会产生一个新的 catalog_id,旧目录在您删除之前一直可用,因此可以先确认新目录没问题再切换。


  • 创建 AI 任务
# Skin Intel System — Report + Recommendations
curl -sS -X POST "$BASE_URL/s2s/v2.1/task/skin-analysis-report-recommendation" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "src_file_url": "https://your-cdn.example.com/customer-001.jpg",
    "dst_actions": [
      "hd_skin_type", "hd_wrinkle", "hd_pore", "hd_texture",
      "hd_acne", "hd_redness", "hd_oiliness", "hd_moisture",
      "hd_age_spot", "hd_radiance", "hd_dark_circle", "hd_firmness",
      "hd_eye_bag", "hd_tear_trough", "hd_droopy_upper_eyelid",
      "hd_droopy_lower_eyelid"
    ],
    "format": "zip",
    "pf_camera_kit": true,
    "miniserver_args": {
      "enable_mask_overlay": true
    },
    "advanced_report": {
      "language": "enu",
      "tone": "warm",
      "country": "United States",
      "city": "New York"
    },
    "product_recommendation": {
      "catalog_id": "1662043585118399001",
      "top_n": 3
    }
  }'

  • 轮询获取报告与推荐

每次调用都会立刻返回一个 BasicRunTaskResponseV2。用返回的 id 轮询任务即可;报告与推荐结果都在 llm_results.json 里。

# 1. Run the task and capture the task id
TASK_ID=$(curl -sS -X POST "$BASE_URL/s2s/v2.1/task/skin-analysis-report-recommendation" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ ... }' | jq -r '.data.task_id')

# 2. Poll until task_status is "success"
curl -sS -H "Authorization: Bearer $API_KEY" \
  "$BASE_URL/s2s/v2.1/task/skin-analysis-report-recommendation/$TASK_ID"

task_status 会从 running 走到 success | error。用 format: zip 时,results.url 是一条有效期为 2 小时的下载链接,ZIP 里有 skinanalysisResult 目录,内含 score_info.json 和所有检测结果图片。用 format: json 时,results.output 会把评分直接写在响应体里。


  • 请求字段速查
字段必填说明
src_file_id / src_file_url是(二选一)输入图片,规则同 BasicRunTaskV2
dst_actions是要么全是 HD 项目,要么全是 SD 项目——不能混用
format否zip(默认)| json——两者的响应结构不同
pf_camera_kit否V2.1 新增;脸部轮廓与五官定位
miniserver_args否蒙版叠加,以及 HD 毛孔/皱纹的底图控制项
advanced_report否传了就出报告;{} 表示全部用默认值;不传就没有报告
product_recommendation否传了就出推荐;需要 catalog_id

分辨率。 所有输出图片的长边都限制在 2560 px 以内,输入图片会自动缩放。若 enable_mask_overlay 为 false,您拿到的是原始蒙版 .png,需要自行合成——请先确认输入图片的分辨率,长边超过 2560 px 时,按 2560 px 来规划您的显示尺寸。