Skip to content
This page has been auto-translated and may contain errors.View in English

供应商设置 ​

在任何代理代码能运行之前,它需要知道向哪里发送请求、用哪个密钥授权,以及调用哪个模型。这一页帮你把这三个值都准备好。

你的 API 密钥是凭证

把它当作密码看待。绝不要粘贴到 JavaScript 文件里,绝不要提交到版本控制,绝不要在 Discord 求助消息里发出来。任何拿到你密钥的人都可以花你的额度。

正因为这个原因,课程把所有的 API 调用都放在服务器上,而不是在浏览器里。浏览器代码对任何打开浏览器开发者工具的人都是可见的,所以用在那里的密钥就等于把它给了别人。

检查你已经有什么 ​

如果你学过"AI 工程入门",这些变量可能还保存在你的 Scrimba 账户里。

在 Scrimba 编辑器中打开 Settings,然后选择 Edit Environment。找三个名字分别叫 AI_URL、AI_KEY 和 AI_MODEL 的条目。

如果这三个都在,而且指向的供应商你还有额度,那你大概已经准备好了。跳到推荐模型确认 AI_MODEL 中的模型支持工具调用,因为这个要求在这门课中比上一门课更严格。

如果有任何一个缺失,或者你想切换供应商,继续往下读。

Juno检查你已经有什么 在注册任何东西之前,先看一下 Settings,然后 Edit Environment。AI 工程入门用的是这三个名字,所以它们可能已经在那里了。

检查只需要几秒钟,可以省去创建一个你不需要的账户。

Juno检查你已经有什么 这些名字从 AI 工程入门就没变过。你要确认的是 AI_MODEL 中的模型是否支持工具调用。

上一门课不需要这个,所以那时候管用的一套值在这里可能会失败。

Juno检查你已经有什么 复用这些值没问题。如果你忘了那个密钥从上一门课以来被粘贴到过哪些地方,现在是轮换密钥的好时机:创建一个新密钥保存好,然后吊销旧的。

选择哪个供应商 ​

OpenAI 是这门课最安全的默认选择。Responses API 就是从它的 API 来的,使用它需要付费的 API 额度。成本取决于模型、请求大小和你的实验量,所以在添加你觉得舒服的金额之前先查看当前价格。

OpenRouter 是你不能或不想用 OpenAI 时的替代方案。它是单一的 API,能路由到许多供应商,包括免费模型,而且提供的也是课程调用的同一个 OpenAI 风格的 Responses API,所以课程代码不需要改变。

不管怎样,设置都遵循同样的模式:创建账户,生成密钥,然后保存供应商的 URL、你的密钥和一个模型 ID。

Juno选择哪个供应商 两个供应商都适用于每一课。OpenAI 是课程用的那个,所以跟着用最简单。

如果直接向 OpenAI 支付对你不方便,或者你想要一个账户就能用许多模型,那就选 OpenRouter。

Juno选择哪个供应商 两者之间课程代码不变,因为它用的是 OpenAI 客户端,把 AI_URL 当作基础 URL。把这个 URL 指向 OpenRouter 就是全部的切换。
Juno选择哪个供应商 "OpenAI 兼容"在请求格式这边管用,在边界处就不那么严格了,而代理工作恰好生活在边界处:严格的工具参数、强制或禁用工具使用、结构化输出。OpenRouter 把你的请求传给提供那个模型的上游供应商,所以兼容性是按路由的,不是按网关的。

设置 OpenAI ​

前往 OpenAI 开发者平台并登录或创建账户。

ChatGPT Plus 不是 API 额度

开发者平台的计费与 ChatGPT 订阅分开。有 ChatGPT Plus 不会给你的 API 账户任何额度。

在平台设置中打开 Billing,如果你的账户需要的话添加额度。这门课不需要昂贵的模型:少量额度加轻量级模型足够跟着学。

现在在平台设置中打开 API keys,选择 Create new secret key。给密钥起一个能帮你记起它是用来干什么的名字。密钥创建后立刻复制它,因为完整的值只显示一次。

回到 Scrimba,打开 Edit Environment 并设置:

dotenv
AI_URL=https://api.openai.com/v1
AI_KEY=your-api-key-here
AI_MODEL=gpt-5.4-nano

gpt-5.4-nano 是课程的默认模型。如果你想要别的,看看推荐模型。三个值都填好后保存环境变量。

Juno设置 OpenAI 密钥只显示一次,所以当对话框还开着的时候就复制到 Scrimba 里。如果关得太早了,删除那个密钥再创建一个新的。
Juno设置 OpenAI 在同一个会话里做两件事:在密钥可见的时候直接复制到 Scrimba,还有在离开前在 Billing 设置支出限额。

起一个你以后能认出来的名字在你有好几个密钥需要吊销一个的时候很重要。

Juno设置 OpenAI 每个用途一个有名字的密钥让你能精确地吊销。如果你分不清哪个密钥泄露了,你得吊销所有的,然后更新用过它们的所有东西。

设置 OpenRouter ​

创建一个 OpenRouter 账户,打开 API Keys 页面,为 Scrimba 创建一个密钥。

OpenRouter 有免费模型,但它们不总是可用的,而且从一次运行到另一次的表现可能不一样,这样就很难分辨一个奇怪的结果是来自你的代码还是来自模型。所以更安全的选择和 OpenAI 一样:加载一小笔额度,如果你想要一致的结果就选一个轻量级的付费模型。

如果你确实打算用免费端点,先打开 Privacy 设置,在启用它们之前查看数据策略选项。免费端点可能把你的请求路由到有不同数据策略的供应商,所以在发送任何真实数据之前做个明确的决定。

在 Scrimba 中,设置:

dotenv
AI_URL=https://openrouter.ai/api/v1
AI_KEY=your-api-key-here
AI_MODEL=mistralai/ministral-3b-2512

mistralai/ministral-3b-2512 是 OpenRouter 推荐模型中的一个。保存环境变量。

Juno设置 OpenRouter 注意模型 ID 的格式。在 OpenRouter 上它以供应商开头,所以是 mistralai/ministral-3b-2512,不是单独的短名字。
Juno设置 OpenRouter 供应商前缀是 ID 的一部分,这是从别的地方复制模型名字时要留意的东西。

如果你启用免费模型,先打开 Privacy。它控制你的请求可能到达哪些上游供应商。

Juno设置 OpenRouter Privacy 设置决定你的提示是否可能被发送到会保留或用于训练的端点,条款因上游供应商而异。

对课程练习来说风险不大,但这个设置留在账户上会影响你之后发送的所有东西。

这三个值要一起动 ​

最常见的设置失败不是单个值错了,而是一整套值不匹配。一个有效的密钥加上错误的供应商 URL 会失败,一个有效的供应商设置加上那个供应商没有的模型 ID 也会失败。两者都会产生认证或找不到模型的错误,读起来像是课程代码里有什么坏了。

所以无论何时切换供应商,都要把 AI_URL、AI_KEY 和 AI_MODEL 作为一个整体来改,然后一起保存。

在你自己的机器上运行代码?

Scrimba 把这些存为账户级环境变量,这就是为什么浏览器项目里没有 .env 文件。在你自己的机器上你会把同样的三个值放到 .env 文件里。本地运行代码讲了这个。

Juno这三个值要一起动 如果你看到认证或找不到模型的错误,在看你写的任何东西之前先检查这三个值。通常其中之一是从之前的某个设置留下来的。
Juno这三个值要一起动 打开任何代码之前从上到下读一遍这三个值。如果它们匹配但错误说认证失败,那密钥本身可能是无效的或被吊销了,所以创建一个新的。
Juno这三个值要一起动 两种失败都描述供应商那边出了什么问题,而不是为什么。一个密钥被发到另一个供应商的 URL 读起来像是坏密钥,一个供应商目录外的模型读起来像是打错了。

接下来去哪里 ​

推荐模型讲了什么样的模型适合代理工作,以及哪些已经在这门课中被测试过。如果你更想看请求本身是怎么组织的,Chat Completions 和 Responses 比较了这两种 API 形状。

Juno接下来去哪里 接下来选一个模型,把它的 ID 放到 AI_MODEL 里。
Juno接下来去哪里 它的表格里每个模型都被测试过工具调用,所以从那开始。
Juno接下来去哪里 API 页面显示这三个值配置的请求。