Comprendere la limitazione della velocità di OpenAI
OpenAI impone limiti di velocità a livello di chiave API e indirizzo IP. Se stai martellando i loro endpoint più duramente di un galah su un tetto di lamiera, riceverai un errore 429 ("Troppe richieste"). Ciò significa che hai superato il numero di richieste al minuto (RPM) o token al minuto (TPM) consentiti.
Limiti di velocità tipici:
| Modello | RPM predefinito | TPM predefinito |
|---|---|---|
| GPT-3.5 | 3500 | 90,000 |
| GPT-4 | 500 | 40,000 |
Ma ecco il bello: se si utilizzano più indirizzi IP, è possibile aggirare i limiti a livello di IP, poiché ogni IP univoco ha la propria quota.
Scegliere la soluzione proxy giusta
Ci sono più proxy là fuori che canguri nell'Outback, ma non tutti sono uguali. Ecco una rapida analisi:
| Tipo di proxy | Professionisti | Contro | Il migliore per |
|---|---|---|---|
| Proxy pubblici gratuiti | Facile, gratuito, molto disponibile | Inaffidabile, lento, spesso bloccato, potenziale sicurezza | Una tantum, bassa priorità |
| Residenziale | Più difficile da bloccare, più legittimo | Costoso, più lento, a volte con larghezza di banda limitata | Raschiamento persistente |
| Centro dati | Veloce, economico, scalabile | Spesso inserito nella lista nera, può attivare il rilevamento di abusi | Attività in serie e ad alta velocità |
| Proxy rotanti | Commutazione automatica, facile da usare | Può essere costoso, occasionalmente IP ripetuti | Bypassare i limiti di velocità |
Per iniziare senza aprire il portafoglio, dai un'occhiata a ProxyRoller (https://proxyroller.com). Estrae e aggiorna proxy gratuiti da tutto il web, senza bisogno di registrarsi.
Impostazione dei proxy: passo dopo passo
1. Recupero dei proxy da ProxyRoller
Per prima cosa, procuriamoci un nuovo lotto di proxy gratuiti.
curl https://proxyroller.com/api/proxies?protocol=http
Otterrai un array JSON di proxy, ad esempio:
[
{
"ip": "154.16.192.70",
"port": "1080",
"protocol": "http"
},
...
]
Puoi filtrare per protocollo (http, https, socks4, socks5) secondo necessità.
2. Integrazione dei proxy nelle richieste Python
Prendi un gruppo di proxy e scorrili quando effettui chiamate 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. Automazione della rotazione dei proxy
Se vuoi ottenere l'efficienza, automatizza la rotazione del proxy a ogni richiesta o dopo un errore 429.
Esempio di logica:
– Carica i proxy dall'API di ProxyRoller.
– A ogni richiesta, seleziona il proxy successivo.
– In caso di errore 429, riprovare con un proxy diverso.
– Aggiorna periodicamente l'elenco dei proxy per evitare quelli non più attivi.
Gestire le insidie più comuni
a. Proxy morti o lenti
Diciamo la verità, i proxy gratuiti possono essere più rischiosi di un dropbear in un gumtree. Testate sempre i proxy prima di usarli:
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. Proxy di blocco OpenAI
A volte OpenAI blocca i proxy, soprattutto quelli gratuiti o quelli per data center. Se continui a ricevere errori 403 o di connessione, aggiorna l'elenco dei proxy da ProxyRoller o prendi in considerazione un servizio residenziale a pagamento per attività mission-critical.
Promemoria sull'utilizzo di ProxyRoller
| Caratteristica | Come fare |
|---|---|
| Ottieni proxy HTTP | curl https://proxyroller.com/api/proxies?protocol=http |
| Ottieni HTTPS | curl https://proxyroller.com/api/proxies?protocol=https |
| Ottieni SOCKS5 | curl https://proxyroller.com/api/proxies?protocol=socks5 |
| Conteggio proxy | Fino a 1000+ aggiornamenti ogni ora |
| Filtri | Filtra per paese, livello di anonimato, protocollo |
Altri documenti e guide: https://proxyroller.com/docs
Bypassare i limiti di velocità con i pool proxy
Se vuoi esagerare, configura un gestore di pool proxy. Ecco un esempio pratico e veloce che utilizza Python e 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()
Confronto tra proxy gratuiti e a pagamento
| Attributo | Proxy gratuiti (ProxyRoller) | Proxy a pagamento |
|---|---|---|
| Costo | $0 | $10–$200/mese |
| Affidabilità | Basso-Medio | Alto |
| Velocità | Variabile, spesso lento | Veloce |
| Tasso di blocco | Alto | Basso |
| Anonimato | Medio | Alto |
| Tempo di installazione | Istantaneo | Minuti per la configurazione/accounting |
Risorse aggiuntive
- Documenti sulla limitazione della velocità di OpenAI
- API proxy gratuita di ProxyRoller
- Documentazione di ProxyRoller
- Guida ai proxy per le richieste Python
- Supporto proxy SOCKS nelle richieste
Ricorda, amico: usa i proxy in modo responsabile. Non andare in giro a dare una cattiva reputazione a Internet: ruota, convalida e mantieni un comportamento di classe. Se ti viene imposta una limitazione di velocità, fai un respiro profondo, cambia proxy e vai avanti.
Commenti (0)
Non ci sono ancora commenti qui, potresti essere il primo!