宣布与Proofig建立全新合作伙伴关系!了解更多

如何在Python中检测AI

马克斯·斯佩罗
2025年8月11日

在本教程中,我们将学习如何使用Pangram的工具检测文本中的AI内容。 全字母句 SDK Python 软件包。

全字母句 SDK 该包允许开发者使用 Pangram的人工智能内容检测API 检查短文本或长文档,以发现内容是否由人工智能生成的迹象。

在本教程中,我们将介绍如何获取 API 密钥、使用 Pangram 的 Python SDK,以及直接向 Pangram 的 API 端点发送 HTTP 请求。更多信息和使用示例请参阅Pangram 的完整 API 文档

设置

首先,您需要注册一个Pangram账户。使用您希望绑定API密钥的邮箱创建账户。完成账户注册后,您将有两种选择来设置账户:注册开发者计划或获取研究者API密钥。

Pangram开发者套餐月费100美元起。套餐包含每月最高2000个API积分。您可联系我们解锁账户并启用按量计费模式。立即注册开发者套餐开启服务。注册后,您可在API控制台中获取API密钥。

Pangram还为研究人员免费提供API密钥。若您正在进行非商业性研究项目,请填写此表单申请免费API额度。我们将直接向您发送API密钥及研究额度分配方案。

环境设置

获取API密钥后,即可将其添加至环境。运行以下命令时,请将示例API密钥替换为您的个人API密钥。您也可将此命令添加至您的 .bashrc, .zshrc, .env等,以自动设置 全字母表API密钥 变量。

export 全字母表API密钥="12345678-1234-abcd-0123-123456789abc"

下载 Python SDK

请确保已启用正确的 Python 环境。运行以下命令安装 Pangram 的 Python SDK:

pip 安装 全字母语法包

若使用 uv,则可改用:

紫外线 添加 pangram-sdk

如果你使用Poetry,命令应为:

诗歌 添加 全字母句-SDK

使用 Python SDK

创建一个全字母句客户端

首先,创建一个 Pangram 客户端来发送请求。该客户端将自动从环境变量中读取您的 API 密钥。

 全字母句 import Pangram
全字母句客户端 = Pangram()

您也可以直接传递 API 密钥:

 全字母句 import Pangram

my_api_key = ''  # 请在此处填写您的API密钥。
全字母句客户端 = Pangram(api_key=my_api_key)

提交标准请求

全字母句客户端's 预测 该函数将向Pangram的API发起单次请求并返回结果。默认情况下,仅会检索前约400个单词。每次请求将消耗一个积分。

文本 = "敏捷的棕色狐狸跳过懒惰的狗。"
result = pangram_client.预测(文本)
得分 = 结果["ai_likelihood"]
分数的文本表示 = result["预测结果"]
打印(f"我们预测文本 {文本}{分数的文本表示},其人工智能概率为 {score}。") 

提交批量请求

使用 预测批次 批量查询功能可一次性发送多条查询请求,从而加快大型数据集的处理速度。每次请求将按批次中的每条记录消耗一个信用点。返回的结果将采用与单条查询相同的数组格式。 预测 函数。

text_batch = ["text1", "text2"]

results = pangram_client.batch_predict(text_batch)
for result in results:
    text = result["text"]
    score = result["ai_likelihood"]
    text_representation_of_score = result["prediction"]
    print(f"We predict that the text {text} is {text_representation_of_score}, with an AI likelihood of {score}.") 

创建一个滑动窗口请求

使用 预测滑动窗口 用于获取长文档中AI使用情况的精确预测函数。该函数将输入文本分割为多个窗口,并对批处理中的每个窗口进行AI预测。该函数每处理1000个单词消耗1个积分。

文本 = "敏捷的棕色狐狸跳过懒惰的狗。"
result = pangram_client.预测滑动窗口(文本)
score = 结果["ai_likelihood"]
分数的文本表示 = result["预测结果"]
打印(f"我们预测文本 {文本}{分数的文本表示},其人工智能概率为 {score}。") 

结果是一个包含以下字段的字典:

  • 文本: [字符串] 输入文本
  • ai_likelihood[浮点数] 介于0和1之间的数值,数值接近1表示对文本为AI生成的预测具有较高信心。
  • 预测: [字符串] 对文本中包含多少人工智能内容的文字描述
  • 短预测: [字符串] "人类"、"混合" 或 "人工智能"
  • fraction_ai_content: [浮点数] 介于0和1之间的浮点数,其中1表示文本中存在AI。
  • windows: [list] 文本的单次预测结果列表。

获取包含结果的Pangram仪表板链接

Pangram的仪表板可原生显示滑动窗口请求的结果。使用该功能 通过仪表板链接进行预测 运行滑动窗口查询,同时获取仪表板链接。就像 预测滑动窗口该功能按输入文本每1,000字收取1个积分。

文本 = "敏捷的棕色狐狸跳过懒惰的狗。"
result = pangram_client.预测滑动窗口(文本)
score = 结果["ai_likelihood"]
分数的文本表示 = result["预测结果"]
仪表盘链接 = result["仪表盘链接"]
打印(f"我们预测文本 {文本}{分数的文本表示},其人工智能概率为 {score}。完整结果请参见 {dashboard_link}") 

结果是一个字典,其字段与 预测滑动窗口 结果,但它还包含一个额外的字段:

  • 仪表盘链接: [字符串] 指向包含完整滑动窗口结果页面的链接。

替代方法:HTTP请求

所有这些功能也可通过HTTP访问。有关如何向Pangram API发送HTTP请求的完整文档,请参阅Pangram的推理API文档

添加重试

偶尔,向Pangram发送的请求可能会超时或失败。为确保您的程序不会崩溃,我们强烈建议添加重试机制。Tenacity库便是此类解决方案之一,我们推荐您使用它。

以下是使用Tenacity重试Pangram调用的示例:

 坚韧 import retry, 尝试后停止, 随机指数等待, 异常类型重试

@retry(
    retry=重试异常类型((超时错误, 连接错误)),
    停止=尝试后停止(5),
    等待=随机指数等待(乘数=0.5, 最大值=10),
    再加注=True,
)
def 预测(文本):
    返回 pangram_client.预测(文本)

整合所有内容

以下是一个完整示例,演示如何使用Pangram SDK检测任意文本是否为AI生成,并获取包含重试功能的仪表盘链接。

 全字母句 import Pangram
from tenacity import retry, 尝试后停止, 随机指数等待, 异常类型重试

api_key = ""
全字母句客户端 = Pangram(api_key=api_key)

@retry(
    retry=retry_if_exception_type((超时错误, 连接错误)),
    停止=尝试后停止(5),
    等待=随机指数等待(乘数=0.5, 最大值=10),
    再加注=True,
)
def 预测AI链接(文本)
    result = pangram_client.预测滑动窗口(文本)
    返回 result

文本 = "敏捷的棕色狐狸跳过懒惰的狗。"
结果 = 预测AI(含链接)(文本)
score = 结果["ai_likelihood"]
分数的文本表示 = result["预测结果"]
仪表盘链接 = result["仪表盘链接"]
打印(f"我们预测文本 {文本}{分数的文本表示},其人工智能概率为 {score}。完整结果请参见 {dashboard_link}")

收尾

希望通过本指南,您已能使用Pangram的AI检测Python包实现程序化检测AI内容。您是否用它做出了什么酷炫的东西?欢迎在LinkedIn 或X平台@我们,分享您的创作成果!

订阅我们的电子报
我们每月分享人工智能检测研究的最新进展。
订阅
以获取我们的最新动态
随时掌握我们的最新资讯与优惠活动。
© 2025 Pangram。保留所有权利。