提出三车道请求分类策略:LOCAL(确定性/简单任务本地处理)、MODEL(低风险/可逆任务走模型)、HUMAN(安全/密钥/迁移必须人判断),避免免费端点被滥用。
大多数免费模型的失败并非模型本身的失败,而是路由失败:请求根本不该离开代码仓库。
在你调用任何免费端点之前,第一件事不是测试服务器,而是过滤请求。
免费端点会制造一种诱惑。遇到卡住的任务时,就会把它发给模型。如果回复质量很差,你就要花时间审查。但如果任务本该留在本地,模型从来就不是瓶颈——审查才是。
一个小小的路由器就能解决这个问题。它把每个任务强制分配到三条车道之一:
LOCAL:确定性的、琐碎的,或者缺少明确验收标准的。
MODEL:低风险的、可逆的、容易验证的。
HUMAN:安全相关、密钥、认证、数据库迁移、部署流程。
规则很无聊。这正是它的价值所在。
这是一个只依赖标准库的路由器。使用前请自行添加你的专属密钥标记。
from dataclasses import dataclass
from enum import Enum
class Route(Enum):
LOCAL = 'local'
MODEL = 'model'
HUMAN = 'human'
@dataclass
class Task:
text: str
touches_auth: bool = False
has_secrets: bool = False
reversible: bool = True
has_acceptance_check: bool = False
SECRET_MARKERS = ('api_key', 'api key', 'password', 'token', 'secret', 'private key', 'bearer')
def looks_sensitive(text: str) -> bool:
lowered = text.lower()
return any(marker in lowered for marker in SECRET_MARKERS)
def route(task: Task) -> Route:
if task.has_secrets or task.touches_auth or looks_sensitive(task.text):
return Route.HUMAN
if not task.reversible:
return Route.HUMAN
if len(task.text.strip()) < 20:
return Route.LOCAL
if not task.has_acceptance_check:
return Route.LOCAL
return Route.MODEL
一个快速的合理性检查能保证路由器的准确性:
assert route(Task('summarize this traceback for a bug report', has_acceptance_check=True)) == Route.MODEL
assert route(Task('short', has_acceptance_check=True)) == Route.LOCAL
assert route(Task('rotate the production api key', has_acceptance_check=True)) == Route.HUMAN
如果这些断言都通过,路由器就可以放在模型调用前面待命了。
从上周挑出五个真实任务来分类:
写发布日志? → MODEL。
重构认证中间件? → HUMAN。
提取版本号? → LOCAL。
为 bug 报告格式化堆栈跟踪? → MODEL(前提是已脱敏主机名和 token)。
添加数据库迁移? → HUMAN。
如果一个任务出错会很尴尬但很容易审查,MODEL 就没问题。但如果难以快速审查,就不要放进 MODEL。
免责声明:本文是 MonkeyCode 产品推广的一部分。
运营方提供的设定是 MonkeyCode 提供免费模型访问和免费服务器选项。对这个工作流来说,这只是另一个 Route.MODEL 目的地。路由器不在乎调用背后是哪个提供商,它只决定什么可以离开你的机器。
你可以把这个调用包在一个小函数里:
def call_model(text: str) -> str:
# Replace with the provider SDK or an HTTP POST.
# Keep timeout, retry, and size limits here.
raise NotImplementedError
重要的是路由器在这个函数之前运行,而不是之后。
密钥标记只是一个粗过滤,不是安全边界。编码或间接的密钥仍可能漏过去。
20 字符的最小长度是任意的,根据你的任务调整即可。
验收标准也可能会出错。一个有简单检查的任务仍可能产生有微妙缺陷的输出。
路由不涉及模型质量,只决定什么值得发送出去。
处理敏感数据或生产密钥的团队。
要求所有输出都可从源码完全复现的工作场景。
已有提示词访问策略或审查工作流的团队。
从上周挑五个任务,在写任何端点代码之前先分成 LOCAL、MODEL、HUMAN 三类。如果落在 MODEL 的不到一半,说明路由器在发挥作用。