AI From U AI FROM U.COM

博客 / 指南

在 Cursor 里用自己的 base URL

Cursor 说的就是 OpenAI API,所以它也能对这里说。这篇讲的是模型设置里要填的两个地方、要加进去的四个模型名字,以及在相信编辑器之前先用一条命令把 key 和 base URL 都验一遍的做法。写下来的是那两个值,因为菜单会随版本挪动,而值不会。四个名字直接写就行,OpenAI 那套写法也认。

Cursor 是通过 OpenAI API 和模型对话的。它能改成和这个网关对话,原因就在这里:不用打补丁,不用套一层,不用架代理,也不需要存在任何插件。在 Cursor 自己的设置里填两个地方,它就指到这边来了,而 Cursor 本来会做的每一件事照旧。这篇讲的就是那两个地方、四个模型该怎么命名,以及在相信编辑器之前该跑的那一条命令。

需要填的两个地方

打开 Cursor 的模型设置,找到 OpenAI 那一节 — 就是收 API key 的那一节。你要的两样东西都在里面:key 的输入框,以及 base URL 的覆盖项,通常藏在旁边的一个开关后面。这里刻意只说是哪一节,而不写一步一步点哪里。Cursor 在不同版本之间会挪动这个界面,今天写下的逐步点击路线,过一个版本就变成了错答案;你亲手键入的那两个值,才是能留住的部分。

覆盖项填 https://aifromu.com/v1。key 在控制台里自己创建,而且就是你的脚本已经在用的那把 key,因为它们调用的本来就是同一个 API。两样都保存好,编辑器就已经指到这边了 — Cursor 里其他任何设置都不用动。

模型名字怎么写

在 Cursor 允许自定义模型名字的地方,把这个网关提供的四个加进去:astrasolterraluna。这就是 API 应答的名字,也是你的账单逐项列出的名字,所以编辑器里的一次会话和控制台里的一行,用的是同一个词。

OpenAI 那套写法的名字也能用。按上游厂商的叫法写的模型名,会被读成它所属的能力档位,并按这个档位在这里的价格计费,也就是说从别的 endpoint 搬过来的配置不用改就能跑。直接写我们这四个名字,只是让你自己看得见刚才点的是哪一档而已。至于一个档位要花多少,是按每个模型的每一类 token 分别计量的 — 输入、缓存读取、缓存写入和输出分开定价 — 这套算法在讲计费的那篇里从头算到了尾。

先用终端验一遍

在相信一个编辑器之前,先直接问 API。一条命令,在 Cursor 之外,用你刚粘进去的那把 key:

curl https://aifromu.com/v1/models -H "Authorization: Bearer YOUR_KEY"

四个模型会返回。如果返回了,说明 key 是活的、base URL 是对的,那么之后还坏的地方就在编辑器自己的设置里,而不在你的账户上 — base URL 尾巴上多带了一截路径、key 粘贴时前面多了一个空格、OpenAI 那一节填好了却始终没有打开。如果没返回,终端会用一行字告诉你原因,而这比隔着一个编辑器去看同一个错误要省事得多。

当 Cursor 要一个这里没有的模型

如果 Cursor 的某个功能要一个这个网关没有提供的模型,得到的回答是一句明确的拒绝,并点名它确实提供的那四个 — 这句话就出现在 Cursor 自己的报错位置上,所以配置错了是一条消息,而不是一个谜。在编辑器里,模型名字可以从不止一个地方冒出来,而某个功能悄悄接到了一个谁都没有键入过的名字,恰恰就是没有这句话就找不出来的那种故障。

网关也会映射它已知的那些客户端内部名字。Codex CLI 那个在后台跑的 reviewer 已经映射到 terra,所以一个客户端拿自己的私有名字来问,拿到的是一个模型而不是一个错误。拒绝是留给那些在这里没有什么能诚实地替它作答的名字的;能安置的名字,我们都安置。

如果 Cursor 的某个功能要一个这个网关没有提供的模型,得到的回答是一句明确的拒绝,并点名它确实提供的那四个 — 这句话就出现在 Cursor 自己的报错位置上,所以配置错了是一条消息,而不是一个谜。

本文为机器翻译,母语审校待完成。以英文版为准。