tencent cloud

Tencent Cloud EdgeOne

ドキュメントTencent Cloud EdgeOneユースケース朱雀AIGC検出モデルの呼び出し

朱雀AIGC検出モデルの呼び出し

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-16 12:04:56
AI翻訳
本文書では、Tencent Cloud EdgeOne Makers Model Proを通じて朱雀(Zhuque)AIGC検出モデルを呼び出し、テキストと画像に対してAI生成コンテンツ認識(CR)を実行する方法を説明します。テキスト検出(zhuque-text)と画像検出(zhuque-image)の2種類の機能をカバーし、同期と非同期の2種類の呼び出しモードに対応しています。本文中のインターフェースパス、パラメータ、レスポンスはすべて本番環境でのエンドツーエンド連携テストの結果に基づいています。

概要

朱雀は、TencentがAIGCコンテンツ検出に向けて提供する機能であり、テキストまたは画像がAIによって生成されたかどうかを判断できます。EdgeOne AIゲートウェイを介して統一的に接続した後、以下の2種類のモデルを使用できます:
Provider名
機能
代表的な用途
zhuque-text
AIGCテキスト検出
テキストがAIによって生成されたかどうかを判断し、セグメントTagと割合を提供します。AIコンテンツの審査、オリジナリティ検出などのシナリオに適用されます。
zhuque-image
AIGC画像検出
画像がAIによって生成されたかどうかを判断し、信頼度を提供します。AI画像コンテンツの審査、著作権保護などのシナリオに適用されます。
説明:
この機能はエンタープライズ版プランでのみ利用可能です。ご利用が必要な場合は、お問い合わせの上、有効化してください。

料金説明

朱雀モデルを呼び出すと料金が発生します。課金単位はEIU(Edge Inference Unit)です。具体的な単価、各呼び出しのEIU消費量と課金ルールについては、エッジ推論用量単位をご参照ください。
費用はお客様のTencent Cloudアカウントに発生します。お客様はTencent Cloud料金センターにログインして、請求書と利用量の明細を確認できます。

操作手順

ステップ1:ゲートウェイの作成

1. EdgeOneコンソールにログインし、EdgeOneリソースの有無に応じて、以下の対応する入口を選択してください:
EdgeOneリソースがまったくない場合:コンソールのホームページで一つの入口で複数モデルをインテリジェントにスケジューリングカードを見つけ、プロジェクト作成をクリックすると、AIゲートウェイ作成フローに直接進みます。



すでにEdgeOneリソースをお持ちの場合:コンソールに入るとページはすでにMakers Model Proに移動しています。プロジェクト作成をクリックしてください。



2. 作成完了後、システムによって割り当てられたゲートウェイドメイン名とAPI Keyを記録してください。ゲートウェイドメイン名とAPI Keyは大切に保管してください。現在API Keyの変更はサポートされておらず、紛失した場合はゲートウェイを再度作成する必要があります。




ステップ2:モデルの呼び出し

同期呼び出しと非同期呼び出しの違い

朱雀は同期と非同期の2種類の呼び出しモードに対応しています。呼び出しモードはリクエストHeaderによって決定されます。業務シナリオに応じて選択してください:
ディメンション
同期モード
非同期モード
リクエスト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にAPI Keyを含める必要があります:
Header
値
説明
Authorization
Bearer <API_KEY>
EdgeOne AIゲートウェイから取得したAPIキー
Content-Type
application/json
リクエストボディの形式
説明:
zhuque-imageを呼び出す際、画像は300×300ピクセルより大きい必要があります。サイズは10 MBに制限され、対応形式はjpg、png、webpです。

同期呼び出し

同期モードはデフォルトモードです。1回のリクエストで結果が返されるため、ポーリングは不要です。
テキスト検出(zhuque-text)
リクエストパラメータ:
パラメータ
位置
タイプ
必須
説明
text
Body
string
はい
検出対象のテキスト内容
is_merge
Body
bool
いいえ
段落を結合するかどうかです。デフォルトはtrueです。falseに設定した場合、段落ごとに個別の信頼度が出力されます。
curl例:
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
エラー情報です。正常時は空です。
画像検出(zhuque-image)
リクエストパラメータ
パラメータ
位置
タイプ
必須
説明
imageUrl
Body
string
いずれかを選択してください。
公衆網からアクセス可能な画像URL
imageBase64
Body
string
いずれかを選択してください。
画像のBase64エンコード内容
curl例:
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
エラー情報です。正常時は空です。
Python同期呼び出し例:
import json
import urllib.request

GATEWAY = "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))

非同期呼び出し

非同期モードはバッチ送信や長時間実行タスクに適しており、送信と照会の2つのステップに分かれます。送信時にはリクエストに追加でHeader Work-Mode: asyncを含める必要があります。
タスクを送信します
以下にテキストと画像の送信例をそれぞれ示します。両者はリクエストパス内のproviderとリクエストボディのフィールドのみが異なり、その他の手順は同じです。
curl例(テキスト):
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例(画像):
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例:
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)フィールド:
Status
意味
QUEUED / PROCESSING
タスクが進行中です。ポーリングを継続してください。
SUCCEEDED
タスクが成功しました。Outputフィールドはビジネス結果です。
FAILED
タスクが失敗しました。ポーリングを停止し、エラーとして処理してください。
Python非同期呼び出し例:
import json
import time
import urllib.request

GATEWAY = "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 result
if 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を含める必要があります。
ポーリング間隔は1秒を推奨します。500ms未満の高頻度ポーリングは避けてください。ゲートウェイと上流に負荷をかけないようにするためです。
同期モードのタイムアウトと再試行
同期モードは推論サイクル全体にわたってHTTP接続をブロックします。クライアントのタイムアウトを十分に大きく設定してください(30秒以上を推奨)。
長文や大きな画像の場合、同期ブロックが懸念される場合は、接続タイムアウトのリスクを回避するために非同期モードへの切り替えを推奨します。
冪等性に関する注意:失敗時の再試行により重複した推論が発生する可能性があります。業務側で重複排除または流量制限を行ってください。

よくあるエラーコード

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
-
上流推論サービスの異常またはタイムアウトです。
しばらくしてから再試行してください。異常が続く場合はお問い合わせください。



ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック