跳转到内容

端點總覽

這是什麼。 把您的產品目錄交給一次精準的肌膚檢測來比對。上傳您在售的護膚產品及其說明,呼叫時傳入目錄的 id,端點就會在 llm_results.json 裡,為每一項偵測到的肌膚困擾回傳最契合的產品。

它與一般 LLM 推薦的差別在於輸入。一般 LLM 靠機率與先驗知識推薦;Perfect AI 肌膚檢測會先產出科學、量化的肌膚指標與真實的偵測遮罩,模型再把產品對照實測出來的肌膚狀況——可靠、快速、說得出理由,而不是統計意義上的猜測。

參數

欄位類型必填預設值說明
catalog_idstring是—取自「上傳產品目錄」。該目錄必須為 ready 狀態,且屬於您的帳號。
top_ninteger否3每一項肌膚困擾要推薦的產品數。最小 1;不得超過目錄的 sku_count。
  • 前置作業——上傳您的產品目錄

產品目錄就是肌膚檢測進行推薦時所用的產品清單。上傳一次,記住它的 catalog_id,之後每次肌膚檢測都傳入這個 id。目錄歸屬您的帳號,而不是某一個 API key——帳號下的每個 key(包含專案 key)看到的都是同一批目錄,輪換或刪除 key 都不會影響它們。上傳與儲存目錄是免費的。

目錄檔案需求

項目值
格式含標題列的 CSV
編碼UTF-8,可含或不含 BOM(Excel 的「CSV UTF-8」會加上 BOM)
最大檔案大小5 MB
最大 SKU 數量除檔案大小外無限制
必要欄位product_id、product_name、product_description

其他欄位會被忽略,但仍計入 5 MB 限制。含逗號或換行的值請加上引號。每個非空的資料列計為一個 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 Analysis with Product Recommendation
curl -sS -X POST "$BASE_URL/s2s/v2.1/task/skin-analysis-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"
    ],
    "format": "zip",
    "pf_camera_kit": true,
    "product_recommendation": {
      "catalog_id": "1662043585118399001",
      "top_n": 3
    }
  }'

驗證。 下列每種情況都會回傳 400 與 error_code: InvalidParameters,而且不扣點數:

原因error 訊息
有 product_recommendation 卻沒有 catalog_idcatalog_id is required when product_recommendation is provided.
目錄不存在、已被刪除,或屬於其他帳號No catalog was found with this catalog_id.
目錄上傳時驗證失敗(status: failed)This catalog failed validation when it was uploaded and can't be used. Upload the catalog again.
top_n 不是至少為 1 的整數(常見的 InvalidParameters 狀況)
top_n 大於目錄中的產品數量product_recommendation.top_n can't be more than the 3 products in this catalog.

最後一則訊息是動態產生的——它會報出目錄實際的 sku_count。請從「列出目錄」讀取 sku_count,在您的端把 top_n 收斂到它的範圍內。


  • 輪詢取得報告與推薦

每次呼叫都會立刻回傳一個 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-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-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——兩者的回應 schema 不同
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 來設定您的顯示尺寸。