Ошибка 500: что делать, если gemini-2.5-pro не отвечает
Код 500 означает, что сервер столкнулся с непредвиденной внутренней ошибкой при обработке запроса. Обычно это не проблема формата запроса, а временный сбой на стороне сервиса или вышестоящей модели.
500 Internal Server Error — непредвиденная внутренняя ошибка сервера. Большинство 500 — кратковременные сбои узла, и повтор с экспоненциальной задержкой обычно проходит. Если ошибка повторяется, вероятно, конкретная комбинация параметров попадает в необработанный крайний случай.
gemini-2.5-pro предоставляется компанией Google. Всё на этой странице — причины, решения и измеренные данные — собрано по реальной работе этой модели на уровне шлюза.
В этом шлюзе самая частая причина — Временный сбой вышестоящего сервиса модели. Рекомендуемое первое действие: Повторите запрос чуть позже — большинство 500 кратковременны.
Возможные причины
- Временный сбой вышестоящего сервиса модели
- Запрос попал на перезапускающийся узел
- Тело запроса вызвало необработанный крайний случай
- Кратковременная перегрузка
Как исправить
- Повторите запрос чуть позже — большинство 500 кратковременны
- Попробуйте другую модель того же поставщика, чтобы понять, единичный ли это сбой
- Упростите тело запроса (уберите редкие параметры) и повторите
- Если ошибка постоянна, напишите нам, указав время запроса
Повтор с экспоненциальной задержкой
Ниже — пример повтора, когда gemini-2.5-pro возвращает 500: до 5 попыток, ожидание растёт и добавляется случайный джиттер, чтобы параллельные запросы не повторялись одновременно. Base URL и API key читаются из переменных окружения — не хардкодьте их.
import os, time, random
import requests
BASE = os.getenv("OPENAI_BASE_URL") # e.g. https://<your-gateway>/v1
KEY = os.getenv("OPENAI_API_KEY")
MODEL = 'gemini-2.5-pro'
def chat(messages, retries=5):
"""Retry with exponential backoff + jitter."""
for i in range(retries):
try:
r = requests.post(
BASE + "/chat/completions",
headers={"Authorization": "Bearer " + KEY},
json={"model": MODEL, "messages": messages, "stream": True},
timeout=60,
)
if r.status_code == 429 or r.status_code >= 500:
time.sleep(min(2 ** i + random.uniform(0, 1), 30))
continue
r.raise_for_status()
return r.json()
except requests.exceptions.Timeout:
time.sleep(min(2 ** i + random.uniform(0, 1), 30))
raise RuntimeError("gave up after " + str(retries) + " retries")
print(chat([{"role": "user", "content": "hello"}]))Ключевые данные этой модели
| API-эндпоинт | https://api.airai.cc/v1 |
|---|---|
| Совместимо с OpenAI | OpenAI-compatible |
| Производитель | |
|---|---|
| Контекст | 1M |
| Возможности | Reasoning, Tools, Files, Vision, Audio |
| Форматы API | openai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search |
| Формула биллинга | p * 1.25 + cr * 0.125 + c * 10) : tier("200k_plus", p * 2.5 + cr * 0.25 + c * 15 |
Частые вопросы
Помогают ли асинхронный или пакетный режим избежать 500?
Здесь важны параллелизм и таймауты, а не сама модель. Сначала снизьте параллелизм — чаще всего проблема с пропускной способностью исчезает. Окно контекста модели — 1M, вендор — Google. Для длинного вывода увеличьте таймаут до 60 секунд и более. Начните с низкого параллелизма, понаблюдайте несколько минут, затем повышайте.
Как мониторить 500 в продакшене?
Сохраняйте идентификатор запроса и исходный текст ответа, иначе локализовать нечего. Модель предоставляется Google, поэтому статус upstream определяется объявлениями вендора. Логируйте идентификатор запроса при каждом отказе — он полезнее кода состояния. Сначала воспроизведите это в тестовом окружении с тем же телом запроса.
Поможет ли переход на аналог другой модели от другого вендора убрать 500?
Имейте наготове резервную модель. Резерв на уровне архитектуры надёжнее, чем латать каждую ошибку по отдельности. У этой модели от Google несколько upstream-узлов, между которыми шлюз может переключаться. Держите наготове более лёгкую резервную модель, и основной поток не прервётся. Вынесите имя модели в конфиг, чтобы переключение upstream не требовало правок кода.
Связан ли 500 с тарификацией gemini-2.5-pro?
Списания не будет: в استخدام идёт только реально сгенерированный вывод. При тарифе p * 1.25 + cr * 0.125 + c * 10) : tier("200k_plus", p * 2.5 + cr * 0.25 + c * 15 стоимость длинного вывода определяется в основном выходными токенами. Сначала проверьте баланс и лимиты скорости в консоли, потом ищите в коде. Оценивая стоимость по p * 1.25 + cr * 0.125 + c * 10) : tier("200k_plus", p * 2.5 + cr * 0.25 + c * 15, учитывайте и бюджет на повторы.
Другие ошибки этой модели
- gemini-2.5-pro: ошибка 429 — причины и решение
- gemini-2.5-pro: ошибка timeout — причины и решение
- gemini-2.5-pro: ошибка 502 — причины и решение
- gemini-2.5-pro: ошибка 503 — причины и решение
- gemini-2.5-pro: ошибка 504 — причины и решение
- gemini-2.5-pro: ошибка 401 — причины и решение
- gemini-2.5-pro: ошибка 403 — причины и решение
- gemini-2.5-pro: ошибка 400 — причины и решение
Другие модели с той же ошибкой
- gpt-5
- claude-opus-5
- deepseek-v4-pro
- grok-4.3
- llama-3.3-70b-instruct
- qvq-max
- qwq-32b
- glm-5
- MiniMax-M3
- kimi-k3
- hy3
- doubao-seed-evolving
- mimo-v2.5
- gpt-4o
- claude-opus-4-6
- gemini-2.5-flash
Данные обновлены: 2026-10-10 18:35