LLMRouter:面向LLM路由的开源库(官方README)

张开发
2026/4/18 19:08:50 15 分钟阅读

分享文章

LLMRouter:面向LLM路由的开源库(官方README)
🚀 LLMRouter:面向LLM路由的开源库(官方README)声明:📝 作者:甜城瑞庄的核桃(ZMJ)原创学习笔记,欢迎分享,但请保留作者信息及原文链接哦~原项目地址:https://github.com/ulab-uiuc/LLMRouter官方文档:https://ulab-uiuc.github.io/LLMRouter/Stars:1K+(2026年1月突破)License:MIT |语言:Python 3.10✨ 简介LLMRouter是一个智能路由系统,通过为每条查询动态选择最合适的模型,来优化大语言模型(LLM)的推理过程。为实现智能路由,它提供以下核心能力:🚀智能路由:根据任务复杂度、成本和性能需求,自动将查询路由到最优 LLM。📊多种路由模型:支持超过16种路由模型,划分为四大类别——单轮路由器、多轮路由器、智能体路由器、个性化路由器,覆盖 KNN、SVM、MLP、矩阵分解、Elo评分、图路由、BERT路由、混合概率方法、变换分数路由器等多种策略。🛠️统一CLI:完整的命令行界面,支持训练、推理,以及基于 Gradio 的交互式聊天界面。📈数据生成管道:完整的训练数据生成流水线,支持 11 个基准数据集,含自动 API 调用与评估。📰 最新动态🖥️[2026-02]:ComfyUI 可视化界面正式发布!现在可以通过可视化方式构建数据生成和路由管道,拖拽节点即可训练路由器,并实时监控性能。详见 ComfyUI 界面。🔗[2026-02]:OpenClaw Router发布——支持 OpenAI 兼容接口的生产服务器,同步发布 llmrouter-lib v0.3.1。可将 LLMRouter 部署为生产 API 服务器,与 Slack、Discord 等消息平台无缝集成(通过 OpenClaw)。支持多模态理解(图像/音频/视频)、检索增强路由记忆、流式输出,以及全部 16+ 种路由策略。详见 OpenClaw Router 集成。⭐[2026-01]:LLMRouter突破 1K GitHub Stars!同步发布 llmrouter-lib v0.2.0。更新内容包括:服务商字典格式配置(OpenAI、Anthropic 等)和多模态路由支持(视频/图像 + 文本),支持 Geometry3K、MathVista、Charades-Ego 数据集。这是首个集成 16+ 路由器、统一 CLI、Gradio UI 和 11 个数据集的开源 LLM 路由库。通过pip install llmrouter-lib安装。🚀[2025-12]:LLMRouter正式发布——更智能 🧠、成本感知 💸 的 LLM 路由,集成 16+ 路由器 🧭、统一llmrouterCLI 🛠️,以及自定义路由器插件工作流 🧩。🔗 目录导航支持的路由器安装使用自定义数据集训练路由器通过路由器运行推理路由器交互式聊天界面ComfyUI 可视化界面创建自定义路由器添加自定义任务OpenClaw Router 集成致谢引用🧭 支持的路由器单轮路由器(Single-Round Routers)路由器训练推理描述knnrouter✅✅基于 K近邻(KNN)的路由svmrouter✅✅基于支持向量机(SVM)的路由mlprouter✅✅基于多层感知机(MLP)的路由mfrouter✅✅基于矩阵分解(MF)的路由elorouter✅✅基于 Elo 评分的路由routerdc✅✅基于双对比学习(Dual Contrastive Learning)的路由automix✅✅自动模型混合hybrid_llm✅✅混合 LLM 路由策略graphrouter✅✅基于图神经网络(Graph)的路由causallm_router✅✅因果语言模型(Causal LM)路由器smallest_llmN/A✅始终路由到最小模型(基线)largest_llmN/A✅始终路由到最大模型(基线)多轮路由器(Multi-Round Routers)路由器训练推理描述router_r1外部链接✅用于多轮对话的预训练 Router-R1 模型(基于强化学习,NeurIPS 2025)个性化路由器(Personalized Routers)路由器训练推理描述gmtrouter✅✅基于图的个性化路由器,学习用户偏好personalizedrouter✅✅基于 GNN 的个性化路由器,包含用户特征建模智能体路由器(Agentic Routers)路由器训练推理描述knnmultiroundrouter✅✅基于 KNN 的复杂任务智能体路由器llmmultiroundrouterN/A✅基于 LLM 驱动的复杂任务智能体路由器🚀 快速开始安装从源码安装克隆仓库并以可编辑模式安装(推荐使用虚拟环境,如 anaconda3):# 克隆仓库gitclone https://github.com/ulab-uiuc/LLMRouter.gitcdLLMRouter# 创建并激活虚拟环境conda create-nllmrouterpython=3.10conda activate llmrouter# 安装包(基础安装)pipinstall-e.# 可选:安装含 RouterR1 支持(需要 GPU)# RouterR1 在 vllm==0.6.3(torch==2.4.0)下测试通过,extra 会固定这些版本pipinstall-e".[router-r1]"# 可选:安装全部可选依赖pipinstall-e".[all]"从 PyPI 安装pipinstallllmrouter-lib🔑 配置 API KeyLLMRouter 需要 API Key 来进行 LLM API 调用(推理、聊天、数据生成)。通过设置API_KEYS环境变量来配置:💡免费 NVIDIA API Key:LLMRouter 中使用的 NVIDIA 端点提供免费可用的 API Key。访问 https://build.nvidia.com/ 注册账户,即可免费生成 API Key。服务商字典格式(多服务商推荐)当你有来自不同服务商的模型(如 NVIDIA、OpenAI、Anthropic)并希望为每个服务商使用不同 API Key 时,使用此格式:exportAPI_KEYS='{"NVIDIA": "nvidia-key-1,nvidia-key-2", "OpenAI": ["openai-key-1", "openai-key-2"], "Anthropic": "anthropic-key-1"}'字典格式说明:键(Key):服务商名称(须与 LLM 候选 JSON 中的service字段匹配)值(Value):支持以下三种格式:逗号分隔字符串:"key1,key2,key3"JSON 数组:["key1", "key2", "key3"]单个字符串:"key1"服务商匹配:系统自动将 LLM 候选 JSON 中的service字段与 API Key 字典匹配轮询负载均衡:每个服务商维护独立的轮询计数器错误处理:若在字典中找不到服务商,将抛出清晰的错误信息并列出可用服务商含service字段的 LLM 候选 JSON 示例:{"qwen2.5-7b-instruct":{"service":"NVIDIA","model":"qwen/qwen2.5-7b-instruct","api_endpoint":"https://integrate.api.nvidia.com/v1"},"gpt-4":{"service":"OpenAI","model":"gpt-4","api_endpoint":"https://api.openai.com/v1"}}传统格式(单服务商或向后兼容)JSON 数组格式(同一服务商多 Key):exportAPI_KEYS='["your-key-1", "your-key-2", "your-key-3"]'逗号分隔格式(多 Key 备选):exportAPI_KEYS='key1,key2,key3'单个 Key:exportAPI_KEYS='your-api-key'注意事项:API Key 用于推理、聊天界面和数据生成(管道第3步)多个 Key 可实现 API 调用的自动负载均衡使用字典格式时,LLM 候选 JSON 中的service字段须与API_KEYS字典的键匹配该环境变量须在运行推理、聊天或数据生成命令前设置完毕若需持久化配置,可将 export 命令添加到 shell 配置文件(如~/.bashrc或~/.zshrc)🌐 配置 API 端点API 端点可在两个层级指定(按优先级顺序解析):模型级别(最高优先级):LLM 候选 JSON(default_llm.json)中的api_endpoint字段路由器级别(回退):路由器 YAML 配置中的api_endpoint字段错误:若两者均未指定,则抛出描述性错误LLM 候选 JSON(模型级别端点配置):{"qwen2.5-7b-instruct":{

更多文章