プロキシを使用してOpenAIのレート制限を回避する方法

プロキシを使用してOpenAIのレート制限を回避する方法

OpenAI レート制限の理解

OpenAIは レート制限 APIキーとIPアドレスレベルで。エンドポイントを、まるでトタン屋根を叩くモモイロインコのように激しく攻撃すると、429エラー(「リクエストが多すぎます」)が発生します。これは、1分あたりのリクエスト数(RPM)または1分あたりのトークン数(TPM)の許容値を超過したことを意味します。.

一般的なレート制限:

モデル デフォルトのRPM デフォルトのTPM
GPT-3.5 3500 90,000
GPT-4 500 40,000

しかし、ここで重要な点があります。複数の IP アドレスを使用する場合、それぞれの固有の IP に独自の割り当てが割り当てられるため、IP レベルの制限を回避できます。.


適切なプロキシソリューションの選択

アウトバックのカンガルーの数よりも多くのプロキシが存在しますが、すべてが同じではありません。簡単に説明します。

プロキシタイプ 長所 短所 最適な用途
無料のパブリックプロキシ 簡単、無料、たくさん利用可能 信頼性が低い、遅い、頻繁にブロックされる、潜在的なセキュリティ 一度限り、優先度が低い
居住の ブロックが難しくなり、より合法的になる コストが高く、速度が遅く、帯域幅が制限されることもある 持続的なスクレイピング
データセンター 高速、安価、スケーラブル 多くの場合、ブラックリストに登録され、不正使用の検出を引き起こす可能性があります 大量の高速タスク
プロキシのローテーション 自動切り替え、使いやすい 高額になる可能性があり、IPが重複することもある レート制限の回避

財布を開かずに始めるには、 プロキシローラー(https://proxyroller.com). ウェブ全体から無料プロキシをスクレイピングして更新します。サインアップは必要ありません。.


プロキシの設定:ステップバイステップ

1. ProxyRollerからプロキシを取得する

まず最初に、無料のプロキシを新しく入手しましょう。.

curl https://proxyroller.com/api/proxies?protocol=http

プロキシの JSON 配列が取得されます。例:

[
  {
    "ip": "154.16.192.70",
    "port": "1080",
    "protocol": "http"
  },
  ...
]

プロトコルでフィルタリングできます(http, https, socks4, socks5)を必要に応じて追加します。

2. Pythonリクエストへのプロキシの統合

複数のプロキシを取得し、API 呼び出しを行うときにそれらを循環させます。.

import requests
import itertools

proxies_list = [
    {'http': 'http://154.16.192.70:1080'},
    {'http': 'http://38.54.101.103:8080'},
    # ... more proxies from ProxyRoller
]
proxies_cycle = itertools.cycle(proxies_list)

def openai_request(payload):
    proxy = next(proxies_cycle)
    response = requests.post(
        "https://api.openai.com/v1/chat/completions",
        headers={"Authorization": f"Bearer YOUR_OPENAI_KEY"},
        json=payload,
        proxies=proxy,
        timeout=10
    )
    if response.status_code == 429:
        print("Rate limited, switching proxy!")
        return openai_request(payload)  # Try next proxy
    return response.json()

3. プロキシローテーションの自動化

効率を重視する場合は、リクエストごとに、または 429 エラーの後にプロキシのローテーションを自動化します。.

サンプルロジック:
– ProxyRoller の API からプロキシを読み込みます。.
– リクエストごとに次のプロキシを選択します。.
– 429 エラーの場合は、別のプロキシで再試行してください。.
– 定期的にプロキシ リストを更新して、無効なプロキシを回避します。.


よくある落とし穴への対処

a. デッドプロキシまたは遅いプロキシ

正直に言うと、無料プロキシはガムツリーのドロップベアよりも危険な場合があります。使用する前に必ずプロキシをテストしてください。

def is_proxy_alive(proxy):
    try:
        requests.get("https://api.openai.com", proxies=proxy, timeout=3)
        return True
    except:
        return False

working_proxies = [p for p in proxies_list if is_proxy_alive(p)]

b. OpenAIブロッキングプロキシ

OpenAIは、特に無料またはデータセンターのプロキシをブロックすることがあります。403エラーや接続エラーが頻繁に発生する場合は、ProxyRollerでプロキシリストを更新するか、ミッションクリティカルな作業には有料の住宅向けプロキシサービスをご検討ください。.


ProxyRoller 使用方法チートシート

特徴 ハウツー
HTTPプロキシを取得する curl https://proxyroller.com/api/proxies?protocol=http
HTTPSを取得する curl https://proxyroller.com/api/proxies?protocol=https
SOCKS5を入手 curl https://proxyroller.com/api/proxies?protocol=socks5
プロキシ数 1時間ごとに最大1000件以上更新
フィルター 国、匿名性レベル、プロトコルでフィルタリング

その他のドキュメントとガイド: https://proxyroller.com/docs


プロキシプールによるレート制限の回避

本格的に運用したい場合は、プロキシプールマネージャーを設定しましょう。以下はPythonとProxyRollerを使った簡単なプールの例です。

import threading
import queue

proxy_queue = queue.Queue()
for proxy in working_proxies:
    proxy_queue.put(proxy)

def worker(task_payload):
    while not proxy_queue.empty():
        proxy = proxy_queue.get()
        try:
            resp = requests.post(
                "https://api.openai.com/v1/chat/completions",
                headers={"Authorization": f"Bearer {OPENAI_KEY}"},
                json=task_payload,
                proxies=proxy,
                timeout=10
            )
            if resp.status_code == 200:
                print("Success!", resp.json())
                break
        except Exception as e:
            print(f"Proxy failed: {proxy}. Error: {e}")

threads = []
for payload in tasks:
    t = threading.Thread(target=worker, args=(payload,))
    t.start()
    threads.append(t)

for t in threads:
    t.join()

無料プロキシと有料プロキシの比較

属性 無料プロキシ(ProxyRoller) 有料プロキシ
料金 $0 $10~$200/月
信頼性 低~中 高い
スピード 変動性があり、遅いことが多い 速い
ブロック率 高い 低い
匿名 中くらい 高い
セットアップ時間 インスタント セットアップ/アカウント作成にかかる時間(分)

追加リソース


覚えておいてください、プロキシは責任を持って使いましょう。インターネットに悪評を広める行為はやめましょう。プロキシをローテーションし、検証し、常に良好な状態を保ちましょう。もし速度制限にかかっても、落ち着いてプロキシを変更し、さあ、始めましょう。.

アルヴィド・ワラル

アルヴィド・ワラル

リードネットワークアーキテクト

太陽が照りつける国出身の Arvid Warral は、ProxyRoller の堅牢で機敏なネットワーク アーキテクチャの立役者です。デジタル セキュリティとプロキシ管理で 20 年以上の経験を持つ彼は、プライバシーとデータ セキュリティのダイナミックなニーズに応えるシステムの開発に尽力してきました。Arvid の ProxyRoller でのキャリアは、情熱的な技術者として始まり、彼の革新的なソリューションは、同社を業界の最前線へと押し上げました。彼は、ProxyRoller の製品が世界中のユーザーにとって最先端で信頼できるものであり続けるよう尽力しています。

コメント (0)

まだコメントはありません。あなたが最初のコメントを投稿できます!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です