OpenRouter — это платформа‑агрегатор, которая предоставляет единый API для доступа к более чем 400 моделям искусственного интеллекта от ведущих мировых компаний. Представьте себе «Netflix для AI‑моделей» — одна подписка, один API, сотни возможностей. Вместо регистрации в десятках различных сервисов и изучения уникальных интерфейсов каждого провайдера, OpenRouter объединяет все под одной крышей.
OpenRouter решает ключевые проблемы AI‑разработки: упрощает интеграцию с множеством моделей, обеспечивает прозрачное ценообразование и избавляет от привязки к одному провайдеру. Разработчики получают возможность легко переключаться между моделями от DeepSeek, Meta, xAI, Mistral, Qwen и других провайдеров, тестировать разные решения для одной задачи и масштабировать приложения без привязки к конкретному поставщику.
Интеллектуальная ротация и отказоустойчивость
OpenRouter автоматически ротирует запросы между доступными моделями, учитывая их текущий статус, загрузку и стоимость. Платформа в режиме реального времени отслеживает доступность провайдеров и может мгновенно переключить трафик на альтернативные модели при сбоях или перегрузках. Это обеспечивает высокую надежность сервиса даже когда отдельные провайдеры испытывают технические проблемы.
Разработчики могут настраивать собственные стратегии fallback, указывая приоритетный список моделей для каждого типа задач. Например, можно настроить автоматическое переключение с быстрой и дешевой модели на более мощную при необходимости получения качественного результата, или создать цепочку резервных моделей разных провайдеров. Такая гибкость позволяет строить отказоустойчивые AI‑системы, которые продолжают работать даже при недоступности предпочтительных моделей, автоматически адаптируясь к изменяющимся условиям.
Доступ в России
На момент написания статьи OpenRouter не блокирует российских пользователей по IP‑адресу, поэтому доступ к платформе открыт. Основная сложность заключается в невозможности оплаты услуг российскими банковскими картами.

Эта проблема решается с помощью ProxyAPI — сервиса, который я использую для работы с моделями OpenAI, Anthropic и Google Gemini. Недавно они добавили поддержку OpenRouter в России с прозрачной фиксированной комиссией. Процесс простой: регистрируемся на платформе, получаем API‑ключ, пополняем баланс удобным способом и начинаем работать со всеми моделями OpenRouter.
Примеры использования на Python
Установка
OpenRouter совместим с библиотекой OpenAI, поэтому для работы достаточно установить стандартный пакет:
pip install openai
Первый запрос
from openai import OpenAI
client = OpenAI(
base_url="https://api.proxyapi.ru/openrouter/v1",
api_key="<КЛЮЧ-PROXYAPI>"
)
response = client.chat.completions.create(
model="deepseek/deepseek-chat",
messages=[
{"role": "user", "content": "Объясни принцип работы нейронных сетей простыми словами"}
]
)
print(response.choices[0].message.content)
В этом примере мы обращаемся к модели DeepSeek Chat через OpenRouter. Достаточно указать base_url
OpenRouter и ваш API‑ключ, после чего можно использовать любую доступную модель, просто меняя параметр model
. Полный список доступных моделей можно получить через эндпоинт /api/v1/models
или на сайте OpenRouter.
Настройка fallback-моделей и управление провайдерами
OpenRouter предоставляет мощные инструменты для обеспечения надежности запросов и контроля над выбором провайдеров.
Базовая настройка fallback-моделей
from openai import OpenAI
client = OpenAI(
base_url="https://api.proxyapi.ru/openrouter/v1",
api_key="<КЛЮЧ-PROXYAPI>"
)
response = client.chat.completions.create(
model="deepseek/deepseek-chat",
messages=[
{"role": "user", "content": "Напиши код для анализа данных на Python"}
],
extra_body={
"models": [
"meta-llama/llama-3.1-405b-instruct",
"mistralai/mistral-medium-3"
]
}
)
print(response.choices[0].message.content)
Параметр extra_body.models
позволяет указать список fallback‑моделей в порядке приоритета. Если основная модель (DeepSeek Chat) недоступна или перегружена, OpenRouter автоматически попробует следующую в списке — сначала Llama 3.1, затем Mistral Medium 3.
Разрешение только определенных провайдеров
Параметр provider.only
позволяет ограничить выбор конкретными провайдерами. Это полезно, когда вы хотите использовать только проверенные или наиболее подходящие для задачи провайдеры:
response = client.chat.completions.create(
model="meta-llama/llama-3.1-70b-instruct",
messages=[
{"role": "user", "content": "Проанализируй этот код на безопасность"}
],
extra_body={
"provider": {
"only": ["fireworks", "together"]
}
}
)
В этом примере модель Llama 3.1 70B будет запущена только на провайдерах Fireworks или Together. Если оба недоступны, запрос завершится ошибкой, а не переключится на другие провайдеры.
Исключение провайдеров
Параметр provider.ignore
позволяет исключить определенные провайдеры из рассмотрения.
response = client.chat.completions.create(
model="meta-llama/llama-3.3-70b-instruct",
messages=[
{"role": "user", "content": "Напиши краткое резюме этой статьи"}
],
extra_body={
"provider": {
"ignore": ["deepinfra"] # Исключаем самый дешевый провайдер
}
}
)
Этот пример заставит OpenRouter использовать альтернативные провайдеры для Llama 3.3 70B, исключив DeepInfra, который обычно предлагает самые низкие цены, но может иметь нестабильное качество.
Поиск доступных моделей
Полный список доступных моделей можно найти двумя способами:
Через веб-интерфейс
На сайте openrouter.ai представлен удобный каталог всех доступных моделей с подробной информацией: стоимость за токен, размер контекстного окна, особенности каждой модели и рейтинги производительности.
Через API
import requests
response = requests.get(
"https://api.proxyapi.ru/openrouter/v1/models",
headers={
"Authorization": "Bearer <КЛЮЧ-PROXYAPI>"
}
)
models = response.json()
for model in models['data']:
print(f"ID: {model['id']}")
print(f"Название: {model['name']}")
print(f"Стоимость ввода: ${model['pricing']['prompt']}")
print(f"Стоимость вывода: ${model['pricing']['completion']}")
print("---")
Этот эндпоинт возвращает актуальную информацию обо всех моделях: их идентификаторы для API, текущие цены, ограничения и статус доступности. Особенно удобно для автоматического выбора оптимальной модели по соотношению цена/качество или для мониторинга доступности сервисов.
Мультимодальные возможности: PDF для любой модели
Одна из революционных особенностей OpenRouter — возможность работать с PDF‑документами на любой модели, даже тех, которые изначально не поддерживают обработку файлов. Это означает, что OpenRouter превращает все текстовые модели в мультимодальные, значительно расширяя их функциональность.
Как это работает
Когда модель поддерживает работу с файлами нативно (например, Llama или Grok), OpenRouter передает PDF напрямую модели. Однако для моделей, которые работают только с текстом (например, многие модели от DeepSeek, Mistral или локальные модели), OpenRouter автоматически:
Получает PDF‑файл
Извлекает из него текст с помощью собственных алгоритмов обработки
Передает обработанный текст модели
Возвращает результат, как если бы модель изначально поддерживала PDF
Это прозрачно для пользователя — API остается одинаковым независимо от того, поддерживает ли модель файлы или нет.
Типы обработки PDF
OpenRouter предлагает несколько движков для обработки PDF‑документов:
pdf-text
(бесплатно) — подходит для качественных PDF с четким текстомmistral-ocr
(платно) — лучший выбор для отсканированных документов и PDF с изображениямиnative
— для моделей с встроенной поддержкой файлов (тарифицируется как входные токены)
Пример работы с PDF
from openai import OpenAI
client = OpenAI(
base_url="https://api.proxyapi.ru/openrouter/v1",
api_key="<КЛЮЧ-PROXYAPI>"
)
response = client.chat.completions.create(
model="deepseek/deepseek-chat", # Эта модель не поддерживает PDF нативно
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Проанализируй этот договор и выдели основные пункты"
},
{
"type": "file",
"file": {
"filename": "contract.pdf",
"file_data": "https://example.com/contract.pdf" # Можно также использовать base64
}
}
]
}
],
extra_body={
"plugins": [
{
"id": "file-parser",
"pdf": {
"engine": "pdf-text" # Выбираем бесплатный движок
}
}
]
}
)
print(response.choices[0].message.content)
В этом примере мы отправляем PDF‑файл модели DeepSeek Chat, которая изначально работает только с текстом. OpenRouter автоматически обработает PDF, извлечет текст и передаст его модели, которая сможет проанализировать документ как обычный текст.
Заключение
В этой статье я сфокусировался на специфических для OpenRouter возможностях — тех, которые выделяют его среди других AI‑платформ. OpenRouter также поддерживает все стандартные функции OpenAI API: reasoning‑модели, streaming, работу с функциями и инструментами, кэширование промптов и многое другое. Эти возможности работают точно так же, как в оригинальном OpenAI API, поэтому для их изучения лучше обращаться к официальной документации OpenAI.
OpenRouter для меня стал настоящей находкой — один API, множество моделей, надежность и никакой привязки к конкретному провайдеру. Если вы серьезно занимаетесь AI‑разработкой, рекомендую попробовать.
Удачи с вашими проектами!