最新的不一定是对你最好的
每个新模型发布都附带基准分数表,但这些分数都不是针对你的提示词测量的。如果你正在寻找 glm 5.2 API 密钥,将版本号视为运行测试的理由,而不是结果。我们无法验证该模型的详细信息,如发布日期、价格、上下文窗口或限制,因此请在供应商的官方文档中查找。
真正的问题是更具体的:对于你的工作负载,新模型是否减少了拒绝、提高了回答质量或降低了每个完成任务的成本?如果你无法说出收益,就没有切换的理由。
这也有助于将炒作与需求区分开。模型名称的变更往往比你的需求更快。你的需求可能包括“不拒绝小说提示词”、“以有效 JSON 格式回答”以及“每千次请求成本低于指定金额”。将它们写下来,并据此评估每个候选者。
单模型接口
另一种选择是故意无聊的。该 API 暴露一个模型 ID,uncensored,一个由独立提供商运行的开放权重模型。它不是跨供应商的路由器,也不是 Zhipu、Z.ai 或任何其他实验室的官方 API。你的代码永远不会在版本之间进行选择,因此无需规划模型名称迁移。
| 属性 | 说明 |
|---|---|
| Base URL | https://api.apikeyglm.com/v1 |
| 模型 ID | uncensored |
| 上下文窗口 | 100,000 token,包含提示词和补全 |
| 价格 | 每 1M 输入 token $0.15,每 1M 输出 token $0.50 |
| 功能 | 流式输出、函数调用、JSON 模式、透传采样参数 |
| 限制 | 完整密钥:8 个并发,每分钟 300 个。试用:2 和 60 |
| 不提供 | 图像、音频、视频、嵌入、微调 |
详情见 文档。一个模型 ID 对应一个需要监控的对象。如果提供商随时间更改底层权重,回归测试集是你发现回归的方法。
权衡是真实存在的。单一的稳定模型无法在最新版本发布当天就提供它,你无法针对每个请求选择更大或更小的变体。作为回报,你获得简短的集成、单一的价格以及无需跟踪公告的便利。
首先构建回归集
编写 20 到 30 个反映实际工作的提示词:带有典型用户消息的系统提示词、长文档问题、结构化输出请求、工具调用用例以及之前曾触发模型拒绝的几个提示词。保存你接受的答案。然后针对任何候选模型运行整个集合。此脚本将集合发送到接口,并使用存储在 JSON 列表中的提示词将答案写入文件:
import json
from openai import OpenAI
client = OpenAI(base_url="https://api.apikeyglm.com/v1", api_key="YOUR_KEY")
prompts = json.load(open("prompts.json")) # a list of strings
results = []
for p in prompts:
r = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": p}],
temperature=0.2,
seed=7,
)
results.append({
"prompt": p,
"answer": r.choices[0].message.content,
"tokens_in": r.usage.prompt_tokens,
"tokens_out": r.usage.completion_tokens,
})
json.dump(results, open("answers_uncensored.json", "w"), indent=2)
通过更改 Base URL、密钥和模型名称,针对其他提供商运行相同的脚本。第一轮通过手动比较两个输出文件。自动化评分将在你了解哪些差异重要之后进行。
比较什么
拒绝响应
计算被拒绝或回答含糊/留有余地的提示词数量。如果合法内容(如带有黑暗主题的小说)持续被拒绝,这就是迁移的具体理由。如果你的集合中没有任何内容触发拒绝,则该维度为平局。
上下文
发送你最长的真实输入。此接口提示词和完成内容的总计 token 数最多为 100,000。查看另一模型文档中的限制,并检查在长提示词末尾答案质量是否保持,而不仅仅是请求是否被接受。
延迟
使用流式输出测量首 token 时间,在一天中的不同时间,从运行你代码的服务器。不要复制博客文章中的数字。
每项任务成本
使用脚本保存的 token 计数。对于包含 3,000 个输入 token 和 500 个输出 token 的任务,此 API 的成本为 0.003 x $0.15 + 0.0005 x $0.50 = $0.00045 + $0.00025 = $0.0007。将其他提供商的费率应用于相同的计数。定价页面列出了费率表和充值奖励。
无惊喜地迁移提示词
即使使用 OpenAI 兼容接口,模型在读取指令方面也有所不同。为这些变化做准备:
- 系统提示词。 针对一个模型优化的提示词在另一个模型中可能会有不同的解析方式。重新测试语气和格式规则。
- 采样设置。 适合一个模型的 temperature 可能对另一个模型来说太高或太低。创意工作从 0.7 开始,结构化输出从 0.2 开始,然后进行调整。
- 工具模式。 保持描述简短且字面意思准确。测试必填字段是否确实已填写。
- 输出格式。 如果你解析 JSON,使用
response_format中的 JSON 模式,并为解析错误保留回退。 - 停止序列。
stop参数被透传,但检查你的分隔符是否出现在正常输出中。
一次只更改一件事。如果你同时交换模型并重写提示词,你将不知道哪个更改有帮助。
何时留在更新的名称
- 你的测试显示对你的提示词有更好的回答。
- 你需要此 API 缺乏的功能,如图像输入或嵌入。
- 你需要供应商的官方支持条款或合规文件。
何时选择稳定接口:你想要没有版本跳变的可预测代码,想要 OpenAI 格式的即插即用替换,使用预付额度以加密货币支付,或处理其他模型拒绝的内容。该模型对合法成人用途无内容拒绝。唯一的硬性限制是禁止涉及未成年人的性内容。
简短决策记录
写下决策以便你稍后回顾。四行就足够了:
- 切换的原因,用一句话,如果可能的话带一个数字。
- 日期和回归集的大小。
- 拒绝、质量、延迟和每个任务成本的结果。
- 使你重新考虑的条件,例如你想要测试的新版本。
这防止了追逐模型名称成为一种习惯。当新版本出现时,你运行同一组测试并比较相同的四列。这需要一下午的时间,而不是一个项目。
实际操作中的切换
因为该 API 遵循 OpenAI 格式,在已经与 OpenAI 风格接口通信的客户端中尝试它只需进行三次更改:Base URL、密钥和模型名称。失败或被拒绝的请求不收费,因此遇到错误的测试运行不会消耗额度。在 密钥页面领取 $0.50 免费试用额度,有效期 7 天无需信用卡,并运行你的回归测试集。如果出现 429,请阅读错误代码:rate_limited 表示每分钟请求数,concurrency 表示同时请求过多,Retry-After: 5 标头标记表示临时过载。
如需与其他模型品牌的集成模式的工作示例,请参阅 Kimi apikey 集成指南。
如果你仅迁移部分流量,请在配置中添加开关,以便在几分钟内回滚。保留记录每个请求由哪个模型回答的日志,以便投诉可追溯至特定版本。
