Models
Cursor
Cursor 可以把聊天和 agent 的请求发给任何兼容 OpenAI 的端点。把它指向 Grafilab,模型选择器里就会多出你的 Grafilab 模型,费用从你的 Grafilab 额度余额里扣。
- 已安装 Cursor 并已登录。这个覆盖设置在 Cursor 自己的设置界面里,不在
settings.json文件里。
- A Grafilab API key. In the console open API (
https://app.grafilab.ai/api) and click Generate New Key — see API Keys.
把密钥命名为 cursor,这样用量视图里就能看出这个编辑器花了你多少钱。
选择 model id
Section titled “选择 model id”The model catalog is live, so list it rather than copying ids from a page. Every entry’s id is the exact string to use in any tool or SDK.
curl https://llm.grafilab.ai/v1/models \ -H "Authorization: Bearer $GRAFILAB_API_KEY" | jq -r '.data[].id'from openai import OpenAI
client = OpenAI(api_key="sk-grafilab-...", base_url="https://llm.grafilab.ai/v1")for model in client.models.list(): print(model.id)import OpenAI from "openai";
const client = new OpenAI({ apiKey: "sk-grafilab-...", baseURL: "https://llm.grafilab.ai/v1" });for await (const model of client.models.list()) { console.log(model.id);}The same ids appear as cards in the Playground, with context size and prices.
你输入什么字符串,Cursor 就把它原样作为 model 字段发出去,所以它必须和目录里的 id 一字不差。
把 Cursor 连到 Grafilab
Section titled “把 Cursor 连到 Grafilab”-
用
Ctrl+Shift+J(Windows 和 Linux)或Cmd+Shift+J(macOS)打开 Cursor Settings,然后在侧边栏选择 Models。这个页面列出了 Cursor 知道的模型提供方。 -
在提供方列表里找到 OpenAI,把你的 Grafilab 密钥粘贴到 OpenAI API Key 字段。即使这个密钥不是 OpenAI 的密钥,Cursor 在使用被覆盖的端点时用的也是这个字段。
-
打开 Override OpenAI Base URL,准确填入 base URL:
https://llm.grafilab.ai/v1不要加
/chat/completions——Cursor 会自己补上路径。 -
选择 Verify(视 Cursor 版本也可能是 Save)。Cursor 会对你填的 base URL 调用
GET /v1/models;出现绿色的确认提示就说明 URL 和密钥都没问题。 -
选择 Add model,按
GET /v1/models返回的原样输入你的 Grafilab model id,然后确认。每个想加进选择器的模型都重复一遍。 -
把同一个列表里内置的 OpenAI 模型关掉。你这一个自定义密钥会应用到 Cursor 视为「OpenAI」的所有模型上,所以留着
gpt-*条目开启,就会发出 Grafilab 不提供的模型请求,它们会以404失败。 -
用
Ctrl+L/Cmd+L打开聊天面板,在模型选择器里选你的 Grafilab 模型。
在聊天面板里发一条简短的提示词——「reply with the word ok」就够了。能收到回复就说明整条链路是通的。
然后确认这些流量确实是你的:在控制台打开 API,在 cursor 密钥上选择 View Usage,看看今天有没有请求落下来。用量汇总最多可能延迟 30 分钟左右,所以先等一会儿再下结论。
哪些功能仍然跑在 Cursor 自己的模型上
Section titled “哪些功能仍然跑在 Cursor 自己的模型上”在依赖这套配置之前,有两件事值得知道。
你的密钥会经过 Cursor。 Cursor 在自己的服务器上拼出最终的提示词,所以每个请求——包括携带你 Grafilab 密钥的那个——都会经由 Cursor 的后端,而不是从你的机器直连 llm.grafilab.ai。这是该功能的设计方式,也正因如此,应该用一个可以单独轮换的专用密钥。
不是所有功能都遵循这个覆盖设置。 不管你的密钥怎么设,Tab 自动补全始终用 Cursor 内置的模型,部分 agent 和行内编辑路径也一样。预期是聊天面板走 Grafilab,而编辑器的一部分仍然按 Cursor 计费。
| 现象 | 原因 | 解决办法 |
|---|---|---|
| Verify 失败,提示密钥无效或连接错误 | base URL 少了 /v1,或者末尾多了斜杠、多了路径后缀 | 把它准确设为 https://llm.grafilab.ai/v1 |
发消息时返回 404 | model id 和目录里的条目对不上,或者还选着内置的 OpenAI 模型 | 用 GET /v1/models 重新列一遍,重新输入 id,并禁用内置模型 |
每个请求都返回 401 | 密钥里混进了多余的空白字符,或者已经在控制台轮换过了 | 从 API 页面重新粘贴密钥;轮换过的密钥大约 20 秒内就会失效 |
返回 429 并带配额提示 | 你的 Grafilab 额度余额空了——这不是吞吐量限制 | 到控制台充值 |
| 聊天正常,但 Tab 补全看起来没变化 | 这是预期行为:Tab 不走这个覆盖设置 | 不需要修 |

