FreeModel

What is FreeModel?

FreeModel 是一个模型网关,用一个密钥接通多家模型服务,调用时按任务分发到合适的模型。它的核心做法是先走免费额度,免费额度用完或服务方出问题时再自动换路,不用人工逐家换密钥。FreeModel 本身不训练模型,也不自己跑推理,所有请求都转发给已经托管模型的那家服务方。它可以用在任何支持常见接口形状的客户端里,不必先装某一个桌面应用。

网关到底替你省了什么?

没有网关的时候,每换一家模型服务,就要重新注册、重新拿密钥、重新对一遍接口写法,时间都花在接线上了。网关把这一步收拢成一处:密钥只配一次,调用只走一种请求形状,剩下的分发由网关内部处理。对调用方来说,变化的是入口变少了,而不是模型变少了,模型清单仍然来自各家服务方自己的发布。

省下来的不只是注册步骤,还有排查成本。请求出问题时,先看网关返回的模型标注和用量记录,就能判断请求实际走了哪家服务,而不是逐家登录控制台去翻。入口统一之后,换模型也不用改调用代码的结构,只需要改模型名那一项,改动点收得越小,出错时越容易定位。

一个密钥是怎么接通多家服务的?

密钥的作用是让网关认出调用方,而不是让模型服务方直接认出你。调用时带上这个密钥,再写明要用的模型名,网关就按模型名把请求转发到对应的服务方。模型名必须写服务方清单里的名字,不能凭印象写简称,抄错一个字符就会被判定为不存在,排查时要先核对清单原文。

地址和密钥也要分开管。地址写在配置文件里可以分享给同事,密钥只放在环境变量或系统钥匙串里,由运行环境注入,这样分享配置时不会顺手把密钥发出去。不同服务用不同的密钥,测试用的密钥和正式用的密钥分开,测试密钥泄露了也只影响测试用量,轮换时也只改一处。

任务是怎么被分到合适模型的?

分发的前提是任务本身有明确的形状:写代码、改文字、查资料、做对话,每类任务对模型的要求并不相同。网关按任务去匹配清单里合适的模型,而不是把所有请求都推给同一个模型。匹配做得好不好,取决于清单里对每个模型的描述是否准确,描述来自服务方自己的声明,网关不替服务方背书模型能力。

有一点要说清楚:分发并不能让能力不足的模型变强。路由只是在合适的模型之间做选择,不能把弱模型改造成强模型。如果任务本身需要长上下文、工具调用或代码编辑,就要先确认清单里的模型确实支持这些能力,缺了关键能力,入口通了任务也跑不好。

免费额度先走是什么意思?

名字里的免费,指的是免费额度先被花掉,而不是整个服务不花钱。有些服务方会给开发者留一部分免费额度来吸引试用,网关在额度还在的时候优先走这些条目,额度用完之后再走付费条目,账单按付费条目的标价记录。这个顺序的好处是试用阶段不用先掏钱,但试用结束之后的花费仍然要看账单,不能凭名字以为一直免费。

理解这一点之后,核对账单的方法也就清楚了。先看某次调用实际走了哪个模型,再看这个模型在当时的标价和用量记录,两边对上才算账清楚。如果只看名字就以为免费,或者只看结果就以为走的是免费条目,都可能在月底对账时发现偏差。

服务方出问题时会发生什么?

服务方出问题有两种常见情形:一种是直接报错,另一种是额度用完了不再接受请求。网关的做法是在这种情况下自动换路,把请求转给下一个合适的模型,而不是让调用方立刻失败。换路的前提是下一个模型确实在清单里,并且支持当前任务,换路之后返回里标注的模型名也会跟着变,调用方要按返回标注来核对,而不是按最初写的名字来假设。

自动换路并不等于结果完全不变。不同模型的表达风格和细节处理本来就有差异,换路之后的结果需要重新核对一遍,尤其是对格式有严格要求的任务。把换路当成兜底而不是当成常态,平时还是要以清单里的首选模型为准,出问题时才靠换路保住任务不中断。

它和模型本身有什么区别?

这是容易混淆的一点:FreeModel 不是一个模型。它不训练任何模型,也不在自己的机器上跑推理,每一次请求都会转发给已经托管模型的那家服务方。模型的能力、训练数据和输出质量都属于那家服务方,网关只负责接线和分发,不改变模型本身。

它也不是把别人的模型换个名字再卖一次的转售方。调用方如果自带服务方的密钥,账单就由那家服务方直接结算,网关不从中加一层遮挡。模型归谁,清单里写的是谁的名字,返回里标注的就是谁的名字,这一点在核对时可以直接验证。

换服务方要改多少东西?

换服务方的成本,取决于接口形状是不是通用形状。FreeModel 走的是常见的 OpenAI 或 Anthropic 请求形状,客户端和它说话的方式,和直接对服务方说话的方式基本一致。换出的时候,只要把地址指回另一家兼容服务,再把密钥和模型名换成那一家的,调用结构不用重写,改动可以收敛到很少的几行。

这个特点对长期使用很重要。入口一旦被某一家专有形状绑死,以后想换就要重写调用层,迁移成本会越积越高。通用形状的意义不在于今天少写几行代码,而在于以后换服务时不用推倒重来,主动权始终在调用方手里。

不用桌面应用能直接用吗?

可以。FreeModel 和桌面应用是两个独立的产品,依赖关系只朝一个方向走:桌面应用默认指向它,但它本身并不依赖桌面应用。任何支持常见接口形状的客户端,都可以直接把地址指到它,配好密钥和模型名就能调用,不必先装桌面应用。

反过来,桌面应用的用户也不用先去各家服务方注册。桌面应用出厂时已经指向了这个网关,用户跟着向导走完配置就能开始用,这就是它能说不用折腾的原因。两个产品各自分工:一个负责桌面上的统一窗口和中文向导,一个负责模型层的接线和分发。

关键数字

三步接入

  1. 第一步:打开 freemodel.online 注册,在 console 里建一把密钥。
  2. 第二步:把客户端 base URL 指到 /v1(OpenAI 形状)或 /api/gateway(Anthropic 形状)。
  3. 第三步:发一条短测试请求,核对返回里标注的模型名与 console 的用量记录。

什么时候适合用?

常见问题

### 免费额度用完了会断吗?

不会。免费额度先被花掉,用完按计费档走;具体单价以 /pricing/ 为准,不要按名字理解成永久免费。

### 换模型要改代码吗?

不用改请求结构,改模型名即可。模型清单从 /v1/models 现读,不要写死,清单会随上游增删。

### 必须装 Aiglade 桌面应用吗?

不必。FreeModel 是网关,任何支持常见接口形状的客户端都能直接指过来;桌面应用只是默认指向它的一个客户端。

### 上游服务方出问题会怎样?

自动换路到候选模型;只有模型退役(404/410)时别名才会切换候选,超时和限流应返回带模型名的错误。

这篇介绍有哪些局限?

本文只讲了网关的通用形状,没有针对任何一家具体服务写逐键配置,因为各家服务的地址结构、模型名和计费方式会随版本变化,今天写对的示例明天可能就过时。动手时要以所用版本的官方文档和实时模型清单为准,本文的步骤是核对清单,不是逐键操作指南。

本文也没有给出固定的模型数量、固定的可用性数字或固定的价格,因为这三项都会随服务方变化,写死一个数字反而会在读者动手那天误导人。需要引用数字时,请以公开模型清单接口当天的返回为准,并把读取日期一并写下来。涉及生产数据的任务,在切到新入口之前,建议先在测试项目里完整走一遍小请求验证,再切生产。

来源与延伸阅读:FreeModel 关于页:它是什么、不是什么、FreeModel、Aiglade、Claude Code 官方文档、Claude Code 产品页、tokenexchage