Ao chamar a Nano Banana Pro API para gerar imagens 4K, você costuma encontrar o erro HTTPSConnectionPool Read timed out? Isso acontece porque as configurações padrão de timeout (tempo de espera) dos clientes HTTP não conseguem lidar com as características de inferência de longa duração do Nano Banana Pro. Este artigo analisará sistematicamente as 3 causas fundamentais dessas desconexões e fornecerá as melhores soluções de configuração de timeout para diferentes resoluções.
Valor central: Ao terminar de ler, você dominará as técnicas de configuração de timeout da API Nano Banana Pro, soluções para problemas de compatibilidade HTTP/2 e como evitar interrupções no streaming através de interfaces de porta HTTP, garantindo a estabilidade na geração de imagens 4K.

Pontos centrais da configuração de timeout da API Nano Banana Pro
| Resolução da Imagem | Tempo Real de Geração | Configuração de Timeout Recomendada | Margem de Segurança | Cenário de Uso |
|---|---|---|---|---|
| 1K (1024×1024) | 30-90 segundos | 300 segundos | +210 segundos | Geração de imagem padrão |
| 2K (2048×2048) | 50-120 segundos | 300 segundos | +180 segundos | Geração de imagem HD |
| 4K (4096×4096) | 100-170 segundos | 600 segundos | +430 segundos | Geração de imagem Ultra HD |
| Cenários Extremos (Instabilidade de rede/Pico) | Pode passar de 180s | 600 segundos | – | Recomendado para ambiente de produção |
Causas fundamentais dos problemas de timeout na API Nano Banana Pro
Diferença central: O Nano Banana Pro é o modelo de geração de imagens mais recente do Google, baseado em TPUs para inferência, e seu tempo de geração é significativamente maior do que o de modelos de texto. As configurações padrão de timeout dos clientes HTTP (geralmente 30-60 segundos) são completamente inadequadas para o tempo real de processamento do modelo, resultando em quedas frequentes por timeout.
Em 17 de janeiro de 2026, a API Nano Banana Pro sofreu com o controle de risco global do Google e a escassez de recursos computacionais, fazendo com que o tempo de geração saltasse de 20-40 segundos para 180 segundos ou mais. Algumas plataformas agregadoras de API chegaram a ativar mecanismos de compensação de log de cobrança para chamadas que excederam 180 segundos. Esse evento ressaltou a importância de reservar margem suficiente nas configurações de timeout.
💡 Sugestão técnica: No desenvolvimento real, recomendamos realizar as chamadas da API Nano Banana Pro através da plataforma APIYI (apiyi.com). A plataforma oferece uma interface HTTP otimizada para inferências longas (http://api.apiyi.com:16888/v1), configurada por padrão com timeouts razoáveis e suporte para resoluções de 1K a 4K, evitando efetivamente problemas de desconexão por timeout.
Causa raiz 1: Configurações de timeout padrão do cliente HTTP muito curtas
A armadilha do timeout padrão nas bibliotecas HTTP
As bibliotecas HTTP padrão da maioria das linguagens de programação possuem configurações de timeout padrão extremamente insuficientes:
| Biblioteca HTTP | Timeout de conexão padrão | Timeout de leitura padrão | Compatível com Nano Banana Pro? |
|---|---|---|---|
| Python requests | Ilimitado | Ilimitado (mas limitado pelo sistema na prática) | ❌ Requer configuração explícita |
| Python httpx | 5 segundos | 5 segundos | ❌ Seriamente insuficiente |
| Node.js axios | Ilimitado | Ilimitado | ⚠️ Requer verificação do timeout real |
| Java HttpClient | Ilimitado | 30 segundos (JDK 11+) | ❌ Insuficiente |
| Go http.Client | Ilimitado | Ilimitado (mas limitado pelo Transport) | ⚠️ Requer configuração do Transport |
O problema do timeout implícito no Python requests:
Embora a documentação da biblioteca requests afirme que não há limite de timeout por padrão, na realidade ela é afetada pelo timeout TCP do sistema operacional e pelo timeout do socket subjacente, geralmente desconectando em cerca de 60-120 segundos. Isso faz com que muitos desenvolvedores acreditem que "se não configurarem o timeout, ele não ocorrerá", apenas para enfrentar desconexões inesperadas em produção.
import requests
# ❌ 错误: 未显式设置超时,实际会在 60-120 秒左右超时
response = requests.post(
"https://api.example.com/v1/images/generations",
json={"prompt": "生成 4K 图像", "size": "4096x4096"},
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
# 当生成时间超过 120 秒时,会抛出 ReadTimeout 异常
Como configurar o timeout corretamente
Opção 1: Configuração de timeout explícita no Python requests
import requests
# ✅ 正确: 显式设置超时
response = requests.post(
"https://api.example.com/v1/images/generations",
json={
"prompt": "A futuristic city with neon lights",
"size": "4096x4096", # 4K 分辨率
"model": "nano-banana-pro"
},
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=(10, 600) # (连接超时, 读取超时) = (10秒, 600秒)
)
Explicação do parâmetro timeout:
- Timeout de conexão (10 segundos): Tempo máximo de espera para estabelecer a conexão TCP; geralmente 10 segundos são suficientes.
- Timeout de leitura (600 segundos): Tempo máximo de espera pelos dados de resposta do servidor; recomenda-se 600 segundos para imagens 4K.
Opção 2: Cliente personalizado no Python httpx
import httpx
# 创建自定义客户端,强制使用 HTTP/1.1 并设置长超时
client = httpx.Client(
timeout=httpx.Timeout(
connect=10.0, # 连接超时 10 秒
read=600.0, # 读取超时 600 秒
write=30.0, # 写入超时 30 秒
pool=10.0 # 连接池超时 10 秒
),
http2=False, # ⚠️ 关键: 强制使用 HTTP/1.1,避免 HTTP/2 兼容性问题
limits=httpx.Limits(
max_connections=10,
max_keepalive_connections=5
)
)
# 使用自定义客户端调用 API
response = client.post(
"http://api.apiyi.com:16888/v1/images/generations",
json={
"prompt": "Cyberpunk style portrait",
"size": "4096x4096",
"model": "nano-banana-pro"
},
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
# 关闭客户端
client.close()
Ver exemplo completo de configuração assíncrona do httpx
import httpx
import asyncio
async def generate_image_async():
"""异步生成图像,支持长时间超时"""
async with httpx.AsyncClient(
timeout=httpx.Timeout(
connect=10.0,
read=600.0, # 4K 图像推荐 600 秒
write=30.0,
pool=10.0
),
http2=False, # 强制 HTTP/1.1
limits=httpx.Limits(
max_connections=20,
max_keepalive_connections=10
)
) as client:
response = await client.post(
"http://api.apiyi.com:16888/v1/images/generations",
json={
"prompt": "A serene landscape at sunset",
"size": "4096x4096",
"model": "nano-banana-pro",
"n": 1
},
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
return response.json()
# 运行异步函数
result = asyncio.run(generate_image_async())
print(result)

🎯 Melhor prática: Ao mudar para a API do Nano Banana Pro, recomendamos testar o tempo real de geração em diferentes resoluções através da plataforma APIYI (apiyi.com). A plataforma oferece uma interface de porta HTTP (http://api.apiyi.com:16888/v1) com configurações de timeout otimizadas por padrão, permitindo validar rapidamente se as suas configurações de timeout são adequadas.
Causa Raiz 2: Problemas de compatibilidade do protocolo HTTP/2 em transmissões de fluxo de longa conexão
Falhas de design do HTTP/2 e o conflito com o Nano Banana Pro
Embora o HTTP/2 tenha sido projetado para melhorar o desempenho, ele apresenta vários problemas graves de compatibilidade ao lidar com transmissões de fluxo (streaming) de longa conexão:
Problema 1: Bloqueio de Início de Fila (Head-of-Line Blocking) no nível TCP
O HTTP/2 resolveu o bloqueio de início de fila na camada de aplicação do HTTP/1.1 através da multiplexação (Multiplexing), mas introduziu um novo problema de bloqueio no nível TCP. Todos os fluxos HTTP/2 são multiplexados em uma única conexão TCP; qualquer perda de pacote TCP bloqueia a transmissão de todos os fluxos.
HTTP/1.1 (6 conexões simultâneas):
Conexão 1: [Stream A] ━━━━━━━━━▶
Conexão 2: [Stream B] ━━━━━━━━━▶ ✅ A perda de pacotes afeta apenas um fluxo
Conexão 3: [Stream C] ━━━━━━━━━▶
HTTP/2 (Multiplexação em conexão única):
Conexão 1: [Stream A][Stream B][Stream C] ━━━━━━━━━▶
↑ A perda de pacotes TCP bloqueia todos os fluxos ❌
Problema 2: Esgotamento de Identificadores de Fluxo (Stream Identifier Exhaustion)
O identificador de fluxo (Stream ID) do HTTP/2 é um número inteiro de 31 bits, com valor máximo de 2^31-1 (cerca de 2,1 bilhões). Conexões de longa duração podem esgotar os identificadores disponíveis e, como os identificadores de fluxo não são reutilizáveis, é necessário criar uma nova conexão.
Problema 3: Qualidade variável da implementação de HTTP/2 em APIs de redirecionamento
Muitas plataformas de redirecionamento de API ou proxies reversos possuem bugs em suas implementações de HTTP/2, especialmente ao lidar com transmissões de fluxo prolongadas:
- Tratamento inadequado de redefinição de fluxo (RST_STREAM), levando ao fechamento inesperado da conexão.
- Erros no gerenciamento de frames WINDOW_UPDATE, resultando em falha no controle de fluxo.
- Ativação acidental de frames GOAWAY, forçando o fechamento da conexão.
Comparativo prático: HTTP/1.1 vs HTTP/2 no cenário do Nano Banana Pro
| Indicador | HTTP/1.1 | HTTP/2 | Recomendação |
|---|---|---|---|
| Estabilidade da conexão | Alta (conexões independentes, sem interferência mútua) | Baixa (conexão única multiplexada, perda de pacotes afeta tudo) | HTTP/1.1 ✅ |
| Suporte a conexões longas | Maduro (mecanismo Keep-Alive estável) | Instável (problema de esgotamento de IDs de fluxo) | HTTP/1.1 ✅ |
| Tratamento de timeout | Simples e claro (timeout no nível da conexão) | Complexo (timeout no nível do fluxo + nível da conexão) | HTTP/1.1 ✅ |
| Compatibilidade com APIs intermediárias | Altíssima (suportada por todas as plataformas) | Variável (algumas plataformas possuem bugs) | HTTP/1.1 ✅ |
| Taxa de sucesso na geração 4K no Nano Banana Pro | 95%+ | 60-70% | HTTP/1.1 ✅ |
Solução: Forçar o uso de HTTP/1.1 e utilizar portas HTTP
Solução 1: Forçar HTTP/1.1 no Python httpx
import httpx
# Força o uso de HTTP/1.1 para evitar problemas de compatibilidade do HTTP/2
client = httpx.Client(
http2=False, # ⚠️ Configuração crítica: desativar HTTP/2
timeout=httpx.Timeout(read=600.0)
)
response = client.post(
"http://api.apiyi.com:16888/v1/images/generations", # Usando porta HTTP
json={"prompt": "...", "size": "4096x4096"},
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
Solução 2: Python requests (HTTP/1.1 por padrão)
import requests
# A biblioteca requests usa HTTP/1.1 por padrão, sem necessidade de configuração extra
response = requests.post(
"http://api.apiyi.com:16888/v1/images/generations",
json={"prompt": "...", "size": "4096x4096"},
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=(10, 600)
)
Solução 3: Forçar HTTP/1.1 no Node.js axios
const axios = require('axios');
const http = require('http');
// Cria um agent dedicado para HTTP/1.1
const agent = new http.Agent({
keepAlive: true,
maxSockets: 10,
timeout: 600000 // 600 segundos
});
// Configura o axios para usar o agent personalizado
const response = await axios.post(
'http://api.apiyi.com:16888/v1/images/generations',
{
prompt: 'A beautiful sunset',
size: '4096x4096',
model: 'nano-banana-pro'
},
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
},
httpAgent: agent, // Usar agent HTTP/1.1
timeout: 600000 // Timeout de 600 segundos
}
);

💰 Otimização de Custos: Para projetos que exigem alta estabilidade na geração de imagens 4K, recomendamos chamar a API Nano Banana Pro através da plataforma APIYI (apiyi.com). Esta plataforma oferece uma interface de porta HTTP dedicada (
http://api.apiyi.com:16888/v1), que utiliza o protocolo HTTP/1.1 por padrão, evitando problemas de compatibilidade com HTTP/2, além de oferecer métodos de cobrança mais vantajosos para implementações em ambientes de produção.
Causa Raiz 3: Efeito Combinado de Streaming e Volatilidade da Rede
Características de resposta não-streaming do Nano Banana Pro
Diferente de modelos de geração de texto como GPT-4 ou Claude, a API do Nano Banana Pro não utiliza streaming para retornar imagens. Todo o processo de geração segue este fluxo:
- Fase de Requisição (1-3 segundos): O cliente envia a requisição para o servidor.
- Fase de Inferência (30-170 segundos): O servidor gera a imagem em uma TPU, e o cliente não recebe nenhum dado de resposta.
- Fase de Resposta (1-5 segundos): O servidor retorna os dados completos da imagem codificados em base64.
Questão chave: Durante a fase de inferência de 30-170 segundos, a conexão HTTP do cliente fica totalmente ociosa, apenas com o TCP Keep-Alive mantendo a conexão, sem qualquer transmissão de dados na camada de aplicação. Isso resulta em:
- Dispositivos de rede intermediários (NAT, firewall, proxy) podem considerar a conexão interrompida e fechá-la ativamente.
- Em ambientes de rede instável, conexões ociosas por muito tempo são mais propensas a interrupções.
- Alguns provedores de serviços em nuvem têm limites de timeout para conexões ociosas em seus Load Balancers (como o AWS ALB, que tem o padrão de 60 segundos).
Impacto da Volatilidade da Rede no Timeout
| Ambiente de Rede | Tempo Real de Geração | Impacto da Latência de Rede | Configuração de Timeout Recomendada |
|---|---|---|---|
| Intranet/IDC Estável | 100 segundos | +10-20 segundos | 300 segundos (margem de 180s) |
| Banda Larga Doméstica/Rede Móvel | 100 segundos | +30-50 segundos | 600 segundos (margem de 450s) |
| Rede Internacional/VPN | 100 segundos | +50-100 segundos | 600 segundos (margem de 400s) |
| Horário de Pico (Evento 17/01/2026) | 180 segundos | +20-40 segundos | 600 segundos (margem de 380s) |
Estratégia: Timeout + Reatentativa + Degradação
import requests
import time
from typing import Optional
def generate_image_with_retry(
prompt: str,
size: str = "4096x4096",
max_retries: int = 3,
timeout: int = 600
) -> Optional[dict]:
"""
Gera imagem com suporte a reatentativa por timeout
Args:
prompt: comando da imagem
size: dimensões da imagem (1024x1024, 2048x2048, 4096x4096)
max_retries: número máximo de reatentativas
timeout: tempo de timeout (segundos)
Returns:
Resultado da geração ou None (falha)
"""
api_url = "http://api.apiyi.com:16888/v1/images/generations"
headers = {"Authorization": "Bearer SUA_CHAVE_API"}
for attempt in range(max_retries):
try:
print(f"Tentativa {attempt + 1}/{max_retries}: Gerando imagem {size}...")
start_time = time.time()
response = requests.post(
api_url,
json={
"prompt": prompt,
"size": size,
"model": "nano-banana-pro",
"n": 1
},
headers=headers,
timeout=(10, timeout) # (timeout de conexão, timeout de leitura)
)
elapsed = time.time() - start_time
print(f"✅ Gerado com sucesso! Tempo gasto: {elapsed:.2f} segundos")
return response.json()
except requests.exceptions.Timeout:
elapsed = time.time() - start_time
print(f"❌ Timeout: {elapsed:.2f} segundos")
if attempt < max_retries - 1:
wait_time = 5 * (attempt + 1) # Backoff exponencial
print(f"⏳ Aguardando {wait_time} segundos para tentar novamente...")
time.sleep(wait_time)
else:
print("❌ Número máximo de reatentativas atingido, falha na geração")
return None
except requests.exceptions.RequestException as e:
print(f"❌ Erro de rede: {e}")
if attempt < max_retries - 1:
time.sleep(5)
else:
return None
return None
# Exemplo de uso
result = generate_image_with_retry(
prompt="A majestic mountain landscape",
size="4096x4096",
max_retries=3,
timeout=600
)
if result:
print(f"URL da imagem: {result['data'][0]['url']}")
else:
print("Falha na geração da imagem, tente novamente mais tarde")
🚀 Início Rápido: Recomendamos usar a plataforma APIYI (apiyi.com) para integrar rapidamente a API do Nano Banana Pro. A plataforma oferece as seguintes vantagens:
- Interface de Porta HTTP: http://api.apiyi.com:16888/v1, evitando o overhead do handshake HTTPS.
- Configuração de Timeout Otimizada: Suporta por padrão 600 segundos de timeout, cobrindo cenários de geração em 4K.
- Mecanismo de Reatentativa Inteligente: A plataforma trata automaticamente timeouts temporários, aumentando a taxa de sucesso.
- Compensação de Cobrança: Requisições que excedem 180 segundos acionam automaticamente a compensação de cobrança para evitar desperdício.
Vantagens da Interface de Porta HTTP da Plataforma APIYI
Por que recomendamos usar HTTP em vez de HTTPS?
| Característica | HTTPS (api.apiyi.com/v1) | HTTP (api.apiyi.com:16888/v1) | Recomendação |
|---|---|---|---|
| Overhead de Handshake TLS | Sim (300-800ms) | Não | HTTP ✅ |
| Velocidade de Conexão | Lenta (exige negociação TLS) | Rápida (conexão TCP direta) | HTTP ✅ |
| Negociação HTTP/2 | Pode atualizar para HTTP/2 | Força HTTP/1.1 | HTTP ✅ |
| Segurança em Chamadas Internas | Alta (transmissão criptografada) | Média (texto simples) | HTTP ⚠️ (ideal p/ rede interna) |
| Estabilidade de Timeout | Média (Timeout TLS + Leitura) | Alta (apenas Timeout de Leitura) | HTTP ✅ |
Exemplo de Configuração Completa da Interface HTTP APIYI
import requests
# Configuração do endpoint da porta HTTP da APIYI
APIYI_HTTP_ENDPOINT = "http://api.apiyi.com:16888/v1"
APIYI_API_KEY = "SUA_CHAVE_API_APIYI"
def generate_nano_banana_image(
prompt: str,
size: str = "4096x4096"
) -> dict:
"""
Usa a interface HTTP da APIYI para gerar imagens Nano Banana Pro
Args:
prompt: comando da imagem
size: dimensões da imagem
Returns:
Resultado da resposta da API
"""
# Ajusta o timeout dinamicamente conforme a resolução
timeout_map = {
"1024x1024": 300, # 1K: 300 segundos
"2048x2048": 300, # 2K: 300 segundos
"4096x4096": 600 # 4K: 600 segundos
}
timeout = timeout_map.get(size, 600) # Padrão de 600 segundos
response = requests.post(
f"{APIYI_HTTP_ENDPOINT}/images/generations",
json={
"prompt": prompt,
"size": size,
"model": "nano-banana-pro",
"n": 1,
"response_format": "url" # ou "b64_json"
},
headers={
"Authorization": f"Bearer {APIYI_API_KEY}",
"Content-Type": "application/json"
},
timeout=(10, timeout) # (timeout de conexão, timeout de leitura)
)
response.raise_for_status()
return response.json()
# Exemplo de uso
try:
result = generate_nano_banana_image(
prompt="A photorealistic portrait of a cat",
size="4096x4096"
)
print(f"✅ Gerado com sucesso!")
print(f"URL da imagem: {result['data'][0]['url']}")
print(f"Tamanho: {result['data'][0]['size']}")
except requests.exceptions.Timeout:
print("❌ Tempo limite esgotado, verifique a rede ou tente novamente mais tarde")
except requests.exceptions.HTTPError as e:
print(f"❌ Erro na API: {e}")
except Exception as e:
print(f"❌ Erro desconhecido: {e}")
💡 Melhores Práticas: Em ambientes de produção, sugerimos priorizar a interface de porta HTTP da APIYI (http://api.apiyi.com:16888/v1). Essa interface é otimizada pela plataforma e configurada por padrão com timeouts e estratégias de reatentativa adequados, melhorando significativamente a taxa de sucesso das chamadas à API do Nano Banana Pro, especialmente em cenários de geração de imagens 4K.
Perguntas Frequentes
Q1: Por que ainda ocorrem timeouts mesmo eu tendo configurado 600 segundos?
Possíveis causas:
-
Você configurou apenas o timeout de conexão, não o de leitura:
# ❌ Erro: timeout=600 afeta apenas o timeout de conexão response = requests.post(url, json=data, timeout=600) # ✅ Correto: configure os timeouts de conexão e leitura separadamente response = requests.post(url, json=data, timeout=(10, 600)) -
Proxies intermediários ou Load Balancers possuem limites de timeout menores:
- AWS ALB: timeout de ociosidade padrão de 60 segundos
- Nginx:
proxy_read_timeoutpadrão de 60 segundos - Plano Gratuito do Cloudflare: timeout máximo de 100 segundos
Solução: Use a interface de porta HTTP da APIYI, que já possui configurações de timeout otimizadas na camada da plataforma.
-
Ambiente de rede instável, com tempo real de geração superior a 600 segundos:
- No pico de 17 de janeiro de 2026, algumas requisições levaram mais de 180 segundos.
- Latências em redes internacionais podem adicionar de 50 a 100 segundos extras.
Solução: Implemente um mecanismo de retentativa (retry) e utilize a função de compensação de faturamento da plataforma APIYI.
Q2: A interface HTTP é segura? Ela pode ser interceptada?
Análise de segurança:
| Cenário | Segurança HTTP | Recomendação |
|---|---|---|
| Chamada em rede interna (VPC/Rede Privada) | Alta (sem exposição pública) | ✅ HTTP recomendado |
| Chamada via rede pública (Desenvolvimento/Teste) | Média (Risco de vazamento da API Key) | ⚠️ Atenção à segurança da Key |
| Chamada via rede pública (Produção) | Baixa (Transmissão em texto plano) | ❌ Priorizar HTTPS |
| Chamada via VPN/Link dedicado | Alta (Criptografia na camada VPN) | ✅ HTTP recomendado |
Melhores práticas:
- Ambiente interno: Use a interface HTTP para melhor performance.
- Ambiente público: Se a exigência de segurança for alta, use HTTPS; se a prioridade for estabilidade, use HTTP e faça a rotação periódica da sua API Key.
- Ambiente misto: Use HTTP para comandos não sensíveis e HTTPS para conteúdos sensíveis.
Q3: Imagens 1K e 2K também precisam de 300 segundos de timeout?
Configurações recomendadas:
Embora o tempo real de geração para imagens 1K e 2K costume ser entre 30 e 120 segundos, ainda recomendamos configurar 300 segundos de timeout pelos seguintes motivos:
- Oscilações de rede: Mesmo que a geração seja rápida, a latência de rede pode adicionar de 30 a 50 segundos.
- Impacto de horários de pico: O incidente de 17/01/2026 mostrou que, em casos extremos, o tempo de geração pode dobrar.
- Margem de segurança: Um timeout de 300 segundos não aumenta os custos, mas evita retentativas desnecessárias.
Dados de testes reais (estatísticas da plataforma APIYI):
| Resolução | P50 (Mediana) | P95 (Percentil 95) | P99 (Percentil 99) | Timeout Recomendado |
|---|---|---|---|---|
| 1K | 45 seg | 90 seg | 150 seg | 300 seg |
| 2K | 65 seg | 120 seg | 180 seg | 300 seg |
| 4K | 120 seg | 170 seg | 250 seg | 600 seg |
Conclusão: Use 300 segundos para 1K/2K e 600 segundos para 4K para cobrir mais de 99% dos cenários.
Q4: Como saber se o problema é de timeout ou de sobrecarga da API?
Como diferenciar:
| Tipo de erro | Mensagem de erro típica | Status HTTP | Pode tentar novamente? |
|---|---|---|---|
| Erro de Timeout | ReadTimeout, Connection timeout |
Nenhum (Erro no cliente) | ✅ Sim |
| Sobrecarga da API | The model is overloaded |
503 ou 429 | ✅ Sim (após aguardar) |
| API Indisponível | The service is currently unavailable |
503 | ✅ Sim (após aguardar) |
| Erro de Autenticação | Invalid API key |
401 | ❌ Não (verifique a Key) |
Características do erro de timeout:
except requests.exceptions.Timeout:
# Timeout no cliente, nenhuma resposta recebida do servidor
print("A requisição expirou (timeout)")
except requests.exceptions.HTTPError as e:
if e.response.status_code == 503:
# O servidor retornou 503, indicando claramente sobrecarga
print("API sobrecarregada")
Fluxo de diagnóstico:
- Se a exceção for do tipo
Timeout, o problema é de tempo limite → aumente o tempo ou use a interface HTTP. - Se receber uma resposta HTTP com status 503/429, a API está sobrecarregada → aguarde um pouco ou mude de provedor.
- Se o conteúdo da resposta mencionar "overloaded", os recursos computacionais do Google estão insuficientes → considere usar modelos alternativos da APIYI (como o Seedream 4.5).
Resumo
Pontos centrais sobre desconexões por timeout na API do Nano Banana Pro:
- Configuração de Timeout: Recomendamos 300 segundos para 1K/2K e 600 segundos para 4K, cobrindo oscilações de rede e picos de uso.
- Problemas com HTTP/2: O HTTP/2 em cenários de conexões longas sofre com bloqueio de início de fila TCP e esgotamento de identificadores de fluxo; sugerimos forçar o uso de HTTP/1.1.
- Vantagem da porta HTTP: A interface HTTP da APIYI (http://api.apiyi.com:16888/v1) evita o overhead do handshake TLS e a negociação HTTP/2, aumentando a estabilidade.
- Estratégia de Retentativa: Implemente retentativas com recuo exponencial (exponential backoff) para lidar com instabilidades temporárias de rede.
- Otimização da Plataforma: A APIYI oferece configurações de timeout otimizadas, retentativas inteligentes e compensação de faturamento, elevando significativamente a taxa de sucesso na geração de imagens 4K.
Recomendamos a integração rápida da API do Nano Banana Pro através da APIYI (apiyi.com). A plataforma oferece uma interface de porta HTTP dedicada e otimizada, com timeouts configurados adequadamente por padrão e suporte a todas as resoluções de 1K a 4K, sendo ideal para deploys em produção.
Autor: Equipe Técnica APIYI | Em caso de dúvidas técnicas, visite a APIYI (apiyi.com) para mais soluções de integração de modelos de IA.
