ПРАКТИЧЕСКИЙ РАЗБОР · 7 минут

Как выбрать бесплатную модель в OpenRouter

Как найти бесплатные модели в OpenRouter, сравнить их возможности, проверить лимиты и выбрать модель для своего AI-приложения

Вы открыли каталог OpenRouter и увидели несколько моделей с пометкой free. Одна предназначена для обычного чата, другая работает с кодом, третья принимает изображения. При этом у каждой свои ограничения, а список доступных вариантов со временем меняется.

Для первого AI-приложения необязательно сразу выбирать платную модель. Начать можно с бесплатной, проверить её на реальных задачах и понять, какого качества ответ нужен вашему продукту. Разберём, где искать такие модели и на что смотреть перед подключением.

Где найти бесплатные модели

У OpenRouter есть каталог бесплатных моделей. В нём можно посмотреть доступные варианты и перейти к странице каждой модели. У моделей с суффиксом :free стоимость обработки токенов равна нулю. Но нулевая цена не означает отсутствие ограничений. Для бесплатных запросов действуют лимиты, а отдельный провайдер может временно не принимать новые обращения.

Названия моделей тоже могут изменяться. Поэтому лучше выбирать не по старому списку из статьи, а по текущему каталогу и характеристикам конкретного варианта. Для начала нас интересуют три вещи: что модель умеет, сколько контекста принимает и насколько стабильно отвечает на наши запросы.

Сначала определяем задачу

Представим три приложения. Первое отвечает на вопросы посетителей интернет-магазина. Здесь нужна модель, которая понимает обычный текст и формулирует ответы на русском языке.

Второе помогает читать программный код. Для него имеет смысл проверить модель на объяснении ошибок и небольших фрагментах Python или JavaScript.

Третье принимает фотографию и отвечает на вопросы о ней. В таком случае обычная текстовая модель не подойдёт. Нужна поддержка изображений на входе.

У двух бесплатных моделей может быть одинаковая стоимость, но различаться назначение. Поэтому выбор по одному признаку free мало что говорит о результате.

Что означают параметры в каталоге

На странице модели обратите внимание на несколько характеристик.

Контекстное окно. Оно определяет, какой объём текста модель может обработать в рамках запроса. Большое окно пригодится для длинных документов и истории переписки, но само по себе не гарантирует точный ответ.

Поддерживаемые данные. Одни модели работают только с текстом, другие могут принимать изображения или другие форматы. Проверяйте именно входные возможности.

Цена. У бесплатного варианта стоимость входных и выходных токенов указана как нулевая. Но это характеристика тарифа модели, а не обещание постоянной доступности.

Ограничения доступа. Бесплатные варианты могут иметь дневные и поминутные лимиты. Дополнительные ограничения возможны на стороне провайдера.

Эти сведения помогают отсечь заведомо неподходящие варианты ещё до написания кода.

Как быстро сравнить две модели

Не нужно сразу создавать сложную систему тестирования. Возьмите три одинаковых запроса, близких к задачам будущего приложения. Например, для AI-чата можно проверить следующие сценарии.

  1. Объяснить простую ошибку Python человеку, который только начал программировать.
  2. Кратко пересказать текст объёмом в несколько абзацев.
  3. Ответить на вопрос по заданной инструкции, не добавляя посторонних объяснений.

Отправьте одинаковые сообщения двум моделям и посмотрите на ответы. Оценивать удобно понятность, соблюдение инструкции, ошибки и время ожидания. Один удачный ответ не означает, что модель будет справляться со всеми запросами. Но такая проверка позволяет быстрее выбрать кандидата для своего проекта.

Как указать конкретную модель в API

В запросе OpenRouter модель выбирается полем model. Вместо постоянно меняющегося названия возьмём значение из переменной окружения.

import os
import requests

response = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
        "Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={
        "model": os.environ["OPENROUTER_MODEL"],
        "messages": [
            {
                "role": "user",
                "content": "Объясни, что такое API, простыми словами",
            }
        ],
    },
    timeout=30,
)

response.raise_for_status()
print(response.json()["choices"][0]["message"]["content"])

В OPENROUTER_MODEL укажите идентификатор выбранной бесплатной чат-модели из каталога. Для сравнения достаточно менять значение этой переменной, оставляя текст запроса прежним. Предполагается, что API-ключ уже создан. Порядок его получения и безопасного хранения разобран отдельно в статье «Где взять API-ключ OpenRouter».

А можно вообще не выбирать модель

Да, OpenRouter предоставляет маршрутизатор openrouter/free. Он выбирает доступную бесплатную модель, которая подходит для запроса. Это удобный вариант для первого эксперимента. Но есть особенность, разные обращения могут обрабатываться разными моделями, поэтому ответы и их поведение не обязательно будут одинаковыми. Для проверки конкретного качества лучше указывать фиксированную модель. Для прототипа, где требуется просто получить ответ и познакомиться с API, можно использовать бесплатный маршрутизатор.

Полное подключение такого запроса на Python показано в статье «Как подключить бесплатную нейросеть к своему приложению».

Почему бесплатная модель перестаёт отвечать

Сегодня выбранная модель доступна, а завтра запрос возвращает 429 или сообщение о недоступности провайдера. Это не обязательно ошибка вашего приложения. Бесплатные запросы могут ограничиваться количеством обращений в минуту и за день. У конкретного провайдера также бывают собственные ограничения и временные сбои. Некоторые бесплатные варианты исчезают из каталога, а новые появляются.

Поэтому для AI-сервиса с пользователями желательно предусмотреть запасной вариант. Например, приложение может хранить список допустимых моделей и пробовать следующую при временной недоступности первой. При этом нельзя бесконечно повторять запросы и игнорировать лимиты. Задача состоит в том, чтобы понимать, какая модель ответила пользователю и сколько времени занял запрос.

Более подробный разбор переключения моделей и обработки сбоев есть в моей статье на Habr об агрегаторе LLM.

От выбора модели к собственному AI-сервису

Бесплатная модель позволяет проверить идею приложения без расходов на каждый эксперимент. Но по мере появления пользователей понадобится управлять запросами, ключами, ошибками, историей диалога и доступом к функциям.

В демонстрационном AI-Chat можно посмотреть приложение, построенное вокруг взаимодействия с языковыми моделями.

Курс «AI на Django и Next II» связывает подключение LLM с серверной разработкой на Django и интерфейсом Next.js.

Для выбора первой модели достаточно одного вопроса. Какую задачу она должна решать в вашем приложении? После этого каталог бесплатных вариантов превращается из длинного списка названий в набор конкретных кандидатов.