Entendendo a Limitação de Taxa da OpenAI
A OpenAI impõe limites de taxa nos níveis da chave de API e do endereço IP. Se você estiver sobrecarregando os endpoints deles com uma quantidade excessiva de solicitações, receberá um erro 429 ("Muitas solicitações"). Isso significa que você excedeu o número permitido de solicitações por minuto (RPM) ou tokens por minuto (TPM).
Limites de taxa típicos:
| Modelo | RPM padrão | TPM padrão |
|---|---|---|
| GPT-3.5 | 3500 | 90,000 |
| GPT-4 | 500 | 40,000 |
Mas aqui está o pulo do gato: se você usar vários endereços IP, poderá contornar os limites de nível de IP, já que cada IP exclusivo recebe sua própria cota.
Como escolher a solução de proxy certa
Existem mais proxies por aí do que cangurus no interior da Austrália, mas nem todos são iguais. Aqui está um breve resumo:
| Tipo de proxy | Prós | Contras | Melhor para |
|---|---|---|---|
| Proxies públicos gratuitos | Fácil, grátis, muitos disponíveis | Pouco confiável, lento, frequentemente bloqueado, risco de segurança | Único, de baixa prioridade |
| residencial | Mais difícil de bloquear, mais legítimo. | Caro, mais lento, às vezes com limite de largura de banda | Raspagem persistente |
| Centro de dados | Rápido, barato e escalável | Frequentemente incluído em listas negras, pode desencadear detecção de abuso. | Tarefas em grande volume e de alta velocidade |
| Proxies rotativos | Troca automática, fácil de usar. | Pode ser caro, IPs repetidos ocasionais | Ignorando os limites de taxa |
Para começar sem gastar nada, confira ProxyRoller (https://proxyroller.com). Ele coleta e atualiza proxies gratuitos de toda a web, sem necessidade de cadastro.
Configurando Proxies: Passo a Passo
1. Buscando Proxies do ProxyRoller
Primeiramente, vamos obter um novo lote de proxies gratuitos.
curl https://proxyroller.com/api/proxies?protocol=http
Você receberá uma matriz JSON de proxies, por exemplo:
[
{
"ip": "154.16.192.70",
"port": "1080",
"protocol": "http"
},
...
]
Você pode filtrar por protocolo (http, https, socks4, socks5) conforme necessário.
2. Integrando proxies em requisições Python
Obtenha vários proxies e alterne entre eles ao fazer chamadas à 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. Automatizando a rotação de procurações
Se você busca eficiência, automatize a rotação de proxy a cada requisição ou após um erro 429.
Exemplo de lógica:
– Carregar proxies da API do ProxyRoller.
– Em cada solicitação, selecione o próximo proxy.
– Em caso de erro 429, tente novamente com um proxy diferente.
– Atualize periodicamente sua lista de proxies para evitar os que estão inativos.
Lidando com Armadilhas Comuns
a. Proxies inativos ou lentos
Sejamos realistas, proxies gratuitos podem ser mais suspeitos que um urso-coala em uma árvore de eucalipto. Sempre teste os proxies antes de usá-los.
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. Proxies de bloqueio da OpenAI
A OpenAI às vezes bloqueia proxies, especialmente os gratuitos ou de datacenter. Se você continuar recebendo erros 403 ou de conexão, atualize sua lista de proxies no ProxyRoller ou considere um serviço residencial pago para tarefas críticas.
Guia de Uso do ProxyRoller
| Recurso | Como fazer |
|---|---|
| Obtenha proxies HTTP | curl https://proxyroller.com/api/proxies?protocol=http |
| Obtenha HTTPS | curl https://proxyroller.com/api/proxies?protocol=https |
| Obtenha SOCKS5 | curl https://proxyroller.com/api/proxies?protocol=socks5 |
| Contagem de procurações | Até 1000+ atualizações por hora |
| Filtros | Filtrar por país, nível de anonimato, protocolo |
Mais documentos e guias: https://proxyroller.com/docs
Contornando limites de taxa com pools de proxy
Se você pretende usar todo o potencial do servidor, configure um gerenciador de pool de proxies. Aqui está um exemplo rápido e simples de um pool usando 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()
Comparando proxies gratuitos e pagos
| Atributo | Proxies gratuitos (ProxyRoller) | Proxies pagos |
|---|---|---|
| Custo | $0 | $10–$200/mês |
| Confiabilidade | Baixo-Médio | Alto |
| Velocidade | Variável, muitas vezes lento | Rápido |
| Taxa de bloqueio | Alto | Baixo |
| Anonimato | Médio | Alto |
| Tempo de configuração | Instant | Tempo necessário para configurar/criar uma conta |
Recursos adicionais
- Documentação sobre limitação de taxa da OpenAI
- API de proxy gratuita ProxyRoller
- Documentação do ProxyRoller
- Guia de Proxies para Requisições em Python
- Suporte a proxy SOCKS em solicitações
Lembre-se, amigo: use proxies com responsabilidade. Não saia por aí dando má fama à internet — alterne, valide e mantenha a classe. Se você for limitado pela taxa de transferência, respire fundo, troque de proxy e continue.
Comentários (0)
Ainda não há comentários aqui, você pode ser o primeiro!