前言
我平时刷知乎热榜的时候,经常有一个困扰:热榜上30个问题,难度差别太大了。
有的问题很简单,比如“太阳系的8颗行星在地球上用肉眼能看到几颗”,一句话就能说清楚。有的问题很复杂,比如“国安部通报境外组织借医疗检测非法采血样”,涉及生物安全、法律、国际关系多个维度,需要深度分析。
如果都用同一个模型处理,要么是杀鸡用牛刀——简单问题用了太贵的模型;要么是小马拉大车——复杂问题用便宜模型答不到位。
蓝耘的智能路由刚好解决这个问题。它可以根据任务难度自动匹配模型,不需要我在代码里写一堆 if/else 判断。这篇文章记录了完整的实测过程:30条知乎热榜问题,同一个脚本,看蓝耘怎么自动调度模型。
如果你也在做批量文本处理,或者手头有大量异构任务需要跑模型,这套方案可以直接复用。
一、什么是智能路由
先解释一下概念。
平时调用大模型 API,你需要指定具体用哪个模型——比如 model=deepseek-v3.2 或者 model=glm-5.1。每次都要自己判断:这个问题该用便宜的还是贵的?
智能路由的逻辑是:你不需要指定模型,只需要创建一个路由任务,配置好模型池(比如同时放轻量模型、均衡模型、强推理模型),然后调用时填路由 ID 就行。平台会自动分析任务复杂度,从模型池里挑最合适的那个来执行。
这就好比你去餐厅吃饭,不用自己研究菜单,只需要告诉服务员“我想吃清淡点的”,他会帮你推荐。蓝耘的智能路由提供的策略包括:效果优先(全部走最强模型)、成本优先(简单任务走轻量模型)、平衡模式(动态权衡)。
二、为什么需要智能路由
在动手之前,先想清楚一个问题:为什么不直接用最贵的模型?
答案很简单:成本和质量之间需要平衡。
我算过一笔账。如果用最强的推理模型处理所有30条知乎热榜问题,每条任务消耗的Token和费用大概是现在的3到5倍。但实际上,30条问题里有超过一半是简单问题——像“太阳系的8颗行星肉眼能看到几颗”这种,用轻量模型完全够用,没必要上旗舰模型。
智能路由解决的就是这个问题。它把“判断该用哪个模型”这件事从代码里抽出来,交给平台去做。我只需要在代码里填一个路由 ID,具体用哪个模型由平台决定。
更重要的是,路由策略可以在平台侧随时调整。今天觉得质量不够,换一个更激进的模型池;明天觉得成本太高,把轻量模型的比例调大。所有调整都在控制台完成,不需要改一行代码。
这就是“把模型切换交给平台”的核心价值。
三、准备工作
3.1 注册并获取 API Key
官网:https://maas.lanyun.net/
在左侧导航栏找到「API管理」→「密钥管理」,点击「创建 API Key」。系统会生成一串密钥,复制保存好,这是后续所有操作的唯一凭证。
蓝耘元生代 MaaS 提供 OpenAI 兼容入口,Base URL 为 https://maas-api.lanyun.net/v1。这意味着所有调用代码和调用 OpenAI 完全一致,只需要把 base_url 换成蓝耘的地址。
然后去「模型广场」确认要用模型的调用路径。这次实验我主要用到 MiniMax-M2.5 和 Qwen3.7-Plus 两个模型,但具体哪条任务走哪个模型,由智能路由自动决定。
3.2 安装 Python 依赖
pip install openai pandas
3.3 用影刀 RPA 采集知乎热榜
这次实验的数据来源是知乎热榜,用影刀 RPA 采集,不需要写爬虫代码。
打开影刀,创建 PC 端机器人,命名「知乎热榜采集」。流程编排如下:
- 打开/新建 Excel:打开已有的
Workbook.xlsx,把 Excel 对象保存到excel_instance - 打开网页:用 Microsoft Edge 打开
https://www.zhihu.com/hot - 批量数据抓取(第一次):在网页中抓取「标题」列,结果保存到
web_data_table - 批量数据抓取(第二次):在网页中抓取「描述」列,结果保存到
web_data_table2 - 写入内容至 Excel 工作表:把
web_data_table写入第 1 行 A 列 - 写入内容至 Excel 工作表:把
web_data_table2写入第 1 行 B 列 - 关闭 Excel:保存并关闭
excel_instance - Excel 转 CSV:把
Workbook.xlsx转换为 CSV 格式,保存到桌面rpa_data文件夹
之所以要绕一下,先写 Excel 再转 CSV,是因为如果直接用影刀导出 CSV,桌面会同时出现一个 Excel 文件和一个 CSV 文件,多一个文件看着乱。先写 Excel 再转 CSV,输出目录里就只有一个 zhihu_hot.csv,干净。
运行流程,采集完成后检查 CSV 文件。如果 CSV 没有表头,在第一行手动加上 title,desc。
3.4 创建智能路由任务
登录蓝耘控制台,左侧菜单找到「模型服务」→「智能路由」,点击「创建路由」。
我配置的参数如下:
| 配置项 | 值 |
|---|---|
| 任务名称 | 知乎热榜分级摘要 |
| 路由策略 | 平衡模式 |
| 模型池 | 通用路由(平台默认包含多个模型) |
保存后,复制路由任务 ID。这个 ID 就是后续代码里要填的 ROUTER_ID。
路由策略有三种可选:效果优先(全部走最强模型)、成本优先(简单任务走轻量模型)、平衡模式(动态权衡)。我选了平衡模式,因为这次实验的目的就是验证“平台能不能自动区分任务难度”。
四、核心代码
新建Python脚本,核心逻辑分四步:读数据 → 判断难度 → 调路由 → 输出结果。
import pandas as pd
import json
import time
from datetime import datetime
from openai import OpenAI
# ===== 配置区 =====
API_KEY = "你的蓝耘API_KEY"
BASE_URL = "https://maas-api.lanyun.net/v1"
ROUTER_ID = "你的任务id"
MAX_TOKENS = 500
# ==================
client = OpenAI(api_key=API_KEY, base_url=BASE_URL)
def classify_difficulty(title, desc):
"""根据关键词给任务打难度标签"""
text = f"{title} {desc}".lower()
if any(kw in text for kw in ["是什么", "怎么用", "如何理解", "有哪些"]):
return "easy"
elif any(kw in text for kw in ["影响", "背后", "逻辑", "趋势", "未来"]):
return "hard"
else:
return "medium"
def summarize(title, desc, difficulty):
"""调用蓝耘智能路由生成摘要"""
prompt_map = {
"easy": f"用一句话回答:{title}。补充:{desc}",
"medium": f"从多角度分析,给出核心观点和理由:{title}。补充:{desc}",
"hard": f"结构化深度分析,输出背景、核心矛盾、各方观点、潜在影响:{title}。补充:{desc}"
}
start = time.time()
response = client.chat.completions.create(
model=ROUTER_ID,
messages=[{"role": "user", "content": prompt_map[difficulty]}],
max_tokens=MAX_TOKENS,
temperature=0.3
)
elapsed = int((time.time() - start) * 1000)
content = response.choices[0].message.content
model_used = getattr(response, "model", "unknown")
usage = response.usage
return content, model_used, elapsed, usage.prompt_tokens, usage.completion_tokens
# 读取数据
df = pd.read_csv("zhihu_hot.csv")
print(f"任务数: {len(df)}; 线路: route:{ROUTER_ID}")
print(f"单次输出上限 {MAX_TOKENS} tokens\n")
results = []
total_prompt = 0
total_completion = 0
success = 0
for idx, row in df.iterrows():
task_id = f"T{idx+1:02d}"
title = str(row["title"])[:20]
difficulty = classify_difficulty(row["title"], row["desc"])
try:
summary, model_used, elapsed, pt, ct = summarize(row["title"], row["desc"], difficulty)
total_prompt += pt
total_completion += ct
success += 1
print(f"[route] {task_id} {title} -> response_model={model_used} {elapsed}ms")
results.append({
"id": task_id,
"title": row["title"],
"difficulty": difficulty,
"summary": summary,
"model_used": model_used,
"latency_ms": elapsed,
"prompt_tokens": pt,
"completion_tokens": ct
})
except Exception as e:
print(f"[route] {task_id} {title} -> ERROR: {e}")
results.append({"id": task_id, "error": str(e)})
timestamp = datetime.now().strftime("%Y%m%d-%H%M%S")
print(f"\n完成: 成功 {success}/{len(df)}, prompt tokens {total_prompt}, completion tokens {total_completion}")
output_file = f"results-{timestamp}.json"
with open(output_file, "w", encoding="utf-8") as f:
json.dump(results, f, ensure_ascii=False, indent=2)
print(f"结果已写入 {output_file}")
五、实测结果:30条任务的完整调度记录
运行脚本后,终端逐条输出了30个任务的执行情况。
以下是完整的运行记录,包含了每条任务的实际响应模型和耗时:
| 任务ID | 标题(截取) | 难度 | 实际响应模型 | 耗时(ms) |
|---|---|---|---|---|
| T01 | 女网红参加柏林马拉松比赛,却通过骑自行车 | medium | minimax/minimax-m2.5 | 27596 |
| T02 | 国安部通报境外组织借医疗检测非法采血样 | hard | qwen3.7-plus | 50632 |
| T03 | 西游记里的人参果这么好,为什么妖怪不去抢 | easy | minimax/minimax-m2.5 | 15613 |
| T04 | 《艾希:续》众筹突破2000万,制作人直播下跪 | medium | minimax/minimax-m2.5 | 9090 |
| T05 | 30岁女子靠AI婚庆培训年入200万 | medium | minimax/minimax-m2.5 | 13265 |
| T06 | 如何看待台独分子沈伯洋竞选台北市长 | medium | minimax/minimax-m2.5 | 10777 |
| T07 | 乘联分会称2026年1-8月中国占世界汽车份额回落 | hard | qwen3.7-plus | 9945 |
| T08 | 武侠游戏里「朝廷」永远不参与江湖纷争 | medium | minimax/minimax-m2.5 | 21618 |
| T09 | 为什么感觉在店里喝到的茶叶,总比自己泡的好喝 | easy | minimax/minimax-m2.5 | 8760 |
| T10 | 苏超1/4决赛首回合,无锡队3:0徐州队 | medium | minimax/minimax-m2.5 | 19435 |
| T11 | 为什么现在老外纷纷开始给游戏加中文 | medium | minimax/minimax-m2.5 | 16296 |
| T12 | 小学防欺凌信箱开出四个月前的求助信 | medium | minimax/minimax-m2.5 | 18282 |
| T13 | 如何评价《绿灯军团》第八集 | medium | minimax/minimax-m2.5 | 15678 |
| T14 | 你对于2026年诺贝尔生理学或医学奖的预测 | hard | minimax/minimax-m2.5 | 24813 |
| T15 | 为何日本的铁轨坚持不和世界统一 | medium | minimax/minimax-m2.5 | 17611 |
| T16 | 在中部-2026演习当中,各国军队都展示了哪些新装备 | medium | minimax/minimax-m2.5 | 15902 |
| T17 | 《哈利波特与死亡圣器》里哈利三人第七年没去学校 | medium | minimax/minimax-m2.5 | 19569 |
| T18 | 《布达佩斯大饭店》中大面积用粉色为什么不觉得土 | medium | minimax/minimax-m2.5 | 15317 |
| T19 | 太阳系的8颗行星,在地球上用肉眼能看到几颗 | easy | minimax/minimax-m2.5 | 10039 |
| T20 | 我总感觉昆虫从受到致命伤到完全死亡需要的时间 | medium | minimax/minimax-m2.5 | 10078 |
| T21 | 如何看待张家齐发长文告别综艺《我家那闺女》 | medium | minimax/minimax-m2.5 | 11218 |
| T22 | 都说阅读可以提高语文成绩,那么看网络小说算不算 | medium | minimax/minimax-m2.5 | 16184 |
| T23 | 国庆假期已过半,你是在家休息还是外出赶场 | easy | minimax/minimax-m2.5 | 9687 |
| T24 | 为什么计划做得越详尽,反而却越难以开始行动 | medium | minimax/minimax-m2.5 | 8857 |
| T25 | 《原神》中至冬的民用科技是否真的触碰到天理 | medium | minimax/minimax-m2.5 | 14732 |
| T26 | 年内13家酒企相继换帅,数位老将退出行业一线 | medium | minimax/minimax-m2.5 | 10739 |
| T27 | 多位游客分享用AI做旅游攻略的踩坑经历 | medium | minimax/minimax-m2.5 | 13445 |
| T28 | 孩子说周末就要睡个懒觉,不要叫他 | easy | minimax/minimax-m2.5 | 12902 |
| T29 | 2026中网男单1/4决赛,德约科维奇2-1逆转 | medium | minimax/minimax-m2.5 | 10242 |
| T30 | 欧国联A级联赛第4轮,葡萄牙2比1挪威 | medium | minimax/minimax-m2.5 | 20346 |
从输出结果看,蓝耘的智能路由在30条任务中实际调度了2个不同的模型:
| 模型 | 调用次数 | 占比 | Token消耗总量 | 消费金额 |
|---|---|---|---|---|
| MiniMax-M2.5 | 28 | 93.3% | 17032 | ¥0.11 |
| Qwen3.7-Plus | 2 | 6.7% | 3600 | ¥0.03 |
被路由到 Qwen3.7-Plus 的两条任务是:
- T02:国安部通报境外组织借医疗检测非法采血样(描述约400字,涉及生物安全、法律、国际关系)
- T07:乘联分会称2026年1-8月中国占世界汽车份额回落至32%(描述约300字,涉及行业数据、多国对比)
这两条的共同特征是:描述文本长、涉及多维度信息、需要综合推理。路由把这两条判定为复杂任务,分配给了推理能力更强的 Qwen3.7-Plus。其余28条描述相对简短、话题相对集中,路由统一分配给了 MiniMax-M2.5。
整体完成情况:
| 指标 | 结果 |
|---|---|
| 总任务数 | 30 |
| 成功 | 30/30(100%) |
| prompt tokens | 5759 |
| completion tokens | 14873 |
| 总token | 20632 |
| 估算费用 | ≈0.14元 |
蓝耘控制台的监控数据也印证了这个结果:
| 指标 | 数值 |
|---|---|
| 模型总量 | 2 |
| 调用总数 | 30 |
| token消耗数 | 20632 |
六、这个结果说明了什么
智能路由确实在动态调度
30条任务里,28条走了 MiniMax-M2.5,2条走了 Qwen3.7-Plus。路由不是随机分配,而是根据任务描述的长度和复杂度做的判断。T02和T07的描述明显比其他28条长,路由把它们识别为需要更强推理的任务,分配给了不同的模型。
这说明智能路由不是“摆设功能”——它在真实任务里确实做了差异化调度。
统一网关省掉了模型切换的代码
如果用传统的逐模型调用方式,我需要先判断“这条任务该用哪个模型”,然后在代码里写 if/else。但智能路由把这件事交给了平台:代码里只需要填一个 ROUTER_ID,具体用哪个模型由平台决定。
这意味着同一套代码可以适配不同难度的任务,不需要为每个模型写不同的调用逻辑。
七、成本与效率
这次实测30条任务的总消耗:
| 指标 | 数值 |
|---|---|
| prompt tokens | 5759 |
| completion tokens | 14873 |
| 总token | 20632 |
| 估算费用 | ≈0.14元 |
平均每条任务消耗约688个token,花费不到0.5分钱。
按每天处理100条知乎热榜问题计算,一个月总成本约14元。而省下来的是:不需要人工判断每条任务该用哪个模型,不需要在代码里维护多套模型调用逻辑。
八、为什么选蓝耘
这次实测下来,蓝耘的智能路由在三个点上表现突出:
第一,路由是平台级能力,不是简单的API封装。
很多平台的“多模型支持”只是提供了一个模型列表,你需要自己判断该用哪个。蓝耘的智能路由是在平台层面做了任务分析和模型匹配,用户不需要写任何判断逻辑。
第二,OpenAI兼容格式让迁移零成本。
调用路由的代码和调用普通模型完全一样——client.chat.completions.create(),只需要把 model 字段从具体模型名换成路由ID。整个迁移过程改一行代码。
第三,按量计费,30条任务0.14元。
这个成本意味着我可以随时跑实验、随时调整路由策略,不用担心账单。根据AI Ping的公开评测数据,蓝耘平台上的模型吞吐在同类平台中处于领先水平。
九、总结
这套“RPA采集 → Python脚本调用智能路由 → 结果分析”的链路,解决了一个很实际的问题:不同难度的任务,自动匹配不同的模型。
适用场景很明确:内容分级处理、多模型调度测试、批量任务优化。当你有大量异构任务需要处理时,智能路由可以帮你省掉“手动选择模型”这一步。
当前限制也很清楚:路由的调度策略是平台决定的,用户能控制的是模型池的配置,但具体哪条任务走哪个模型,目前无法手动指定。对于需要精细控制的场景,可能还是需要手动选择模型。但对于大多数批量处理场景来说,这已经够用了。