宣布与Proofig建立全新合作伙伴关系!了解更多
在本教程中,我们将学习如何使用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 环境。运行以下命令安装 Pangram 的 Python SDK:
pip 安装 全字母语法包若使用 uv,则可改用:
紫外线 添加 pangram-sdk如果你使用Poetry,命令应为:
诗歌 添加 全字母句-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的仪表板可原生显示滑动窗口请求的结果。使用该功能 通过仪表板链接进行预测 运行滑动窗口查询,同时获取仪表板链接。就像 预测滑动窗口该功能按输入文本每1,000字收取1个积分。
文本 = "敏捷的棕色狐狸跳过懒惰的狗。"
result = pangram_client.预测滑动窗口(文本)
score = 结果["ai_likelihood"]
分数的文本表示 = result["预测结果"]
仪表盘链接 = result["仪表盘链接"]
打印(f"我们预测文本 {文本} 是 {分数的文本表示},其人工智能概率为 {score}。完整结果请参见 {dashboard_link}") 结果是一个字典,其字段与 预测滑动窗口 结果,但它还包含一个额外的字段:
仪表盘链接: [字符串] 指向包含完整滑动窗口结果页面的链接。所有这些功能也可通过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平台@我们,分享您的创作成果!