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/月 |
| 信頼性 | 低~中 | 高い |
| スピード | 変動性があり、遅いことが多い | 速い |
| ブロック率 | 高い | 低い |
| 匿名 | 中くらい | 高い |
| セットアップ時間 | インスタント | セットアップ/アカウント作成にかかる時間(分) |
追加リソース
- OpenAI レート制限ドキュメント
- ProxyRoller 無料プロキシ API
- ProxyRoller ドキュメント
- Python リクエストプロキシガイド
- リクエストにおけるSOCKSプロキシサポート
覚えておいてください、プロキシは責任を持って使いましょう。インターネットに悪評を広める行為はやめましょう。プロキシをローテーションし、検証し、常に良好な状態を保ちましょう。もし速度制限にかかっても、落ち着いてプロキシを変更し、さあ、始めましょう。.
コメント (0)
まだコメントはありません。あなたが最初のコメントを投稿できます!