| 1 | import type { DocsAuthDict } from "../types"; |
| 2 | |
| 3 | /** 「连接模型提供商」页的简体中文词典;与 `en/docs-auth.ts` 逐段对应。 */ |
| 4 | export const docsAuth: DocsAuthDict = { |
| 5 | metaTitle: "连接模型提供商 · Codewhale 文档", |
| 6 | metaDescription: |
| 7 | "为 Codewhale 接上模型:保存提供商密钥、查看当前使用的是哪把密钥,或者不用密钥直接运行本地模型。Codewhale 账户是可选的。", |
| 8 | bodyClassName: "text-ink-soft leading-[1.9] tracking-wide", |
| 9 | title: "连接模型提供商", |
| 10 | lede: |
| 11 | "Codewhale 需要一个模型来回答问题。你可以为云端提供商保存一把密钥,也可以让它连接你本机运行的模型。费用由你直接付给提供商,不经过 Codewhale 账户。", |
| 12 | sections: [ |
| 13 | { |
| 14 | id: "save-key", |
| 15 | title: "保存提供商密钥", |
| 16 | blocks: [ |
| 17 | { |
| 18 | p: "先在提供商那里申请 API 密钥,然后保存。Codewhale 会提示你输入密钥,输入内容不会回显。DeepSeek 是默认提供商,下面以它为例。", |
| 19 | }, |
| 20 | { |
| 21 | code: `codewhale auth set --provider deepseek |
| 22 | codewhale auth status --provider deepseek`, |
| 23 | lang: "终端", |
| 24 | }, |
| 25 | { |
| 26 | p: "`auth status` 会说明当前密钥来自哪里——配置文件、密钥存储还是环境变量——并且只显示最后四位。在脚本里可以用 `--api-key-stdin` 通过管道传入密钥,不必手动输入。", |
| 27 | }, |
| 28 | { |
| 29 | p: "也可以在 Codewhale 里连接:按 F3(或输入 `/provider`),选择提供商,粘贴密钥,再选一个模型。", |
| 30 | }, |
| 31 | { |
| 32 | note: "在 v0.10.0 中,`auth set --provider deepseek` 还会把默认模型切换为 DeepSeek Pro。想换回更快、更便宜的模型,运行 `/model` 即可。通过 F3 连接则会保留你当前的模型。", |
| 33 | }, |
| 34 | ], |
| 35 | }, |
| 36 | { |
| 37 | id: "which-key", |
| 38 | title: "弄清用的是哪把密钥", |
| 39 | blocks: [ |
| 40 | { p: "同一个提供商的密钥如果设在多处,按下面的顺序取第一个找到的:" }, |
| 41 | { |
| 42 | steps: [ |
| 43 | "命令行上的 `--api-key`,只对这一次运行生效。", |
| 44 | "`~/.codewhale/config.toml` 中的 `api_key`。", |
| 45 | "`codewhale auth set` 写入的密钥存储。", |
| 46 | "提供商自己的环境变量,例如 `DEEPSEEK_API_KEY`。", |
| 47 | ], |
| 48 | }, |
| 49 | { |
| 50 | p: "因此,导出一个新的环境变量并不会替换你之前保存的密钥。如果换过的密钥一直报错,先用 `auth status` 看看生效的是哪个来源,再保存新密钥,或清除已存的旧密钥:", |
| 51 | }, |
| 52 | { code: "codewhale auth clear --provider deepseek", lang: "终端" }, |
| 53 | { |
| 54 | p: "在 Linux 上,密钥存储是 `~/.codewhale/secrets/` 下的一个私有文件(权限 0600),而不是系统钥匙串。`codewhale doctor --probe-api` 会发起一次测试调用,确认密钥和网络都正常。", |
| 55 | }, |
| 56 | ], |
| 57 | }, |
| 58 | { |
| 59 | id: "other-providers", |
| 60 | title: "使用其他提供商或本地模型", |
| 61 | blocks: [ |
| 62 | { |
| 63 | p: "`codewhale auth list` 会列出 Codewhale 支持的所有提供商,以及每个提供商是否已有密钥。所有提供商的用法都一样:`codewhale auth set --provider <name>`,或者设置该提供商的环境变量。", |
| 64 | }, |
| 65 | { |
| 66 | p: "本地运行器——Ollama、vLLM 和 SGLang——默认不需要密钥,你的提示词也不会离开本机。先启动运行器,再选择它:", |
| 67 | }, |
| 68 | { |
| 69 | code: `codewhale auth list |
| 70 | codewhale --provider ollama --model <model-tag>`, |
| 71 | lang: "终端", |
| 72 | }, |
| 73 | { |
| 74 | p: "[模型页面](/models) 列出了各家提供商、本地部署方式,以及如何在会话中切换模型。", |
| 75 | }, |
| 76 | ], |
| 77 | }, |
| 78 | { |
| 79 | id: "account", |
| 80 | title: "登录 Codewhale 账户(可选)", |
| 81 | blocks: [ |
| 82 | { |
| 83 | p: "提供商密钥和 Codewhale 账户是两回事。账户只用于账户相关的功能,比如云端智能体、在网页应用里接着使用某个会话。安装 Codewhale 和在本地工作都不需要账户。", |
| 84 | }, |
| 85 | { |
| 86 | rows: [ |
| 87 | ["codewhale login", "在浏览器中用一次性验证码登录。"], |
| 88 | ["codewhale account status", "查看当前配置档登录的是哪个账户。"], |
| 89 | ["codewhale account logout", "移除当前配置档的登录会话。"], |
| 90 | ["codewhale account keys list", "列出保存在账户里的提供商密钥,永远不会显示密钥内容。"], |
| 91 | ], |
| 92 | codeTerms: true, |
| 93 | }, |
| 94 | { |
| 95 | p: "`codewhale login` 不接收提供商密钥,提供商密钥一律通过 `codewhale auth set` 保存。登录会话优先保存在操作系统的凭据管理器中;没有凭据管理器时(例如通过 SSH 或在容器里),则保存在 Codewhale 的私有密钥文件中。", |
| 96 | }, |
| 97 | ], |
| 98 | }, |
| 99 | ], |
| 100 | next: [ |
| 101 | { |
| 102 | href: "/docs/guide", |
| 103 | label: "开始第一个任务", |
| 104 | note: "在项目里打开 Codewhale,交给它一件具体的事。", |
| 105 | }, |
| 106 | { |
| 107 | href: "/docs/modes", |
| 108 | label: "设置模式与审批", |
| 109 | note: "决定 Codewhale 运行命令之前是否先问你。", |
| 110 | }, |
| 111 | { |
| 112 | href: "/docs/trust", |
| 113 | label: "了解哪些数据会离开本机", |
| 114 | note: "提供商会收到什么、哪些留在本地,以及如何关闭用量统计。", |
| 115 | }, |
| 116 | ], |
| 117 | sourceNote: |
| 118 | "来源文档:docs/INSTALL.md §8、docs/PROVIDERS.md、docs/CODEWHALE_AGENT.md · 修改时同步更新 docs-map.ts。", |
| 119 | }; |
| 120 |