Python client
Python SDK
| 目標讀者 TA | Python/ML 工程師 |
|---|---|
| 官方文件能力 | 使用物件導向 clarifai 套件存取平台資源。 |
| 輸入 → 輸出 | 資源操作 → SDK 回應 |
| 執行環境 | Python client 連接 Clarifai。 |
| 本站選型評估 | 確認安裝版本支援的 Python 與作業系統。 |
| 本站建議驗證 | 固定安裝版本,先驗證一個授權讀取操作,再呼叫模型。 |
電腦視覺 · API / SDK
Clarifai
透過官方接口整合模型推論與視覺分析。
CLARIFAI / DEVELOPER FIELD GUIDE
公司/專案背景、十個技術入口,以及每份引用的實作分析。
2026-10-08 · 串接尚未實測
依官方公司或專案自述撰寫的原創概要;完整原文請見來源。
| 起源 | 由 Matthew Zeiler 於 2013 年創立。 |
|---|---|
| 定位 | 協助團隊建立、分享與執行企業 AI 的平台。 |
| 生命週期 | 涵蓋資料集準備、模型訓練與部署。 |
| 公司資訊 | 官方 About 提供領導團隊、投資者與產業評比資訊。 |
| 適用角色 | 進行 AI 供應商初選的採購、合作夥伴與產品負責人。 |
|---|---|
| 本站評估 | 用定位與公司背景判斷初步適配度;另行取得專案部署、支援與商務條件。 |
本輪核對官方頁的搜尋索引摘錄;部分原頁直接擷取失敗,串接前請於來源確認現行版本與條件。
依整合任務精選十項技術入口,不是官方排名。
| 接口 | 用途與 TA |
|---|---|
| 01 · Python SDKPython client | 使用物件導向 clarifai 套件存取平台資源。Python/ML 工程師 |
| 02 · Node.js SDKTypeScript / Node.js client | 使用 clarifai-nodejs 以型別化介面存取平台。Node.js/後端工程師 |
| 03 · gRPC clientsTyped RPC clients | 使用官方語言 client 與 Protobuf 訊息。後端/多語言平台團隊 |
| 04 · REST APIHTTPS / JSON interface | 不依賴特定語言 SDK,直接以 HTTPS 呼叫平台。後端/整合團隊 |
| 05 · Clarifai CLITerminal tool | 使用 Python SDK 附帶的 CLI 執行平台工作。MLOps/平台工程師 |
| 06 · Workflow inferenceMulti-step inference API | 將相容輸入送入工作流程並取得模型輸出。解決方案工程師/技術 PM |
| 07 · Input upload APIData ingestion API | 上傳影像、文字、音訊或視訊供平台處理。資料工程/標註團隊 |
| 08 · Dataset versionsDataset management API | 建立資料集及版本快照,支援可重複的迭代。ML/資料維運團隊 |
| 09 · Model deploymentDedicated compute tooling | 透過 CLI 或平台將模型部署至選定運算資源。MLOps/基礎設施負責人 |
| 10 · Postman collectionREST exploration tool | 檢視依模型、輸入、工作流程與運算分類的請求。QA/API 評估者 |
能力摘要依據官方文件;限制與建議測試為本站工程評估。
Python client
| 目標讀者 TA | Python/ML 工程師 |
|---|---|
| 官方文件能力 | 使用物件導向 clarifai 套件存取平台資源。 |
| 輸入 → 輸出 | 資源操作 → SDK 回應 |
| 執行環境 | Python client 連接 Clarifai。 |
| 本站選型評估 | 確認安裝版本支援的 Python 與作業系統。 |
| 本站建議驗證 | 固定安裝版本,先驗證一個授權讀取操作,再呼叫模型。 |
TypeScript / Node.js client
| 目標讀者 TA | Node.js/後端工程師 |
|---|---|
| 官方文件能力 | 使用 clarifai-nodejs 以型別化介面存取平台。 |
| 輸入 → 輸出 | 應用請求 → SDK 回應 |
| 執行環境 | 伺服器端 Node.js 應用。 |
| 本站選型評估 | 瀏覽器介面應呼叫自有後端;PAT 不得進入前端程式包。 |
| 本站建議驗證 | 驗證正式建置成功,並確認瀏覽器無法取得 PAT。 |
Typed RPC clients
| 目標讀者 TA | 後端/多語言平台團隊 |
|---|---|
| 官方文件能力 | 使用官方語言 client 與 Protobuf 訊息。 |
| 輸入 → 輸出 | 型別化請求 → 型別化回應或串流 |
| 執行環境 | 具備相容 gRPC 傳輸的後端。 |
| 本站選型評估 | 在實際託管環境確認 HTTP/2、代理與截止時間。 |
| 本站建議驗證 | 測試請求取消、超時與連線復原。 |
HTTPS / JSON interface
| 目標讀者 TA | 後端/整合團隊 |
|---|---|
| 官方文件能力 | 不依賴特定語言 SDK,直接以 HTTPS 呼叫平台。 |
| 輸入 → 輸出 | 經認證 JSON 請求 → JSON 回應 |
| 執行環境 | 自有後端呼叫 api.clarifai.com。 |
| 本站選型評估 | 傳輸成功本身不足以確認應用層結果。 |
| 本站建議驗證 | 同時檢查 HTTP 與供應商狀態,拒絕未預期的回應結構。 |
Terminal tool
| 目標讀者 TA | MLOps/平台工程師 |
|---|---|
| 官方文件能力 | 使用 Python SDK 附帶的 CLI 執行平台工作。 |
| 輸入 → 輸出 | CLI 指令與環境 → 操作結果 |
| 執行環境 | 開發工作站或受控 CI 環境。 |
| 本站選型評估 | 任何變更資源操作前,先確認目前使用者與 app。 |
| 本站建議驗證 | 記錄 CLI 版本與選定環境,在測試 app 演練。 |
Multi-step inference API
| 目標讀者 TA | 解決方案工程師/技術 PM |
|---|---|
| 官方文件能力 | 將相容輸入送入工作流程並取得模型輸出。 |
| 輸入 → 輸出 | 文字/影像輸入 → 工作流程結果 |
| 執行環境 | 選定工作流程與其模型執行環境。 |
| 本站選型評估 | 各節點輸出型態不同;應確認目標節點,不能假定最後一個必然正確。 |
| 本站建議驗證 | 以已知預期結果測試各節點與完整流程。 |
Data ingestion API
| 目標讀者 TA | 資料工程/標註團隊 |
|---|---|
| 官方文件能力 | 上傳影像、文字、音訊或視訊供平台處理。 |
| 輸入 → 輸出 | 經授權媒體 → 輸入紀錄與處理狀態 |
| 執行環境 | 資料上傳至 Clarifai 平台。 |
| 本站選型評估 | 接受上傳與完成索引是不同狀態。 |
| 本站建議驗證 | 追蹤等待中輸入直到終態,測試無法存取的網址與重複輸入。 |
Dataset management API
| 目標讀者 TA | ML/資料維運團隊 |
|---|---|
| 官方文件能力 | 建立資料集及版本快照,支援可重複的迭代。 |
| 輸入 → 輸出 | 選定輸入紀錄 → 具識別碼的資料集版本 |
| 執行環境 | 限定於 app 的平台資料資源。 |
| 本站選型評估 | 訓練與評估樣本分離,記錄確切版本。 |
| 本站建議驗證 | 版本變更前後核對筆數與成員。 |
Dedicated compute tooling
| 目標讀者 TA | MLOps/基礎設施負責人 |
|---|---|
| 官方文件能力 | 透過 CLI 或平台將模型部署至選定運算資源。 |
| 輸入 → 輸出 | 模型與運算設定 → 部署 |
| 執行環境 | 已配置的運算基礎設施。 |
| 本站選型評估 | 部署可能建立計費資源,需確認硬體、副本數與移除流程。 |
| 本站建議驗證 | 記錄部署識別、就緒狀態、冷啟動延遲與資源清理。 |
REST exploration tool
| 目標讀者 TA | QA/API 評估者 |
|---|---|
| 官方文件能力 | 檢視依模型、輸入、工作流程與運算分類的請求。 |
| 輸入 → 輸出 | 設定請求 → 可檢視的 HTTP 回應 |
| 執行環境 | 具備授權 API 環境的 Postman client。 |
| 本站選型評估 | 集合包含寫入與刪除操作,應先選定需要的讀取或推論請求。 |
| 本站建議驗證 | 憑證使用私密變數,匯出集合前移除。 |
| TA | 後端/平台負責人:了解帳號層級憑證與資源存取。 |
|---|---|
| 本站驗證建議 | 使用環境機密值;首次呼叫前確認 user/app 範圍。 |
| TA | 後端/QA:區分成功、失敗、節流與等待狀態。 |
|---|---|
| 本站驗證建議 | 也檢查內層輸出狀態,不得把部分失敗當作空的成功結果。 |
| TA | 應用工程師:將供應商回應轉成穩定內部契約。 |
|---|---|
| 本站驗證建議 | 保留請求、模型、版本識別碼;不記錄憑證或私密媒體。 |
| TA | 模型整合者:選擇符合模型輸入輸出的操作。 |
|---|---|
| 本站驗證建議 | 下方範例僅涵蓋影像概念分類;框選或生成文字需另設轉接器。 |
04 / INPUT · EXPECTED OUTPUT · ACCEPTANCE
單張影像概念分類;偵測框、生成文字與工作流程需另設轉接器。
起始範例 v1.0.0 · 僅離線樣本測試 · 尚未實際串接供應商
使用 Python 3 標準函式庫。在本地設定 CLARIFAI_PAT、CLARIFAI_USER_ID、CLARIFAI_APP_ID、CLARIFAI_MODEL_ID、CLARIFAI_MODEL_VERSION 與 IMAGE_PATH;模型需支援影像概念分類。另存為 clarifai_smoke.py,執行 python clarifai_smoke.py。請求設有 30 秒 socket 逾時;正式使用前另加程序整體截止時間。
憑證僅交由本機或伺服器端的認證設定管理。執行此範例會將影像送至供應商雲端,並可能消耗帳號用量。
"""Smart Tools starter: one versioned Clarifai image concept classifier."""
import base64
import json
import math
import os
import sys
from datetime import datetime, timezone
from pathlib import Path
from time import monotonic
from urllib.error import HTTPError, URLError
from urllib.parse import quote
from urllib.request import Request, urlopen
class ProviderFailure(Exception):
pass
def normalize(raw):
if not isinstance(raw, dict) or raw.get('status', {}).get('code') != 10000:
raise ProviderFailure()
outputs = raw.get('outputs')
if not isinstance(outputs, list) or len(outputs) != 1:
raise ValueError('unexpected_schema')
output = outputs[0]
if output.get('status', {}).get('code') != 10000:
raise ProviderFailure()
concepts = output.get('data', {}).get('concepts')
if not isinstance(concepts, list):
raise ValueError('unexpected_schema')
items = []
for concept in concepts:
score = concept.get('value')
if not isinstance(concept.get('name'), str) or type(score) not in (int, float) or not math.isfinite(score) or not 0 <= score <= 1:
raise ValueError('unexpected_schema')
items.append({'label': concept['name'], 'score': score})
return items
def run():
start = monotonic()
result = {'schema_version': '1.0.0', 'provider': 'Clarifai', 'status': 'error',
'model_version': None, 'data': None, 'error': None,
'captured_at': datetime.now(timezone.utc).isoformat()}
try:
keys = ('CLARIFAI_PAT', 'CLARIFAI_USER_ID', 'CLARIFAI_APP_ID', 'CLARIFAI_MODEL_ID', 'CLARIFAI_MODEL_VERSION', 'IMAGE_PATH')
cfg = {key: os.environ[key] for key in keys}
if not all(cfg.values()):
raise ValueError('configuration')
content = Path(cfg['IMAGE_PATH']).read_bytes()
if not content or len(content) > 5 * 1024 * 1024:
raise ValueError('starter_image_limit')
# 5 MiB is this starter's local cap, not a quoted provider limit.
model, revision = quote(cfg['CLARIFAI_MODEL_ID'], safe=''), quote(cfg['CLARIFAI_MODEL_VERSION'], safe='')
result['model_version'] = cfg['CLARIFAI_MODEL_VERSION']
payload = {'user_app_id': {'user_id': cfg['CLARIFAI_USER_ID'], 'app_id': cfg['CLARIFAI_APP_ID']},
'inputs': [{'data': {'image': {'base64': base64.b64encode(content).decode('ascii')}}}]}
request = Request(f'https://api.clarifai.com/v2/models/{model}/versions/{revision}/outputs',
data=json.dumps(payload).encode(), method='POST',
headers={'Authorization': 'Key ' + cfg['CLARIFAI_PAT'], 'Content-Type': 'application/json'})
with urlopen(request, timeout=30) as response:
raw = json.load(response)
result['data'] = normalize(raw)
result['status'] = 'ok'
except HTTPError as exc:
result['error'] = 'http_' + str(exc.code)
except (URLError, TimeoutError):
result['error'] = 'transport_failure'
except ProviderFailure:
result['error'] = 'provider_status_failure'
except (KeyError, OSError):
result['error'] = 'configuration'
except (ValueError, TypeError, AttributeError):
result['error'] = 'configuration_or_schema'
result['elapsed_ms'] = round((monotonic() - start) * 1000)
return result
if __name__ == '__main__':
output = run()
print(json.dumps(output, ensure_ascii=False, allow_nan=False))
sys.exit(0 if output['status'] == 'ok' else 1)
| 輸出契約 | status 為 ok 或 error;成功時 data 為驗證過的陣列(可為空),失敗時為 null;error 僅保留去敏後分類。這是本站契約,不是供應商原始格式。 |
|---|---|
| 可重現性 | 比較結果前記錄模型/版本、SDK 或 Python 版本、樣本識別與環境;原始媒體另存於經授權儲存空間。 |
| 失敗處理 | 範例不自動重試;先修正憑證、權限與輸入。正式使用前設計有限重試與整體截止時間;不可盲目重送建立資源的請求。 |
| 建議驗收門檻 | 以 20 張代表性授權影像,加上無效輸入、缺少憑證與強制逾時情境測試;要求零筆隱藏失敗。先與產品負責人約定延遲、缺陷召回率與誤報門檻,再量測;通過此冒煙測試不等於正式驗收。 |
| 成本/資料決策 | 兩個範例都會將影像位元組送至供應商雲端。確認允許資料、保存期限、區域及帳號現行費用;先量測小樣本用量再推估,本頁尚無實測成本或延遲數據。 |
可一併評估的路線: Roboflow
開發評估
開發構想規格・串接尚未實測
接口能力依據官方文件或程式庫;以下產品方向、輸入、交付與驗收條件則是我們的開發評估。
確認存取後,用少量真實樣本測試一個有文件的操作。此為開發判斷,不是交期估算。
記錄產品瀏覽、官方文件點擊、規格下載與技術 Hub 點擊。這些是事件次數,不等於獨立人數或已完成串接。
本次可行性評估依實作條件判斷;尚未給定流量排名或交期承諾。