Библиотека FAIRouter для C# вышла на NuGet и выбирает модель из 54 готовых вариантов
Библиотека FAIRouter для C# вышла на NuGet, в каталог пакетов .NET, в версии 0.1.0, поэтому собирать её из исходников больше не нужно. Маршрутизатор сам выбирает языковую модель под задачу: из вашего списка или из 54 популярных моделей, которые входят в комплект пакета. Отдельная модель-судья проверяет ответ и ставит оценку от 0 до 1, а отзывы человека дообучают веса. Установка занимает одну команду, dotnet add package FAI.Router, нужен .NET 10. • Профили Quality, Balance и Price переключаются на каждом запросе • Планка достаточности bar работает после трёх отзывов человека • Подключение: OpenRouter, FractalRouter или OpenAI-совместимый сервер
AI-обработка оригинала Habr AI; редакция Hamidun News
Библиотека FAIRouter для маршрутизации запросов между языковыми моделями теперь доступна на NuGet, в каталоге пакетов для платформы .NET. Пакет называется FAI.Router, текущая версия — 0.1.0, и собирать его из исходников больше не нужно. У моделей разные цены, скорость и сильные стороны, поэтому FAIRouter сам выбирает исполнителя под конкретное задание: либо из списка, который задаёт разработчик, либо из 54 популярных моделей, входящих в комплект пакета. Готовый ответ проверяет модель-судья, а затем маршрутизатор учится на отзывах человека. Схема состоит из двух частей: маршрутизатор выбирает модель, судья принимает или критикует результат, и обучаются оба.
Установка и первый запрос
Для работы нужен .NET 10 и ключ поставщика моделей. В примерах автор использует OpenRouter и кладёт ключ в переменную среды OPENROUTER_API_KEY. Консольный проект создаётся стандартно, затем подключается пакет командой dotnet add package FAI.Router.
Дальше достаточно вызвать FaiRouter.FromOpenRouterAsync и передать ключ, список идентификаторов моделей и путь к файлу базы. В примере кандидатами служат google/gemini-2.5-flash, openai/gpt-4.1-mini и anthropic/claude-haiku-4.5. В файле fai-router.db хранятся веса и журнал ходов; если файла нет, он создаётся. Если список моделей не указывать, выбор идёт среди 54 моделей из комплекта.
Метод AskAsync возвращает объект RouterAnswer с четырьмя полями: Winner (выбранная модель), Text (ответ), Score (оценка судьи от 0 до 1) и Critic (расхождения между заказом и ответом по пунктам). Если в задании просили четыре раздела и таблицу, а пришёл один раздел без таблицы, это будет видно в Critic. По умолчанию судьёй работает openai/gpt-4o-mini через того же поставщика.
Обучение, профили и планка достаточности
Самое интересное начинается с отзывов. Человек ставит оценку от 0 до 1, где 1 означает отличный ответ, а 0,2 — слабый. Для этого вызывается router.Feedback, затем Train с заданным числом эпох и Save. Веса сохраняются в базе, и на похожих задачах маршрутизатор учитывает накопленный опыт. Отзывы можно копить и обучать маршрутизатор реже, например раз в сутки. В журнале хранятся тексты запросов, об этом стоит помнить.
Баланс цены и качества задают три готовых профиля: Quality, Balance и Price. По умолчанию используется Balance, а менять профиль можно на каждом запросе через параметр weights.
Есть и другое правило: найти модели, которые справятся с задачей, и выбрать среди них самую дешёвую и быструю. Для этого служит планка достаточности bar — минимальная вероятность того, что ответ понравится человеку. Поле Reached показывает, дотянул ли кто-нибудь до планки. Она начинает работать, когда накопится хотя бы три отзыва человека.
AskAsync принимает и диалог целиком. Задание определяется по последней реплике пользователя, а модель видит всю историю.
Свои модели, инструменты и агенты
Подключиться можно тремя способами: FromOpenRouterAsync для OpenRouter, FromFractalRouterAsync для FractalRouter и FromOpenAiCompatibleAsync для любого сервера с протоколом OpenAI chat completions. Последний вариант подходит и для собственной модели. Цену такой модели нужно указать самому, например Price(0, 0). Если на вашем сервере нет модели gpt-4o-mini, в параметре judgeModel указывают другую модель-судью.
Выбирать можно не только модели, но и инструменты с агентами. Для этого в конструктор FaiRouter передают список объектов BaseRoutedElement и функцию, которая запускает выбранного кандидата. В примере два варианта поиска: deep-search (цена 5 за миллион входных токенов и 20 за миллион выходных, скорость 30 токенов в секунду) и fast-search (цена 1 и 2, скорость 200 токенов в секунду). Для инструментов эти числа условные, важно только их соотношение. Функцию RunSearchAsync разработчик пишет сам: она запускает нужный поиск и возвращает текст. Такие кандидаты стартуют со случайными весами, поэтому первое время им нужны ваши отзывы.
Лицензия и документация
Пакет распространяется под лицензией Apache-2.0. Исходный код и подробная документация опубликованы на GitHub, замечания и вопросы можно оставить в разделе issues. Все примеры в статье собраны на версии 0.1.0. Чтобы попробовать FAIRouter, достаточно одной команды установки и нескольких строк кода. Математику библиотеки — от вектора задачи и прогноза качества до судьи и обучения на отзывах — авторы разобрали в отдельной статье.
- 2 нояб. 2026 г.TJ Digital: прямым ответом начинаются 23% страниц, цитируемых ИИ, и 14% нецитируемых
- 2 нояб. 2026 г.Arca поручила ИИ-агентам финзадачи длиной до 10 дней, а сделки оставила людям
- 2 нояб. 2026 г.Ассистент Muse от Meta ведёт досье на близких и по умолчанию получает root в Ubuntu
- 1 нояб. 2026 г.Локальные модели проиграли Opus и Codex: на MacBook 0,21 балла против 1,00 у Codex
Вопросы и ответы по материалу
Что известно по теме: установка и первый запрос?
Для работы нужен .NET 10 и ключ поставщика моделей. В примерах автор использует OpenRouter и кладёт ключ в переменную среды OPENROUTER_API_KEY. Консольный проект создаётся стандартно, затем подключается пакет командой dotnet add package FAI.Router. Дальше достаточно вызвать FaiRouter.FromOpenRouterAsync и передать ключ, список идентификаторов моделей и путь к файлу базы. В примере кандидатами служат google/gemini-2.5-flash, openai/gpt-4.1-mini и anthropic/claude-haiku-4.5. В файле fai-router.db хранятся веса и журнал ходов; если файла нет, он создаётся. Если список моделей
Что известно по теме: обучение, профили и планка достаточности?
Самое интересное начинается с отзывов. Человек ставит оценку от 0 до 1, где 1 означает отличный ответ, а 0,2 — слабый. Для этого вызывается router.Feedback, затем Train с заданным числом эпох и Save. Веса сохраняются в базе, и на похожих задачах маршрутизатор учитывает накопленный опыт. Отзывы можно копить и обучать маршрутизатор реже, например раз в сутки. В журнале хранятся тексты запросов, об этом стоит помнить. Баланс цены и качества задают три готовых профиля: Quality, Balance и Price. По умолчанию используется Balance, а менять профиль можно на каждом запросе через па
Что известно по теме: свои модели, инструменты и агенты?
Подключиться можно тремя способами: FromOpenRouterAsync для OpenRouter, FromFractalRouterAsync для FractalRouter и FromOpenAiCompatibleAsync для любого сервера с протоколом OpenAI chat completions. Последний вариант подходит и для собственной модели. Цену такой модели нужно указать самому, например Price(0, 0). Если на вашем сервере нет модели gpt-4o-mini, в параметре judgeModel указывают другую модель-судью. Выбирать можно не только модели, но и инструменты с агентами. Для этого в конструктор FaiRouter передают список объектов BaseRoutedElement и функцию, которая запускает
Протестируйте новые LLM и мультимодальные модели в одном окне
Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.