Настройка OmniRoute для работы с бесплатными и платными моделями ИИ, переключение между поставщиками и защита сервера.
Key Takeaways
- OmniRoute позволяет гибко переключать запросы между разными поставщиками моделей ИИ без изменения клиентских настроек.
- Установка шлюза на отдельном сервере обеспечивает контроль над ключами и журналами запросов.
- Использование бесплатных моделей для простых задач снижает расходы на платные подписки.
- Настройка безопасности сервера критична для предотвращения несанкционированного доступа.
- Шлюз поддерживает строгий режим, запрещающий платные запросы, что помогает контролировать бюджет.
What the video covers
- Рассмотрена ситуация с ограничением подписки и необходимостью продолжить работу через другого поставщика.
- Объяснена роль программы Ониро как шлюза для переключения запросов между поставщиками.
- Показана установка шлюза на отдельном сервере с настройкой безопасности и защитой от перебора паролей.
- Рассмотрена минимальная и рекомендуемая конфигурация сервера для работы OmniRoute.
- Пошаговая установка шлюза с использованием плагина Omni Road Steck через clotкод.
- Настройка DNS-записи и автоматическая выдача сертификата для защищённого соединения.
- Обсуждение работы с ключами поставщиков и шифрованием базы данных с доступами.
- Подключение бесплатных моделей Мистраль и Clot Fayer, а также платного посредника Open Router.
- Организация порядка доступа к моделям с учётом подписок и оплаты по использованию.
- Использование шлюза для оптимизации расходов и контроля доступа к моделям ИИ.
Chapters
- 00:00Введение и постановка задачи
- 01:15Установка и роль программы Ониро (шлюз)
- 02:50Требования к серверу и конфигурация
- 04:12Настройка безопасности сервера и SSH
- 05:44Подготовка файла настроек и запуск установки
- 07:02Проверка работы шлюза и смена пароля администратора
- 08:31Подключение бесплатных и платных моделей
- 10:03Оптимизация расходов и управление доступом
Full Transcript — Download SRT & Markdown
Speaker A
Представьте себе такую ситуацию. У вас закончится недельный лимит подписки в среду вечером. А сдавать работу нужно в четверг утром. Ждать, пока откроется новое окно, не выйдет. Откроется оно в понедельник. Остаётся либо заплатить второй раз за более дорогой план, либо
Speaker A
закончить работу на той же самой модели, но через другую дверь. Ролик про вторую дорогу и заодно про то, как перестать платить за задачи, которым большая модель вообще не нужна. Для обеих задач подойдёт одна схема, но с разными настройками. Когда я работаю за
Speaker A
терминалом, сначала запросы идут по подписке. Если закончится, нужна возможность продолжить с той же моделью через другого поставщика.
Speaker A
За оставшуюся работу я готов доплатить, чтобы не менять модель посреди задачи. Агенту, который по расписанию готовит сводку из материалов, важнее подобрать модель под эту простую работу. Поэтому сначала он обращается к бесплатным моделям, а платную использует как резерв, если ни одна из них не сможет
Speaker A
обработать запрос. Дальше я соберу оба сценария на живом сервере и проверю, что произойдёт при отказе выбранного поставщика.
Speaker A
Установка тоже будет в кадре, начиная с пустой машины. Переключать запросы между поставщиками будет Ониро. Программа, которую я установлю на сервер. Дальше буду называть её шлюзом, потому что она делает. Клиент обращается к одному адресу на моём сервере, а шлюз выбирает,
Speaker A
кому отправить запрос. Ключи поставщиков хранятся в шлюзе, поэтому при переключении клиенту не приходится менять настройки. Поставщики выстроены в лестницу, где каждая ступень задаёт модель и способ доступа к ней. Если первая не отвечает, шлюз пробует следующую, а агент продолжает работать
Speaker A
через прежний адрес. Смысл собственной установки для меня в контроле над ключами поставщиков и журналом запросов, которые остаются на моём сервере. Когда доступ организован через чужой сервис, эту часть работы приходится доверить его владельцу. Для круглосуточной работы я ставлю шлюз на отдельный сервер. Ноутбук
Speaker A
для такого режима мне не подходит, а заказать сервер у хостера можно за несколько минут. На отдельной машине будут храниться ключи от всех подключенных моделей, поэтому размещать рядом рабочий сайт или посторонние сервисы я бы не стал. Машину выбираю за
Speaker A
пределами России. Часть поставщиков не принимает запросы с российских адресов. Сам хостер при этом может быть российским, если у него есть серверы, например, в Европе. Минимальная конфигурация — одно ядро, 2 Гб памяти и 20 Гб диска. Это примерно 500 руб. в
Speaker A
месяц. Сам шлюз занимает почти гигабайт памяти, а образ — почти 6 гигов диска, поэтому меньшую конфигурацию брать не стоит.
Speaker A
Рекомендуемая конфигурация с запасом на журналы и историю запросов стоит около 1 000 руб. в месяц. Это два ядра, 4 ГБ памяти и 40 ГБ диска. При заказе нужно добавить публичный SSH-ключ, чтобы потом войти на сервер без пароля. Почти все
Speaker A
хостеры позволяют указать ключ в форме заказа, а при отсутствии такого поля его придётся скопировать отдельной командой после создания машины. Разворачивать Omni Road я буду через clotкод с помощью своего плагина Omni Road Steck. Для этого сначала добавляю мой Marketпйс и
Speaker A
устанавливаю из него плагин. Ссылки на установку плагина будут в описании к видео. В плане два скила. Первый — подготовить сервер и настроить защиту, а второй установит сам Omniроуд.
Speaker A
Дальше покажу их работу по очереди, начиная с подготовки сервера. Перед установкой шлюза я закрываю сервер от посторонних подключений, потому что перебор паролей начинается вскоре после появления машины в сети. Откладывать защиту здесь незачем. Для этого запускаю второй навык из того же плагина с
Speaker A
параметрами доступа, новым портом SSH и портами, которые нужно оставить открытыми. Смена порта убирает SSH со стандартного адреса. Открытыми остаются порты восьмидесятые и 443.
Speaker A
Они понадобятся для сертификата и работы шлюза. Навык отключает пароли и оставляет вход по ключу, одновременно настраивая защиту от перебора,
Speaker A
автоматические обновления и ограничение частоты подключения к новому порту SSH. Сначала открывается новый порт и проверяется вход через него, и только после успешной проверки закрывается старый. Такой порядок защищает от потери доступа при смене настроек. В конце появляется свод с новым портом для
Speaker A
подключения, который нужно сохранить. Старый после этой настройки уже не принимает соединение. После защиты сервера я добавляю DNS-запись, которая связывает поддомен с адресом машины. Это занимает около 20 секунд, а при установке автоматически выпускается сертификат, чтобы у шлюза были собственное имя и защищённое соединение.
Speaker A
Для установки нужен файл настроек с секретами, три длинные случайные строки и пароль администратора. Скрипт их не создаёт, поэтому подготовку поручаю агенту. Агент записывает их сразу в файл, минуя переписку, и оставляет право чтения только владельцу. Установка пока не начинается, чтобы я мог проверить
Speaker A
результат. В файле уже включены защита рабочего адреса ключом и шифрование базы с доступами поставщиков, которые по умолчанию отсутствуют. Эти настройки я задаю до запуска. При запуске установки передаю настроенный на предыдущем шаге порт SSH. Без этого скрипт попробует подключиться через закрытый порт и не
Speaker A
сможет продолжить. Докер на сервере пока отсутствует, и скрипт устанавливает его из официального репозитория с проверкой подписей. Ради этого я и дорабатывал установку. Отдельная инструкция для докера больше не требуется. Затем скрипт проверяет настройки до запуска контейнеров и при пустом обязательном
Speaker A
поле или оставленной заглушке останавливается. Приложение с неполной конфигурацией запускаться не должно. После проверки загружается образ, запускается шлюз, база счётчиков и веб-сервер с сертификатом.
Speaker A
Версия образа закреплена, потому что проект быстро меняется, и автоматически брать последнюю я не хочу.
Speaker A
В конце установки идут проверки, сертификат выдан, приложение отвечает, а запрос без авторизации получает отказ.
Speaker A
Это подтверждает, что рабочий адрес закрыт. Пользоваться подключенными моделями без ключа шлюза не получится. После входа в панель я меняю пароль администратора, потому что начальный остался в файле настроек открытым текстом, и дальше использовать его не стоит. Шлюз установлен и требует ключ
Speaker A
для доступа, но поставщики модели пока не подключены. Начинаю с бесплатных мистраль и Clot Fayer, для которых ключи выдаются на сайтах самих поставщиков.
Speaker A
Для простых задач этих моделей, на мой взгляд, достаточно. На проверке мистраль ответил за 0,84 секунды, поэтому бесплатный доступ здесь не означает долгое ожидание. У Clot Flayer есть дневная норма примерно на десяток задач такого размера, после которой использование становится платным. Следом
Speaker A
подключаю Open Router — платного посредника, который даёт доступ к сотням моделей через общий ключ. Ключ подготовлен заранее, и среди подключенных на этом шаге поставщиков оплачиваемые запросы будут через него. В каталоге шлюза почти 1800 позиций.
Speaker A
Причём одна модель может встречаться несколько раз. Приставка в имени показывает поставщика, через которого доступен конкретный вариант. Например, Clot есть в списке через посредника с обычным IP-ключом, хотя прямого доступа к антропик у меня нет.
Speaker A
Получается, что выбор модели и способа оплаты не обязательно связаны с одним поставщиком. После исчерпания лимита можно обратиться к той же модели через другой доступ, если она есть в каталоге.
Speaker A
Для собственной работы фонового агента я выпускаю отдельные ключи шлюза с разными ограничениями. Раздельный учёт поможет понять, на что ушли деньги. Для сценария с подпиской подключаю оставшихся поставщиков тоже через обычные ключи. Подписка оплачивается фиксированной суммой каждый месяц, независимо от того, использую я
Speaker A
её сегодня или нет. Дополнительно подключаю прямой доступ к другому производителю, чтобы резерв не зависел от посредника. В ком задаю порядок доступов. Сначала JLAM по подписке, затем та же модель через Open Router с оплатой по использованию.
Speaker A
Последним ставлю Deep ПСК напрямую, другую модель от другого производителя. Подписка идёт первой, потому что за неё уже заплачено. И п
Speaker A
Доступ через Open Router нужен, чтобы продолжить работу на привычной модели, когда подписка недоступна. В каталоге модель названа по разработчику, но выполнять запрос у посредника может другая площадка. Открытые веса позволяют размещать модель примерно на тридцати площадках, между которыми посредник выбирает самостоятельно. Если
Speaker A
одна недоступна, он может направить запрос другой, сохранив имя модели. Прямой псик не зависит от этих звеньев.
Speaker A
Он нужен на случай отказа самого посредника или проблем с первой моделью. Запускаю клод-код в редакторе и направляю запросы на адрес шлюза через отдельные настройки подключения. Команды Интерфейс остаются привычными, а выбор поставщика теперь происходит на стороне шлюза. Агент выполняет задачу, и рядом в
Speaker A
панели появляется запись о запросе и ответившей ступени. В строке журнала указана и модель, и поставщик. По этой паре можно определить использованный доступ. Одного имени модели для такого учёта недостаточно, потому что она доступна несколькими способами. Для проверки переключения я отключаю первую
Speaker A
ступень в панели, имитируя недоступность подписки, потому что расходоть весь лимит ради съёмки пришлось бы часами.
Speaker A
Так я проверяю переход к резервному доступу, не меняя задачу клиента. Повторяю задачу, и агент получает ответ от той же модели через посредника. Смена поставщика видна в записи запроса на следующей ступени. клиент продолжил работу, а дальнейшее использование модели теперь отплачивается
Speaker A
отдельно от подписки. Мне чаще нужен второй сценарий, когда агент по расписанию разбирает материалы и готовит короткую сводку, пока я занимаюсь другими делами. Для такой задачи я бы начал с бесплатной модели и переходил к платной только если её возможностей не
Speaker A
хватит. Для проверки бесплатных моделей я выбрал подготовку сводки из готовых материалов. Здесь понятны исходные данные и результат. Качество можно проверить по самой сводке. Для такой фоновой рутины я сначала пробую простую модель и только потом решаю, нужна ли более дорогая. В отдельном комбо порядок
Speaker A
обратный предыдущему сценарию. Бесплатные модели идут первыми, а платная через посредника используется, когда они недоступны или не принимают запрос. Порядок я задаю вручную. Он определяет, какой доступ шлюз проверить раньше остальных. Бесплатный доступ ограничен дневной нормой, частотой запросов или другими условиями
Speaker A
поставщика. Если очередной запрос не проходит, шлюс пробовать следующую ступень без ручного переключения. Поэтому человеку не приходится следить за исчерпанием каждой квоты. Агент получает собственный ключ шлюза с дневным пределом трат в 2 доллара. Это ограничение задаю на случай ошибки в
Speaker A
порядке моделей, чтобы платный резерв не использовался бесконтрольно. Для агентов без присмотра я настраиваю такой предел заранее. Запускаю агента одной команды и жду завершения обработки. В результате он приносит сводку из пяти пунктов по выбранным материалам. В панели видны девять забросов, и все они прошли через
Speaker A
первую бесплатную модель. По тарифам Мистраль этот прогон бесплатный, хотя шлюз может показывать ненулевую стоимость. Например, для проверочного запроса с ответом да он показал 0,15 млн доллара. Это расчёт по прайс-листу модели, а не фактическое списание у поставщика.
Speaker A
Время ответа бесплатной ступени составляет от 0,5 до 1,2 секунды. Поэтому на этой задаче экономия не потребовала долгого ожидания результата.
Speaker A
Мне такой вариант подходит для регулярной подготовки сводок. Отключаю первую бесплатную ступень и повторяю запуск, но вторая не принимает запрос, хотя я [фыркает] рассчитывал получить ответ от неё. У модели Clotфer окно в 24.000 токенов, а клодкод отправляет около 30.000 ещё до получения ответа.
Speaker A
Такой запрос не помещается в окно, и шлюз переходит к платной модели через посредника. Я оставил этот отказ в ролике, потому что он показывает реальное ограничение выбранной модели.
Speaker A
Запрос к платной ступени стоит примерно 0,1 цента, а обработка продолжилась без моего участия. Несовместимость обнаружилась при просмотрена.
Speaker A
Без резервной ступени агент остановился бы на этом отказе. Стоимость обработки выбирается под задачу. Достаточно заранее задать подходящий порядок моделей. На этом прогоне платная ступень понадобилась после отказа бесплатных.
Speaker A
Шлюз переключился сам, а если бы это зависело от меня, ночной агент ждал бы до утра. Для обоих сценариев я намеренно выбрал подключение через обычный API.
Speaker A
ключи. У шлюза есть и другой способ. Вход в аккаунт поставщика, для которого показывается отдельное предупреждение.
Speaker A
При добавлении такого поставщика ещё до подключения появляется сообщение о расхождении с условиями использования сервиса. Соответствующие подключения помечаются отдельно. Читаю предупреждение, закрывая окно, не добавляя аккаунт. Для показанных сценариев этот способ не нужен, потому что обе лестницы уже работают через
Speaker A
ключи поставщиков. При таком подключении шлюс использует сессию аккаунта поставщика. Предупреждение касается работы через эту сессию. Поставщик может ограничить доступ или заблокировать аккаунт.
Speaker A
Практический смысл здесь в остатке подписки, которую человек не успевает использовать вручную и через шлюз отдаёт агентам, работающим без присмотра.
Speaker A
Экономию в таком случае приходится оценивать вместе с риском, о котором предупреждает сервис. Перед установкой я проверил исходники и нашёл настройки, которые не стал бы оставлять на доступном изнесервере.
Speaker A
Показанный установки, они уже изменены, но обычная инструкция этого не гарантирует. По умолчанию рабочий адрес открыт без ключа, поэтому посторонний может отправлять запросы за счёт владельца шлюза. Ключ шифрования базы пуст. Ключи поставщиков сохраняются на диске открытым текстом. Пароль администратора задан известной
Speaker A
заглушкой, которую можно заменить при установке. При своей проверке я не обнаружил закладок или слежки. Код показался мне аккуратным, а по изменениям видно, что проект активно развивается. Обнаруженные проблемы, связанные с настройкой по умолчанию, которые в просмотренных руководствах обычно оставляли без объяснений. свой
Speaker A
шлюз имеет смысл оценивать по расходам на конкретную работу. Сам по себе он не делает модели дешевле, а сервер добавляет постоянный платёж. При ручной работе подписка в рассматриваемом сравнении обходится в разы дешевле оплаты по счётчику. Расчёт для дорогого плана даёт около 25 млн токенов в месяц.
Speaker A
Вручную такой объём трудно израсходовать. Часть оплаченного доступа остаётся неиспользованной. Ради этого остатка подписку и подключают к шлюзу. В следующем месяце платить придётся заново. Через шлюз этот остаток можно использовать для работы агентов.
Speaker A
Показанный способ подключения предполагает вход в аккаунт и сопровождается предупреждением, которое было на экране. Агент может работать ночью и обрабатывать задачи по долгу, поэтому его расход уже не ограничен моим временем за компьютером. Здесь не важны стоимость отдельной задачи и заранее
Speaker A
установленный предел трат. Отдельный ключ для агента - это удобный способ разделить учёт и задать ограничения, хотя само разделение ключей не обязательно. В этом ролике настроены последовательно переключения между моделями, но у шлюза есть и другие возможности, которые могут пригодиться
Speaker A
после установки. Режим автокомбо подбирает модели автоматически и предлагает готовые профили для экономии, скорости или написания кода. Стратегия разделения запросов Combo Strategy тоже настраивается. Кроме последовательной обхода ступени есть больше десятка способов выбрать следующую модель.
Speaker A
Сжатие контекста Compression Engines уменьшает объём данных, который уходит поставщику, и может снизить расходы на длинные диалоги с агентом.
Speaker A
Если платные запросы недопустимы, у шлюза есть строгий режим, который их запрещает. Это отдельная настройка для случая, когда продолжение задачи не оправдывает дополнительных расходов.
Speaker A
Если вся работа укладывается в одну модель и одну подписку, не вижу смысла обслуживать ради неё собственный шлюз.
Speaker A
Польза появляется, когда моделей несколько, агенты работают без пересмотра, и нужен контроль над хранением ключей и журналом запросов. На показанных задачах шлюз позволил продолжить работу после отказа поставщика и оставить бесплатную модель первой в очереди. Для меня этого достаточно. меньше ручных переключений и
Speaker A
понятнее, за какую работу я плачу.
Topics:OmniRouteИИ агентыбесплатные моделинастройка сервераОнироподписка ИИпереключение поставщиковбезопасность сервераDockerOpen Router











