La bibliothèque FAIRouter pour C# arrive sur NuGet et choisit un modèle parmi 54 options prêtes à l'emploi
La bibliothèque FAIRouter pour C# est disponible sur NuGet, le catalogue de paquets .NET, en version 0.1.0. Il n'est donc plus nécessaire de la compiler depuis les sources. Le routeur choisit lui-même le modèle de langage adapté à la tâche, soit dans votre liste, soit parmi les 54 modèles populaires fournis avec le paquet. Un modèle juge distinct vérifie la réponse et lui attribue une note de 0 à 1, tandis que les retours humains réajustent les poids. L'installation tient en une commande, dotnet add package FAI.Router, et exige .NET 10. • Les profils Quality, Balance et Price se changent à chaque requête • Le seuil de suffisance bar ne s'active qu'après trois retours humains • Connexion : OpenRouter, FractalRouter ou serveur compatible OpenAI
Traité par IA depuis Habr AI ; édité par Hamidun News
La bibliothèque FAIRouter, qui route les requêtes entre plusieurs modèles de langage, est désormais disponible sur NuGet, le catalogue de paquets de la plateforme .NET. Le paquet s'appelle FAI.
Router, sa version actuelle est la 0.1.0, et il n'est plus nécessaire de le compiler depuis les sources.
Les modèles diffèrent par leurs tarifs, leur vitesse et leurs points forts : FAIRouter choisit donc lui-même l'exécutant pour chaque tâche, soit dans une liste définie par le développeur, soit parmi les 54 modèles populaires inclus dans le paquet. Un modèle juge vérifie la réponse produite, puis le routeur apprend à partir des retours humains. Le dispositif comprend deux éléments : le routeur choisit le modèle, le juge accepte ou critique le résultat, et les deux s'entraînent.
Installation et première requête
Il faut .NET 10 et une clé d'API chez un fournisseur de modèles. Dans ses exemples, l'auteur utilise OpenRouter et stocke la clé dans la variable d'environnement OPENROUTER_API_KEY. On crée un projet console de façon classique, puis on ajoute le paquet avec la commande dotnet add package FAI.Router.
Il suffit ensuite d'appeler FaiRouter.FromOpenRouterAsync en lui passant la clé, une liste d'identifiants de modèles et le chemin du fichier de base de données. Dans l'exemple, les candidats sont google/gemini-2.5-flash, openai/gpt-4.1-mini et anthropic/claude-haiku-4.5. Le fichier fai-router.db stocke les poids et le journal des tours ; s'il n'existe pas, il est créé. Si l'on ne précise aucune liste de modèles, le choix se fait parmi les 54 modèles fournis avec le paquet.
La méthode AskAsync renvoie un objet RouterAnswer à quatre champs : Winner (le modèle choisi), Text (la réponse), Score (la note du juge, de 0 à 1) et Critic (les écarts point par point entre la commande et la réponse). Si la consigne demandait quatre sections et un tableau, et que la réponse n'offre qu'une section sans tableau, Critic le signale. Par défaut, le juge est openai/gpt-4o-mini, appelé via le même fournisseur.
Apprentissage, profils et seuil de suffisance
Le plus intéressant commence avec les retours. L'utilisateur donne une note de 0 à 1, où 1 signifie une excellente réponse et 0,2 une réponse faible. Pour cela, on appelle router.Feedback, puis Train avec le nombre d'époques voulu, et enfin Save. Les poids sont enregistrés dans la base, et le routeur tient compte de cette expérience accumulée sur les tâches similaires. On peut accumuler les retours et entraîner le routeur moins souvent, par exemple une fois par jour. Le journal conserve les textes des requêtes : mieux vaut s'en souvenir.
L'équilibre entre prix et qualité repose sur trois profils prêts à l'emploi : Quality, Balance et Price. Balance s'applique par défaut, et le profil peut être changé à chaque requête via le paramètre weights.
Il existe aussi une autre règle : trouver les modèles capables de traiter la tâche, puis choisir parmi eux le moins cher et le plus rapide. C'est le rôle du seuil de suffisance bar, qui correspond à la probabilité minimale que la réponse plaise à un humain. Le champ Reached indique si un candidat au moins a atteint ce seuil. Celui-ci ne devient actif qu'à partir de trois retours humains accumulés.
AskAsync accepte aussi une conversation entière. La tâche est déterminée d'après la dernière réplique de l'utilisateur, mais le modèle voit tout l'historique.
Vos propres modèles, outils et agents
Trois modes de connexion existent : FromOpenRouterAsync pour OpenRouter, FromFractalRouterAsync pour FractalRouter et FromOpenAiCompatibleAsync pour tout serveur qui implémente le protocole OpenAI chat completions. Cette dernière option convient aussi à un modèle maison. Il faut alors en indiquer soi-même le prix, par exemple Price(0, 0). Si votre serveur ne propose pas gpt-4o-mini, on précise un autre modèle juge dans le paramètre judgeModel.
On peut router non seulement des modèles, mais aussi des outils et des agents. Pour cela, on passe au constructeur de FaiRouter une liste d'objets BaseRoutedElement et une fonction qui lance le candidat sélectionné. L'exemple propose deux variantes de recherche : deep-search (prix de 5 par million de tokens en entrée et de 20 par million de tokens en sortie, vitesse de 30 tokens par seconde) et fast-search (prix de 1 et 2, vitesse de 200 tokens par seconde).
Pour les outils, ces chiffres sont conventionnels : seul leur rapport compte. Le développeur écrit lui-même la fonction RunSearchAsync, qui lance la recherche voulue et renvoie du texte. Ces candidats démarrent avec des poids aléatoires ; au début, ils ont donc besoin de vos retours.
Licence et documentation
Le paquet est distribué sous licence Apache-2.0. Le code source et la documentation détaillée sont publiés sur GitHub, et l'on peut y laisser remarques et questions dans la section issues. Tous les exemples de l'article ont été réalisés avec la version 0.1.0. Pour essayer FAIRouter, une seule commande d'installation et quelques lignes de code suffisent. Les auteurs ont détaillé les mathématiques de la bibliothèque, du vecteur de tâche et de la prédiction de qualité jusqu'au juge et à l'apprentissage par retours, dans un article distinct.
- 2 nov. 2026TJ Digital : une réponse directe ouvre 23% des pages citées par l'IA, contre 14% des pages non citées
- 2 nov. 2026Arca confie à des agents IA des tâches financières pouvant durer jusqu'à 10 jours, mais laisse les transactions aux humains
- 2 nov. 2026L'assistant Muse de Meta tient un dossier sur vos proches et obtient root par défaut sous Ubuntu
- 1 nov. 2026Les modèles locaux battus par Opus et Codex : 0,21 sur MacBook contre 1,00 pour Codex
Questions clés sur cet article
Que sait-on sur Installation et première requête ?
Il faut .NET 10 et une clé d'API chez un fournisseur de modèles. Dans ses exemples, l'auteur utilise OpenRouter et stocke la clé dans la variable d'environnement OPENROUTER_API_KEY. On crée un projet console de façon classique, puis on ajoute le paquet avec la commande dotnet add package FAI.Router. Il suffit ensuite d'appeler FaiRouter.FromOpenRouterAsync en lui passant la clé, une liste d'identifiants de modèles et le chemin du fichier de base de données. Dans l'exemple, les candidats sont google/gemini-2.5-flash, openai/gpt-4.1-mini et anthropic/claude-haiku-4.5. Le fich
Que sait-on sur Apprentissage, profils et seuil de suffisance ?
Le plus intéressant commence avec les retours. L'utilisateur donne une note de 0 à 1, où 1 signifie une excellente réponse et 0,2 une réponse faible. Pour cela, on appelle router.Feedback, puis Train avec le nombre d'époques voulu, et enfin Save. Les poids sont enregistrés dans la base, et le routeur tient compte de cette expérience accumulée sur les tâches similaires. On peut accumuler les retours et entraîner le routeur moins souvent, par exemple une fois par jour. Le journal conserve les textes des requêtes : mieux vaut s'en souvenir. L'équilibre entre prix et qualité re
Que sait-on sur Vos propres modèles, outils et agents ?
Trois modes de connexion existent : FromOpenRouterAsync pour OpenRouter, FromFractalRouterAsync pour FractalRouter et FromOpenAiCompatibleAsync pour tout serveur qui implémente le protocole OpenAI chat completions. Cette dernière option convient aussi à un modèle maison. Il faut alors en indiquer soi-même le prix, par exemple Price(0, 0). Si votre serveur ne propose pas gpt-4o-mini, on précise un autre modèle juge dans le paramètre judgeModel. On peut router non seulement des modèles, mais aussi des outils et des agents. Pour cela, on passe au constructeur de FaiRouter une
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
L'essentiel de l'IA — une fois par semaine
Sept actus qui ont vraiment compté, choisies à la main. Sans bruit ni communiqués.
C'est fait ! Vérifiez votre boîte mail pour la confirmation.