Docs
Erros
Erros
Códigos de erro e como tratá-los na sua aplicação.
O Ignus Code retorna erros no formato padrão da OpenAI, facilitando o tratamento em código já existente.
Formato do erro
{
"error": {
"message": "Invalid API key provided.",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}Códigos HTTP
| Código | Tipo | Causa |
|---|---|---|
400 | invalid_request_error | Parâmetros inválidos ou ausentes |
401 | authentication_error | API key ausente ou inválida |
402 | insufficient_funds | Saldo insuficiente na carteira |
403 | permission_error | Sem permissão para o modelo solicitado |
404 | not_found_error | Modelo ou recurso não encontrado |
429 | rate_limit_error | Limite de requisições excedido |
500 | api_error | Erro interno (nosso ou do provedor) |
503 | service_unavailable | Provedor temporariamente indisponível |
Erros 429 e 503 do provedor são automaticamente retriados no próximo provedor disponível. Você só recebe o erro se todos os provedores da sua lista de fallback falharem.
Tratamento de erros
Python
from openai import OpenAI, APIError, AuthenticationError, RateLimitError
client = OpenAI(
base_url="https://proxy.ignustec.com.br/v1",
api_key="sk_ic_xxxxxxxxxxxxxxxxxxxx",
)
try:
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Olá"}],
)
print(response.choices[0].message.content)
except AuthenticationError:
print("API key inválida. Verifique suas credenciais.")
except RateLimitError:
print("Rate limit atingido. Aguarde e tente novamente.")
except APIError as e:
print(f"Erro da API: {e.status_code} — {e.message}")TypeScript
import OpenAI, { APIError } from "openai";
const client = new OpenAI({
baseURL: "https://proxy.ignustec.com.br/v1",
apiKey: process.env.IGNUS_API_KEY,
});
try {
const response = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Olá" }],
});
console.log(response.choices[0].message.content);
} catch (error) {
if (error instanceof APIError) {
console.error(`Erro ${error.status}: ${error.message}`);
if (error.status === 402) {
console.error("Saldo insuficiente. Adicione créditos no Dashboard.");
}
}
}Retry com backoff exponencial
Para erros 429 e 5xx, implemente retry com backoff:
import time
from openai import OpenAI, RateLimitError
client = OpenAI(
base_url="https://proxy.ignustec.com.br/v1",
api_key="sk_ic_xxxxxxxxxxxxxxxxxxxx",
)
def request_with_retry(messages, max_retries=3):
for attempt in range(max_retries):
try:
return client.chat.completions.create(
model="gpt-4o",
messages=messages,
)
except RateLimitError:
if attempt == max_retries - 1:
raise
wait = 2 ** attempt # 1s, 2s, 4s
time.sleep(wait)