Proofigとの新たな提携を発表!詳細はこちら

PythonでAIを検出する方法

マックス・スペロ
2025年8月11日

このチュートリアルでは、PangramのAIコンテンツ検出ツールを使用してテキストをAI生成コンテンツかどうか確認する方法を学びます。 パングラムSDK Pythonパッケージ

その パングラムSDK このパッケージにより、開発者は利用できます パングラムのAIコンテンツ検出API 短いテキストや長い文書を、内容がAIによって生成された兆候がないか確認するため。

このチュートリアルでは、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キー 変数。

エクスポート PANGRAM_API_KEY="12345678-1234-abcd-0123-123456789abc"

Python SDKをダウンロードする

正しいPython環境が有効になっていることを確認してください。PangramのPython SDKをインストールするには、次のコマンドを実行してください:

pip インストール pangram-sdk

UVを使用する場合、代わりに以下を使用できます:

uv 追加 pangram-sdk

Poetryを使用する場合、コマンドは次のようになります:

追加 パングラム-SDK

Python SDKを使用する

パングラムクライアントを作成する

まず、リクエストを行うためのPangramクライアントを作成します。Pangramクライアントは、環境変数から自動的にAPIキーを読み取ります。

from パングラム import Pangram
pangram_client = Pangram()

APIキーを直接渡すこともできます:

from パングラム import Pangram

my_api_key = ''  # ここにあなたのAPIキーを入力してください。
pangram_client = Pangram(api_key=my_api_key)

標準的なリクエストを作成する

パングラムクライアント予測する この関数はPangramのAPIに対して単一のリクエストを実行し、結果を返します。デフォルトでは、おおよそ最初の400語のみを対象とします。1回のリクエストで1クレジットを消費します。

テキスト = 「素早い茶色の狐が怠惰な犬の背を飛び越える。」
result = pangram_client.予測(テキスト)
スコア = 結果["ai_likelihood"]
スコアのテキスト表現 = result["予測"]
print(f"我々は、テキストが {text}{スコアのテキスト表現}, AI尤度 {スコア}です。") 

バッチリクエストを作成する

使用する バッチ予測 一括クエリ送信機能により、大規模データセットの処理を高速化します。1回のリクエストでバッチ内の各項目につき1クレジットを消費します。返される結果は単一クエリと同様の形式の配列となります。 予測する 関数。

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を予測します。入力テキスト1,000語ごとに1クレジットを消費します。

テキスト = 「素早い茶色の狐が怠惰な犬の背を跳び越える。」
result = pangram_client.予測スライディングウィンドウ(テキスト)
スコア = 結果["ai_likelihood"]
スコアのテキスト表現 = result["予測"]
print(f"我々は、テキストが {text}{スコアのテキスト表現}, AI尤度 {スコア}です。") 

結果は次のフィールドを持つ辞書です:

  • テキスト: [文字列] 入力テキスト
  • ai_尤度[float] 0から1の間の数値。1に近いほど、テキストがAI生成であるという確信度の高い予測を示す。
  • 予測テキストに含まれるAIコンテンツの量を説明するテキスト記述
  • 短い予測: [string] "人間", "混合", または "AI"
  • フラクションAIコンテンツ: [float] 0から1の間の浮動小数点数。1はテキスト全体にAIが存在することを示す。
  • ウィンドウズ: [list] テキストに対する単一予測結果のリスト。

パングラムダッシュボードの結果へのリンクを取得する

Pangramのダッシュボードは、スライディングウィンドウリクエストの結果をネイティブに表示できます。関数を使用してください。 ダッシュボードリンク付き予測 スライディングウィンドウクエリを実行し、ダッシュボードリンクも受け取る。ちょうど 予測スライディングウィンドウこの機能は、入力テキスト1,000語ごとに1クレジットで課金されます。

テキスト = 「素早い茶色の狐が怠惰な犬の背を飛び越える。」
result = pangram_client.予測スライディングウィンドウ(テキスト)
スコア = 結果["ai_likelihood"]
スコアのテキスト表現 = result["予測"]
ダッシュボードリンク = 結果["dashboard_link"]
print(f"テキスト {text}{スコアのテキスト表現}, AI尤度 {スコア}です。完全な結果は {dashboard_link}") 

結果は、と同じフィールドを持つ辞書です。 予測スライディングウィンドウ 結果ですが、これに加えて1つの追加フィールドが含まれています:

  • ダッシュボードリンク[string] スライディングウィンドウの完全な結果を含むページへのリンク。

代替方法: HTTPリクエスト

これらの機能はすべてHTTP経由でもアクセス可能です。Pangram APIへのHTTPリクエスト送信方法に関する完全なドキュメントについては、Pangramの推論APIドキュメントをご覧ください。

再試行の追加

Pangramへのリクエストがタイムアウトまたは失敗する場合があります。プログラムがクラッシュしないようにするため、再試行機能の追加を強く推奨します。そのためのライブラリとして、Tenacityの利用をお勧めします。

Tenacityを使用してパングラム呼び出しを再試行する例を以下に示します:

from 粘り強さ インポート retry, stop_after_attempt, wait_random_exponential, 例外タイプが指定された場合に再試行

@retry(
    retry=例外タイプが指定された場合に再試行する((タイムアウトエラー, ConnectionError)),
    停止=stop_after_attempt(5),
    待機=wait_random_exponential(乗数=0.5, 最大=10),
    再上昇=True,
)
def predict(text):
    return pangram_client.予測(テキスト)

すべてをまとめると

以下は、Pangram SDKを使用して任意のテキストのAI生成を検証し、ダッシュボードリンクを取得する完全な例です(再試行機能付き)。

from パングラム import Pangram
from tenacity import retry, stop_after_attempt, wait_random_exponential, 例外タイプが指定された場合に再試行

api_key = ""
pangram_client = パングラム(api_key=api_key)

@retry(
    retry=例外タイプが指定された場合に再試行する((タイムアウトエラー, ConnectionError)),
    停止=stop_after_attempt(5),
    待機=wait_random_exponential(乗数=0.5, 最大=10),
    再上昇=True,
)
def リンク付きAI予測(text)
    結果 = pangram_client.予測スライディングウィンドウ(テキスト)
    return result

text = "素早い茶色の狐が怠惰な犬の背を跳び越える。"
結果 = predict_ai_with_link(テキスト)
スコア = 結果["ai_likelihood"]
スコアのテキスト表現 = result["予測"]
ダッシュボードリンク = 結果["dashboard_link"]
print(f"テキスト {text}{スコアのテキスト表現}, AI尤度 {スコア}です。完全な結果はこちらでご覧いただけます {dashboard_link}")

終了

このガイドで、PangramのAI検出Pythonパッケージを使ってプログラムでAIコンテンツを検出できたことを願っています。何か面白いものを作れましたか?LinkedInやX タグ付けして、作ったものをぜひ共有してください!

ニュースレターを購読する
AI検出研究に関する月次更新情報を共有しています。