Provider名 | 機能 | 代表的な用途 |
zhuque-text | AIGCテキスト検出 | テキストがAIによって生成されたかどうかを判断し、セグメントTagと割合を提供します。AIコンテンツの審査、オリジナリティ検出などのシナリオに適用されます。 |
zhuque-image | AIGC画像検出 | 画像がAIによって生成されたかどうかを判断し、信頼度を提供します。AI画像コンテンツの審査、著作権保護などのシナリオに適用されます。 |



ディメンション | 同期モード | 非同期モード |
リクエストHeader | 特殊なHeaderはありません。 | Work-Mode: async |
クエリHeader | 不要 | Work-Infer-Action: query |
リクエスト回数 | 1 回 | 1回の送信 + N回の照会 |
レスポンス内容 | ビジネス結果JSONを直接返します。 | 外層は {TaskId, Status, Output} を返します。そのうち Output は文字列化されたJSONであり、クライアント側で二次解析が必要です。 |
クライアント側のブロッキング | 推論時間全体にわたってブロックされます。 | 送信は即時に返却され、照会は非同期で実行できます。 |
想定所要時間(参考) | テキストは約10秒以内、画像は約5秒以内です。 | 送信は1秒未満です。結果は通常1~5秒以内に準備完了となります。 |
選定の推奨事項 | リアルタイム単一リクエスト、低同時実行、コードのシンプルさ優先。 | バッチタスク、長時間処理、クライアント側のブロッキングを回避したい場合に適しています。 |
項目 | 値 |
ゲートウェイドメイン | <your-gateway-domain>(ゲートウェイの作成後に取得します) |
プロトコル | HTTPS |
テキスト検出ルート | /v1/providers/zhuque-text/classify |
画像検出ルート | /v1/providers/zhuque-image/classify |
Header | 値 | 説明 |
Authorization | Bearer <API_KEY> | EdgeOne AIゲートウェイから取得したAPIキー |
Content-Type | application/json | リクエストボディの形式 |
zhuque-imageを呼び出す際、画像は300×300ピクセルより大きい必要があります。サイズは10 MBに制限され、対応形式はjpg、png、webpです。パラメータ | 位置 | タイプ | 必須 | 説明 |
text | Body | string | はい | 検出対象のテキスト内容 |
is_merge | Body | bool | いいえ | 段落を結合するかどうかです。デフォルトは trueです。falseに設定した場合、段落ごとに個別の信頼度が出力されます。 |
curl -X POST "https://<your-gateway-domain>/v1/providers/zhuque-text/classify" \\-H "Authorization: Bearer <API_KEY>" \\-H "Content-Type: application/json" \\-d '{"text": "hello world","is_merge": true}'
{"status": "success","softmax_confidence": 0.9274,"ratio_confidence": 1.0,"labels_ratio": {"0": 0.0001, "1": 0.0001, "2": 0.9999},"segment_labels": [{"text": "hello world", "label": 2, "conf": 0.9274, "order": 1, "position": [0, 11]}],"msg": ""}
フィールド | タイプ | 説明 |
status | string | 推論状態、 successは成功を表します。 |
labels_ratio | object | 各タイプのコンテンツの割合です。 "0"は人間(Human)コンテンツの割合、"1"はAIコンテンツの割合、"2"はAI疑いコンテンツの割合です。値はすべて[0, 1]の範囲です。 |
ratio_confidence | float | 全体に占めるAI疑いコンテンツの割合です。値が大きいほどAIである可能性が高く、小さいほど人間によるものである可能性が高くなります。 |
segment_labels | array | 各セグメントのタイプタグとAI信頼度です。 |
softmax_confidence | float | 全体のAI信頼度です。値が大きいほどAIである可能性が高く、小さいほど人間によるものである可能性が高くなります。 |
msg | string | エラー情報です。正常時は空です。 |
パラメータ | 位置 | タイプ | 必須 | 説明 |
imageUrl | Body | string | いずれかを選択してください。 | 公衆網からアクセス可能な画像URL |
imageBase64 | Body | string | いずれかを選択してください。 | 画像のBase64エンコード内容 |
curl -X POST "https://<your-gateway-domain>/v1/providers/zhuque-image/classify" \\-H "Authorization: Bearer <API_KEY>" \\-H "Content-Type: application/json" \\-d '{"imageUrl": "https://example.com/path/to/image.jpg"}'
{"status": "success","data": {"confidence": 0.1484},"message": ""}
フィールド | タイプ | 説明 |
status | string | 推論状態、 successは成功を表します。 |
data.confidence | number | この画像がAIによって生成された信頼度です。値の範囲は[0, 1]で、1に近いほどAIによって生成された可能性が高くなります。 |
message | string | エラー情報です。正常時は空です。 |
import jsonimport urllib.requestGATEWAY = "https://<your-gateway-domain>"API_KEY = "<API_KEY>"HEADERS = {"Authorization": f"Bearer {API_KEY}","Content-Type": "application/json",}def classify_sync(provider: str, payload: dict) -> dict:req = urllib.request.Request(f"{GATEWAY}/v1/providers/{provider}/classify",data=json.dumps(payload).encode("utf-8"),headers=HEADERS,method="POST",)with urllib.request.urlopen(req, timeout=30) as resp:return json.loads(resp.read().decode("utf-8"))if __name__ == "__main__":text_result = classify_sync("zhuque-text", {"text": "hello world"})print("text =>", json.dumps(text_result, ensure_ascii=False, indent=2))img_result = classify_sync("zhuque-image",{"imageUrl": "https://example.com/path/to/image.jpg"},)print("image =>", json.dumps(img_result, ensure_ascii=False, indent=2))
Work-Mode: asyncを含める必要があります。curl -X POST "https://<your-gateway-domain>/v1/providers/zhuque-text/classify" \\-H "Authorization: Bearer <API_KEY>" \\-H "Work-Mode: async" \\-H "Content-Type: application/json" \\-d '{"text":"hello world"}'
curl -X POST "https://<your-gateway-domain>/v1/providers/zhuque-image/classify" \\-H "Authorization: Bearer <API_KEY>" \\-H "Work-Mode: async" \\-H "Content-Type: application/json" \\-d '{"imageUrl": "https://example.com/path/to/image.jpg"}'
{"TaskId": "s1-b9d37cd7-a778-4216-82c5-ea9f2c491c11"}
TaskIdを使用して結果をポーリングします。クエリリクエストにはHeader Work-Infer-Action: queryを含める必要があります。curl -X GET "https://<your-gateway-domain>/v1/providers/zhuque-text/query/<TaskId>" \\-H "Authorization: Bearer <API_KEY>" \\-H "Work-Infer-Action: query"
{"TaskId": "s1-b9d37cd7-a778-4216-82c5-ea9f2c491c11","Status": "SUCCEEDED","Output": "{\\"labels_ratio\\":{\\"0\\":0.0001,\\"1\\":0.0001,\\"2\\":0.9999},\\"ratio_confidence\\":1,\\"segment_labels\\":[{\\"conf\\":0.9274,\\"label\\":2,\\"order\\":1,\\"position\\":[0,11],\\"text\\":\\"hello world\\"}],\\"softmax_confidence\\":0.9274,\\"status\\":\\"success\\"}"}
{TaskId, Status, Output}に含まれます。そのうちOutputは文字列化されたJSONであり、クライアント側で再度JSON解析(json.loads / JSON.parse)を行う必要があります。同期モードにはこのカプセル化はありません。Status | 意味 |
QUEUED / PROCESSING | タスクが進行中です。ポーリングを継続してください。 |
SUCCEEDED | タスクが成功しました。 Outputフィールドはビジネス結果です。 |
FAILED | タスクが失敗しました。ポーリングを停止し、エラーとして処理してください。 |
import jsonimport timeimport urllib.requestGATEWAY = "https://<your-gateway-domain>"API_KEY = "<API_KEY>"AUTH = {"Authorization": f"Bearer {API_KEY}"}def classify_async(provider: str, payload: dict, poll_interval: float = 1.0) -> dict:submit_headers = {**AUTH, "Work-Mode": "async", "Content-Type": "application/json"}req = urllib.request.Request(f"{GATEWAY}/v1/providers/{provider}/classify",data=json.dumps(payload).encode("utf-8"),headers=submit_headers,method="POST",)with urllib.request.urlopen(req, timeout=15) as resp:task_id = json.loads(resp.read().decode("utf-8"))["TaskId"]query_headers = {**AUTH, "Work-Infer-Action": "query"}while True:req = urllib.request.Request(f"{GATEWAY}/v1/providers/{provider}/query/{task_id}",headers=query_headers,method="GET",)with urllib.request.urlopen(req, timeout=15) as resp:result = json.loads(resp.read().decode("utf-8"))status = result.get("Status")if status == "SUCCEEDED":result["Output"] = json.loads(result["Output"])return resultif status == "FAILED":raise RuntimeError(f"task failed: {result}")time.sleep(poll_interval)if __name__ == "__main__":print(json.dumps(classify_async("zhuque-text", {"text": "hello world"}), ensure_ascii=False, indent=2))
TaskIdを使用して/query/<TaskId>を呼び出してクエリを実行する必要があります。また、Header Work-Infer-Action: queryを含める必要があります。HTTP ステータスコード | エラー情報 | 意味 | 調査アドバイス |
401 | invalid api key | APIキーが誤っているか、または無効です。 | Authorization Header内のKeyが正しいかどうかを確認します。 |
403 | provider_not_allowed | このゲートウェイはこのプロバイダーを承認していません。 | provider名のスペルを確認してください( zhuque-textまたはzhuque-imageである必要があります)。 |
404 | - | パスまたはTaskIdが存在しません。 | URLに /v1/providers/プレフィックスが含まれているかどうかを確認してください。クエリ時にTaskIdが正しいかどうかを確認してください。 |
429 | - | レート制限がトリガーされました。 | 同時実行数を減らすか、リトライのバックオフを増やしてください。 |
5xx | - | 上流推論サービスの異常またはタイムアウトです。 | しばらくしてから再試行してください。異常が続く場合はお問い合わせください。 |
フィードバック