tencent cloud

边缘安全加速平台 EO

文档边缘安全加速平台 EO实践教程调用朱雀 AIGC 检测模型

调用朱雀 AIGC 检测模型

Download
聚焦模式
字号
最后更新时间: 2026-08-19 15:19:27
本文档介绍如何通过 腾讯云 EdgeOne Makers Model Pro 调用朱雀(Zhuque)AIGC 检测模型,对文本与图片进行 AI 生成内容识别,覆盖文本检测(zhuque-text)与图片检测(zhuque-image)两类能力,并支持同步与异步两种调用模式。文中接口路径、参数与响应均基于正式环境端到端联调结果。

概述

朱雀是腾讯面向 AIGC 内容检测的能力,可判断文本或图片是否由 AI 生成。通过 EdgeOne AI 网关统一接入后,您可以使用以下两类模型:
Provider 名称
能力
典型用途
zhuque-text
AIGC 文本检测
判断文本是否由 AI 生成,给出分段标签与占比。适用于 AI 内容审核、原创性检测等场景
zhuque-image
AIGC 图片检测
判断图片是否由 AI 生成,给出置信度。适用于 AI 图片内容审核、版权保护等场景
说明:
该功能仅对企业版套餐开放。如需使用,请 联系我们 开通。

费用说明

调用朱雀模型会产生费用,计费单位为 EIU(Edge Inference Unit),具体单价、每次调用的 EIU 消耗与计费规则,详见 边缘推理用量单元
费用将在您的腾讯云账号中产生,您可登录 腾讯云费用中心 查看账单与用量明细。

操作步骤

步骤一:创建网关

1. 登录 EdgeOne 控制台,根据您是否已有 EdgeOne 资源,选择以下对应入口:
若您无任何 EdgeOne 资源:在控制台首页找到 一个入口,智能调度多模型 卡片,单击 创建项目 ,直接进入创建 AI 网关的流程。



若您已有 EdgeOne 资源:进入控制台后页面已定位至 Makers Model Pro,单击创建项目即可。



2. 创建完成后,记录系统分配的 网关域名API Key。请妥善保存网关域名与 API Key,现不支持更换 API Key,遗失需重新创建网关。




步骤二:调用模型

同步调用与异步调用的区别

朱雀支持同步与异步两种调用模式,由请求 Header 决定,请根据业务场景选择:
维度
同步模式
异步模式
提交 Header
无特殊 Header
Work-Mode: async
查询 Header
不需要
Work-Infer-Action: query
请求次数
1 次
1 次提交 + N 次查询
响应内容
直接返回业务结果 JSON
外层返回 {TaskId, Status, Output},其中 Output 为字符串化 JSON,需客户端二次解析
客户端阻塞
整个推理时长全程阻塞
提交立即返回,查询可异步进行
典型耗时(参考)
文本约 10s 内、图片约 5s 内
提交 < 1s;结果通常 1~5s 内就绪
选型建议
实时单请求、低并发、代码简洁优先
批量任务、长耗时、不希望客户端阻塞

调用方式与鉴权

网关访问信息
项目
网关域名
<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 Key
Content-Type
application/json
请求体格式
说明:
调用 zhuque-image 时,图片需大于 300×300 像素,大小限制 10 MB,支持格式 jpg、png、webp。

同步调用

同步模式为默认模式,单次请求即可返回结果,无需轮询。
文本检测(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))

异步调用

异步模式适用于批量提交或长耗时任务,分为提交与查询两步。提交时需在请求中额外携带 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
轮询间隔建议 1s;避免低于 500ms 的高频轮询,以免对网关与上游造成压力。
同步模式超时与重试
同步模式在整个推理周期内会阻塞 HTTP 连接,请将客户端超时设置得足够大(建议 ≥ 30s)。
对于长文本或大图,若担心同步阻塞,建议改用异步模式以避免连接超时风险。
幂等性提示:失败重试可能产生重复推理,业务侧请自行去重或限流。

常见错误码

HTTP 状态码
错误信息
含义
排查建议
401
invalid api key
API Key 错误或失效
核对 Authorization Header 中的 Key 是否正确
403
provider_not_allowed
该网关未授权此 Provider
检查 provider 名称拼写(应为 zhuque-textzhuque-image
404
-
路径或 TaskId 不存在
检查 URL 是否包含 /v1/providers/ 前缀;查询时 TaskId 是否正确
429
-
触发限流
降低并发或增加重试退避
5xx
-
上游推理服务异常或超时
稍后重试;如持续异常请联系我们



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈