文识云

Python SDK

Python SDK

aigc-detect 是本站 AIGC 检测 API 的官方 Python 客户端:把提交、轮询、幂等重试与错误分类封装成 几行调用,底层就是 文档里这套 REST 接口。MIT 开源,源码在 GitHub,包发布在 PyPI。

最近更新:

安装

pip install aigc-detect

支持 Python 3.8+,仅依赖 requests。密钥在 用户中心 创建(形如 sk-zq-…),注册即有体验金。

想先验证 SDK 行为再接入:clone 仓库后 pip install -e .,再跑 python -m unittest discover -s tests -v——单元测试全部 mock 网络,不需要密钥与余额。

快速开始

文本与图片各一次调用,SDK 自动提交并轮询到出结果。字段语义(labels_ratio 的标签占比、 position 是段长不是结束下标)见 文本检测专题页。

from aigc_detect import AigcDetectClient

client = AigcDetectClient(api_key="sk-zq-你的密钥")

# 文本检测:自动轮询到出结果,无需手写 while 循环
task = client.detect_text("把待检测的文本粘在这里,支持中英文混排。", is_merge=False)
result = task.text_result()

print(f"整体 AI 置信度: {result.softmax_confidence}")
print(f"标签占比: {result.labels_ratio}")   # "0" 人工 / "1" AI / "2" 疑似 AI
for seg in result.segment_labels:
    start, length = seg.position          # [起始位置, 段长]
    print(f"[{seg.label_name}] {seg.text}")

# 图片检测:image_url 与 image_base64 二选一
task = client.detect_image(image_url="https://example.com/a.png")
print(task.image_result().confidence)      # AI 生成置信度

方法一览

方法说明
detect_text(text, is_merge=False)提交文本检测并等待结果。is_merge=False 时逐段出置信度。
detect_image(image_url=..., image_base64=...)提交图片检测并等待结果。两种入参二选一。
submit_text / submit_image只提交不等待,立即返回任务对象,适合自己控制轮询节奏。
get_task(task_id)查询任务状态与结果。幂等,可无限次调用。
wait_for_task(task_id)轮询直到终态,可设超时上限。
list_usage(limit, offset)分页查询调用记录,返回 total 便于翻页。
get_pricing()获取当前计价规则。

文本上限 20000 字符(按 Unicode 字符计);图片需大于 300×300 像素且不超过 10MB, 支持 jpg / png / webp——与直接调 HTTP 接口的限制一致,见 接口文档。

错误处理

错误码映射为异常类型,按业务场景分别捕获。最关键的一条:轮询超时≠任务失败, 任务仍在服务端,继续查询即可。

from aigc_detect import (
    AigcDetectClient, TaskFailedError, TaskTimeoutError,
)

client = AigcDetectClient(api_key="sk-zq-你的密钥")

try:
    task = client.detect_text("待检测文本")
except TaskFailedError as e:
    print(e.task_id, e.code)               # 如 "timeout",退款以资金流水为准
except TaskTimeoutError as e:
    ...                                     # 任务没丢:稍后 client.get_task(e.task_id)

# 不想让 failed 终态抛异常?传 raise_on_failure=False 自己处理
异常触发处理
InsufficientBalanceError402 余额不足未产生任务,充值后重新提交
RateLimitError429 触发限流按响应头的 Retry-After 等待后重试
TaskFailedError任务终态 failed携带 task_id 与 error_code,退款按流水记录
TaskTimeoutError轮询超时任务没丢,get_task(task_id) 继续查,勿重新提交
AuthenticationError401 密钥无效检查 API Key 是否正确或已删除
InvalidParamError400 参数有误如文本为空、超长或缺少幂等键
NotFoundError404 任务不存在确认 task_id 是否完整
ServerError5xx 服务异常稍后重试;持续出现可联系我们

资源

常见问题

怎么安装?+

pip install aigc-detect。包托管在 PyPI 官方源,支持 Python 3.8 及以上版本,仅依赖 requests。源码与示例同步在 GitHub 仓库,可用 git clone 后 pip install -e . 安装开发版。

轮询超时了,任务是不是丢了?+

没丢。SDK 抛出 TaskTimeoutError 只代表在设定的等待时间内没等到终态,任务仍在服务端队列里排队或执行。拿 task_id 稍后继续调用 get_task() 即可取结果;千万不要重新提交——提交是扣费动作,重新提交等于重新扣一次费。

detect_text 会不会重复扣费?+

不会。SDK 每次提交自动携带幂等键(Idempotency-Key),网络超时自动重试时复用同一个键,服务端会返回同一个任务而不是新建任务。只有你换一段文本重新调用时才会产生新的扣费。

任务失败了费用怎么算?+

请求未被受理(限流、参数有误、余额不足)不会产生任务,也不扣费;已进入检测流程后的失败(超时、上游异常),服务端按退款规则处理,以你账户资金流水里的记录为准。SDK 侧在任务终态为 failed 时默认抛出 TaskFailedError,携带 task_id 与错误码。

相关页面

注册即赠体验金,先把全流程跑通再充值

Python SDK · 文识云