Skip to content

專案 (Project)

建立專案 (/create-project)

使用範例

建立一個 RECOMMEND_ITEMS_TO_USER 類別的專案,呼叫 API:

curl --request POST 'https://api.raas.kklab.com/create-project' \
--header 'Authorization: Bearer $TOKEN' \
--header 'APIKey: $API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "example-project",
    "project_type": "RECOMMEND_ITEMS_TO_USER",
    "user_dataset_id": "$USER_DATASET_ID",
    "item_dataset_id": "$ITEM_DATASET_ID",
    "event_dataset_id": "$EVENT_DATASET_ID",
    "target_event_type": "view"
}'
import json
import requests
from pprint import pprint

headers = create_headers(scopes=["/create-project"])

url = "https://api.raas.kklab.com/create-project"

data={
    "name": "example-project",
    "project_type": "RECOMMEND_ITEMS_TO_USER",
    "user_dataset_id": "$USER_DATASET_ID",
    "item_dataset_id": "$ITEM_DATASET_ID",
    "event_dataset_id": "$EVENT_DATASET_ID",
    "target_event_type": "view"
}

response = requests.request("POST", url, headers=headers, data=json.dumps(data))

pprint(response.json())

回傳值:

{
    "project_id": "$PROJECT_ID",
    "name": "example-project",
    "project_type": "RECOMMEND_ITEMS_TO_USER",
    "user_dataset_id": "$USER_DATASET_ID",
    "item_dataset_id": "$ITEM_DATASET_ID",
    "event_dataset_id": "$EVENT_DATASET_ID",
    "target_event_type": "view",
    "serving_uri": "$SERVING_URI",
    "deployment_ts": null,
    "generator_model_id": null,
    "ranker_model_id": null
}

欄位說明

  • name: 專案名稱,僅供開發者辨識使用,無其他用途。
  • project_type: 專案類別。
  • user_dataset_id: 訓練模型所使用的使用者資料集。
  • item_dataset_id: 訓練模型所使用的商品資料集。
  • event_dataset_id: 訓練模型所使用的事件資料集。
  • target_event_type: 對事件資料集的此類事件類別進行模型訓練優化。
  • serving_uri: 呼叫此專案的推薦 API 時使用的網址。
  • deployment_ts: 模型部署的時間,未進行模型部署前預設為空值。
  • generator_model_id: 負責產生推薦結果的模型,未進行模型部署前預設為空值。
  • ranker_model_id: 負責對 generator_model 產生的結果再排序的模型,未進行模型部署前預設為空值。

專案類型 (project_type)

Recommend HQ 目前支援以下專案類別:

  • RECOMMEND_ITEMS_TO_USER: 對使用者推薦商品。
  • RECOMMEND_ITEMS_TO_ITEM: 對商品推薦商品。

修改專案設定 (/update-project)

使用範例

呼叫 API:

curl --request PUT 'https://api.raas.kklab.com/update-project' \
--header 'Authorization: Bearer $TOKEN' \
--header 'APIKey: $API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "project_id": "$PROJECT_ID",
    "name": "new project name"
}'
import json
import requests
from pprint import pprint

headers = create_headers(scopes=["/update-project"])

url = "https://api.raas.kklab.com/update-project"

data={
    "project_id": "$PROJECT_ID",
    "name": "new project name",
}

response = requests.request("PUT", url, headers=headers, data=json.dumps(data))

pprint(response.json())

回傳值:

{
    "project_id": "$PROJECT_ID",
    "name": "new project name",
    "project_type": "RECOMMEND_ITEMS_TO_USER",
    "user_dataset_id": "$USER_DATASET_ID",
    "item_dataset_id": "$ITEM_DATASET_ID",
    "event_dataset_id": "$EVENT_DATASET_ID",
    "target_event_type": "view",
    "serving_uri": "$SERVING_URI",
    "deployment_ts": null,
    "generator_model_id": null,
    "ranker_model_id": null
}

可修改欄位

  • name

取得單一專案設定 (/get-project)

使用範例

呼叫 API:

curl --request GET 'https://api.raas.kklab.com/get-propject?project_id=$PROJECT_ID' \
--header 'Authorization: Bearer $TOKEN' \
--header 'APIKey: $API_KEY'
import requests
from pprint import pprint

headers = create_headers(scopes=["/get-propject"])

url = "https://api.raas.kklab.com/get-project"

params = {
    "project_id": "$PROJECT_ID"
}

response = requests.request("GET", url, headers=headers, params=params)

pprint(response.json())

回傳值:

{
    "project_id": "$PROJECT_ID",
    "name": "example-project",
    "project_type": "RECOMMEND_ITEMS_TO_USER",
    "user_dataset_id": "$USER_DATASET_ID",
    "item_dataset_id": "$ITEM_DATASET_ID",
    "event_dataset_id": "$EVENT_DATASET_ID",
    "target_event_type": "view",
    "serving_uri": "$SERVING_URI",
    "deployment_ts": null,
    "generator_model_id": null,
    "ranker_model_id": null
}

列出所有專案 (/list-projects)

使用範例

呼叫 API:

curl --request GET 'https://api.raas.kklab.com/list-projects' \
--header 'Authorization: Bearer $TOKEN' \
--header 'APIKey: $API_KEY'
import requests
from pprint import pprint

headers = create_headers(scopes=["/list-projects"])

url = "https://api.raas.kklab.com/list-projects"

response = requests.request("GET", url, headers=headers)

pprint(response.json())

回傳值:

{
    "projects": [
        {
            "project_id": "$PROJECT_ID",
            "name": "example-project",
            "project_type": "RECOMMEND_ITEMS_TO_USER",
            "user_dataset_id": "$USER_DATASET_ID",
            "item_dataset_id": "$ITEM_DATASET_ID",
            "event_dataset_id": "$EVENT_DATASET_ID",
            "target_event_type": "view",
            "serving_uri": "$SERVING_URI",
            "deployment_ts": null,
            "generator_model_id": null,
            "ranker_model_id": null
        }
    ]
}

刪除專案 (/delete-project)

使用範例

呼叫 API:

curl --request DELETE 'https://api.raas.kklab.com/delete-project' \
--header 'Authorization: Bearer $TOKEN' \
--header 'APIKey: $API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "project_id": "$PROJECT_ID"
}'
import json
import requests
from pprint import pprint

headers = create_headers(scopes=["/delete-project"])

url = "https://api.raas.kklab.com/delete-project"

data={
    "project_id": "$PROJECT_ID",
}

response = requests.request("DELETE", url, headers=headers, data=json.dumps(data))

pprint(response.json())

回傳值:

{
    "project_id": "$PROJECT_ID",
    "name": "example-project",
    "project_type": "RECOMMEND_ITEMS_TO_USER",
    "user_dataset_id": "$USER_DATASET_ID",
    "item_dataset_id": "$ITEM_DATASET_ID",
    "event_dataset_id": "$EVENT_DATASET_ID",
    "target_event_type": "view",
    "serving_uri": "$SERVING_URI",
    "deployment_ts": null,
    "generator_model_id": null,
    "ranker_model_id": null
}

API 回傳該專案被刪除前的最後設定。

限制與注意事項

  • 僅能刪除沒有部署模型的專案,如果欲刪除已部署模型的專案,需要先下架模型。
  • 專案一但被刪除,屬於該專案的演算法、模型等資料,也將一併刪除。