# FAIRouter 0.1.0 на NuGet: выбирайте модель под задачу в C#
Каноническая страница: https://plainews.ru/posts/fairouter-nuget-csharp
Опубликовано: 2026-10-31T11:01:03.904Z

FAIRouter 0.1.0 вышел на NuGet. Как подключить библиотеку, выбирать модель и обучать маршрутизатор на отзывах.
FAIRouter — библиотека для маршрутизации запросов к языковым моделям. Она выбирает модель под задачу, проверяет ответ и учится на отзывах. Версия 0.1.0 вышла на NuGet, поэтому теперь её можно подключить одной командой.

## Что вышло

FAIRouter — это библиотека на C# для маршрутизации запросов к языковым моделям. Она выбирает модель под задачу, проверяет ответ и учится на отзывах. Основные возможности:

- Автоматический выбор модели из списка кандидатов.
- Проверка ответа судьей и обучение на отзывах.
- Поддержка диалогов и инструментов.
- Три профиля: Quality, Balance и Price.

## Как подключить и что с этим делать

Для работы с FAIRouter понадобится .NET 10. Создадим консольный проект и подключим пакет:

```bash
dotnet new console -f net10.0 -n RouterDemo
cd RouterDemo
dotnet add package FAI.Router
```

Также нужен ключ API для OpenRouter. В примерах будем использовать OpenRouter, ключ положим в переменную среды:

```bash
$env:OPENROUTER_API_KEY = "ваш ключ"
```

Первый запрос. Заменим содержимое Program.cs следующим кодом:

```plain
using FAI.Router;

FaiRouter router = await FaiRouter.FromOpenRouterAsync(
    apiKey: Environment.GetEnvironmentVariable("OPENROUTER_API_KEY")!,
    modelIds: ["google/gemini-2.5-flash", "openai/gpt-4.1-mini", "anthropic/claude-haiku-4.5"],
    databasePath: "fai-router.db");

RouterAnswer answer = await router.AskAsync("Напиши обзор методов кластеризации на 1500 знаков");

Console.WriteLine($"{answer.Winner.Name}: {answer.Score}");
Console.WriteLine(answer.Text);
Console.WriteLine(answer.Critic);
```

Здесь modelIds задает список кандидатов, а в файле fai-router.db хранятся веса и журнал ходов. Если файла нет, он будет создан. В ответе нас интересуют четыре поля:

- Winner показывает, какая модель была выбрана.
- Text содержит ответ модели.
- Score содержит оценку судьи от 0 до 1.
- Critic показывает, чем ответ отличается от заказа, по пунктам.

## Обучение на отзывах

Самое интересное начинается, когда маршрутизатор получает отзывы. Отзыв задается числом от 0 до 1, где 1 означает отличный ответ, а 0.2 слабый:

```plain
router.Feedback(answer.RoundId!.Value, score: 1.0);
router.Train(epochs: 10);
router.Save();
```

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

## Кому это нужно на практике

FAIRouter подойдет разработчикам, которые хотят:

- Автоматизировать выбор языковой модели под задачу.
- Снизить затраты на API языковых моделей.
- Улучшать качество ответов с помощью обучения на отзывах.
- Интегрировать языковые модели в свои приложения на C#.

## Ограничения и чего в источнике нет

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

## FAQ

### Как выбрать модель под задачу?

FAIRouter автоматически выбирает модель из списка кандидатов. Вы можете задать список моделей в параметре modelIds или оставить его пустым, чтобы выбрать из 54 популярных моделей из комплекта пакета.

### Как обучать маршрутизатор на отзывах?

Маршрутизатор обучается на отзывах, которые задаются числом от 0 до 1. После обучения веса сохраняются в базе, и на похожих задачах маршрутизатор учитывает полученный опыт.

### Как подключить FAIRouter к своей модели?

Для подключения к своей модели используйте метод FromOpenAiCompatibleAsync. Укажите базовый URL, ключ API, список моделей и их цены. Судья работает через того же поставщика, по умолчанию на модели openai/gpt-4o-mini.

### Как выбрать профиль для маршрутизации?

В библиотеке есть три готовых профиля: Quality, Balance и Price. По умолчанию используется Balance. Профиль можно менять на каждом запросе, передавая параметр weights.

### Как работать с диалогами?

В AskAsync можно передать диалог целиком. Задание распознается по последней реплике пользователя, а модель видит всю историю.

## Источники

- Habr AI: FAIRouter вышел на NuGet. Выбираем языковую модель под задачу в несколько строк на C#
