API 密钥
API 密钥是让您访问 LLM 提供商 API 的身份验证令牌。AISCouncil 使用 BYOK(自带密钥)模式 —— 您直接从每个提供商获取密钥并将其存储在浏览器中。密钥从不通过任何中间服务器。
从哪里获取 API 密钥
每个提供商都有自己的开发者控制台,您可以在那里创建 API 密钥:
| 提供商 | 控制台 URL | 密钥格式 | 免费额度 |
|---|---|---|---|
| Anthropic | console.anthropic.com/settings/keys | sk-ant-api03-... | 否(需要预付额度) |
| OpenAI | platform.openai.com/api-keys | sk-proj-... 或 sk-... | 否(需要预付额度) |
| xAI | console.x.ai | xai-... | $25 月度免费额度 |
| Google Gemini | aistudio.google.com/apikey | 字母数字字符串 | 是(慷慨的免费额度,无需信用卡) |
| OpenRouter | openrouter.ai/keys | sk-or-v1-... | 是(20+ 免费模型,无需信用卡) |
| DeepSeek | platform.deepseek.com/api_keys | sk-... | 否(需要预付额度) |
| Groq | console.groq.com/keys | gsk_... | 是(免费额度有限速) |
| Mistral | console.mistral.ai/api-keys | 字母数字字符串 | 否 |
| Ollama | 不适用(本地) | 不需要 | 是(本地运行,无需密钥) |
Google Gemini 和 OpenRouter 都提供无需信用卡的免费额度。Gemini 让您访问 Gemini 2.5 Flash 和 Pro。OpenRouter 让您访问 20+ 免费模型,包括 DeepSeek R1、Llama 3.3、Qwen 3 等。这是开始聊天的最快方式。
密钥如何存储
API 密钥存储在您浏览器的 localStorage 中,使用提供商特定的键:
| localStorage 键 | 提供商 |
|---|---|
ais-apikey-anthropic | Anthropic (Claude) |
ais-apikey-openai | OpenAI (GPT) |
ais-apikey-xai | xAI (Grok) |
ais-apikey-gemini | Google Gemini |
ais-apikey-openrouter | OpenRouter |
ais-apikey-deepseek | DeepSeek |
ais-apikey-groq | Groq |
ais-apikey-mistral | Mistral |
密钥是 localStorage 中的纯字符串。它们在启动时同步读取,以便应用程序可以立即确定哪些提供商可用。
设置 API 密钥
通过设置对话框
- 打开设置(侧边栏中的齿轮图标)
- 进入 API 密钥部分
- 密钥面板显示模型注册表中的所有提供商,按提供商组织
- 在相关提供商的字段中输入您的密钥
- 密钥在输入时立即保存
通过配置面板
- 打开配置面板(右侧边栏)
- 底部的 API 密钥字段显示当前所选提供商的密钥
- 直接输入或更新密钥
- 更改时保存密钥
通过浏览器控制台
// 设置密钥
localStorage.setItem("ais-apikey-anthropic", "sk-ant-api03-your-key-here");
// 读取密钥
localStorage.getItem("ais-apikey-openai");
// 删除密钥
localStorage.removeItem("ais-apikey-xai");
安全模型
- 密钥从不出现在 URL 中 —— 机器人分享只编码配置,从不编码密钥
- 密钥从不被导出 —— 导出所有数据功能明确排除所有 API 密钥
- 密钥从不离开您的浏览器 —— 除了直接发送到提供商自己的 API 端点时
- 密钥不发送到 aiscouncil.net —— 应用程序不会使用您的密钥向自己的服务器发出任何请求
- 密钥从不被记录 —— 不在控制台、不在分析中、不在错误报告中
当您发送消息时,API 调用直接从您的浏览器发送到提供商:
您的浏览器 --(HTTPS + API 密钥)--> api.anthropic.com
您的浏览器 --(HTTPS + API 密钥)--> api.openai.com
您的浏览器 --(HTTPS + API 密钥)--> api.x.ai
您的浏览器 --(HTTPS + API 密钥)--> generativelanguage.googleapis.com
没有代理、没有中间件、没有中间人。密钥通过 HTTPS 直接传输到提供商,不会去其他任何地方。
全局 vs 每机器人 API 密钥
AISCouncil 支持两个级别的 API 密钥:
全局密钥(每个提供商)
在设置 > API 密钥中设置。这些是给定提供商的所有机器人使用的默认密钥。存储在 localStorage 中为 ais-apikey-{provider}。
每机器人密钥
在配置面板的每机器人 API 密钥下设置。这仅覆盖特定机器人的全局密钥。用例:
- 不同项目的不同 API 密钥(分开计费)
- 测试新密钥而不影响其他机器人
- 使用具有不同速率限制或权限的密钥
每机器人密钥存储在 IndexedDB 的机器人配置对象(k 字段)中。分享机器人 URL 时不包含它们 —— 接收者使用自己的密钥。
优先级:每机器人密钥 > 全局提供商密钥
如果机器人设置了每机器人密钥,它会使用它。否则,它会回退到该提供商的全局密钥。
密钥验证
应用程序在保存时不执行显式的密钥验证。相反,如果密钥无效,您会在首次尝试发送消息时看到错误。常见错误:
| 错误 | 原因 |
|---|---|
401 Unauthorized | API 密钥无效或密钥已被撤销 |
403 Forbidden | 密钥没有请求模型的权限 |
429 Too Many Requests | 超过速率限制(稍后重试) |
402 Payment Required | 额度不足或计费过期 |
轮换密钥
要轮换(更改)密钥:
- 在提供商控制台中生成新密钥
- 在设置 > API 密钥中更新密钥
- 旧密钥立即被替换 —— 没有过渡期
新密钥在下次 API 调用时生效。无需重启或重新加载。
提供商特定说明
Anthropic
- 密钥以
sk-ant-api03-开头(第三代格式) - 在任何 API 使用之前需要预付额度
- 支持
anthropic-dangerous-direct-browser-access头用于浏览器直接调用 - 速率限制取决于您的使用级别(1-4)
OpenAI
- 项目密钥以
sk-proj-开头;旧密钥以sk-开头 - 需要预付额度或活跃的计费计划
- 某些模型(GPT-4、o1)需要更高的使用级别
xAI (Grok)
- 密钥以
xai-开头 - 新账户获得 $25/月的免费额度
- 支持视觉和函数调用
Google Gemini
- 密钥是来自 Google AI Studio 的字母数字字符串
- API 密钥作为
?key=查询参数传递(不是 Bearer 头)以避免 CORS 预检请求 - 免费额度包括 Gemini 2.5 Flash(10 RPM)、Gemini 2.5 Pro(5 RPM)和 Gemini 2.5 Flash-Lite(30 RPM)
- 免费额度无需信用卡
OpenRouter
- 密钥以
sk-or-v1-开头 - 提供访问来自许多提供商的 300+ 模型
- 免费模型立即可用(无需信用卡)
- 付费模型通过 OpenRouter 自己的计费系统计费
DeepSeek
- 密钥以
sk-开头 - 定价明显低于其他提供商
- 支持推理(DeepSeek R1)和编码(DeepSeek Coder)
Groq
- 密钥以
gsk_开头 - 专注于快速推理
- 免费额度有限速
- 支持 Llama、Mixtral 和 Gemma 模型
Ollama
- 无需 API 密钥 —— Ollama 在您的机器上本地运行
- 应用程序内部使用占位符值
'ollama' - 需要安装并运行 Ollama(
ollama serve) - 设置
OLLAMA_ORIGINS=*以进行浏览器 CORS 访问 - 模型通过
GET /api/tags自动检测
故障排除
"无 API 密钥"错误
- 检查您是否在设置中为正确的提供商输入了密钥
- 验证配置面板中的提供商下拉菜单与您设置的密钥匹配
- 尝试再次粘贴密钥 —— 某些密码管理器可能会更改剪贴板
"401 Unauthorized" 或 "无效的 API 密钥"
- 在提供商控制台中重新生成密钥
- 确保密钥没有被撤销或过期
- 对于 Anthropic,确保您已向账户添加额度
- 对于 OpenAI,确保您的计费计划处于活动状态
"429 Too Many Requests"
- 您已达到提供商的速率限制
- 等待一分钟再试
- 考虑升级您在提供商的使用级别
- 对于免费额度模型,速率限制较低(例如,Gemini 免费:10 RPM)
"402 Payment Required"
- 您的预付额度已用完
- 在提供商的计费仪表板中添加更多额度
- 切换到免费额度模型(Gemini、OpenRouter 免费模型)
清除浏览器数据后密钥消失
- 当您清除浏览器数据、站点数据或 cookie 时,
localStorage会被清除 - 在清除之前导出您的密钥(手动复制它们,因为它们被排除在数据导出之外)
- 考虑使用密码管理器存储您的 API 密钥
切勿与任何人分享您的 API 密钥。切勿将它们粘贴到公共聊天消息、论坛或代码存储库中。如果密钥被泄露,请立即在提供商控制台中撤销它并生成新密钥。