安装
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 自己处理| 异常 | 触发 | 处理 |
|---|---|---|
| InsufficientBalanceError | 402 余额不足 | 未产生任务,充值后重新提交 |
| RateLimitError | 429 触发限流 | 按响应头的 Retry-After 等待后重试 |
| TaskFailedError | 任务终态 failed | 携带 task_id 与 error_code,退款按流水记录 |
| TaskTimeoutError | 轮询超时 | 任务没丢,get_task(task_id) 继续查,勿重新提交 |
| AuthenticationError | 401 密钥无效 | 检查 API Key 是否正确或已删除 |
| InvalidParamError | 400 参数有误 | 如文本为空、超长或缺少幂等键 |
| NotFoundError | 404 任务不存在 | 确认 task_id 是否完整 |
| ServerError | 5xx 服务异常 | 稍后重试;持续出现可联系我们 |
资源
常见问题
怎么安装?+
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 与错误码。
相关页面
注册即赠体验金,先把全流程跑通再充值