文档
TypingMind
TypingMind 没有供自定义模型使用的基础 URL 字段:每个模型都需要单独添加一条配置,包括完整端点路由、模型 ID、上下文长度,以及需要手动输入为标头的密钥。以下是 Kunavo 的配置,以及说明它为何现在能在浏览器中正常使用,而一个月前不行。
Models → Add custom model:填写完整 Endpoint URL https://api.kunavo.com/v1/chat/completions、包含 Bearer 和密钥的 Authorization 标头、Model ID 及其上下文长度 — 每个模型添加一条,直接从浏览器调用。
Models → Add custom model → Create Manually
Name Kunavo · Claude Sonnet 5
Model ID claude-sonnet-5
Context Length 1000000
Authentication tab
API Type OpenAI Chat Completions API
Endpoint URL https://api.kunavo.com/v1/chat/completions
Authentication Type API Key via HTTP Header
Header Key Authorization
Header Value Bearer sk-kn-...
Capabilities tab tick only what you have checked (see below)
Request Options tab leave "Route requests via TypingMind Cloud" off
→ Test & Savehttps://api.kunavo.com/v1/chat/completions。TypingMind 不会附加任何路径——其示例中粘贴的是完整路由,例如 https://api.minimax.io/v1/chat/completions——因此单独填写 https://api.kunavo.com/v1 会将聊天请求发送到不存在的路径。access-control-allow-origin: *,且响应可读;无论使用 /v1/chat/completions、/v1/messages 还是 /v1/models 都是如此。对此端点,你不需要启用 通过 TypingMind Cloud 路由请求选项。sk-kn- 开头),并充值 $10 起——调用费用从该余额中扣除,失败的调用不会收费。随后,控制台会打开 TypingMind 设置页面。分步操作
- 在
/app/keys创建密钥并复制——它只会显示一次。 - 在 TypingMind 中,打开左侧边栏中的 Models,然后点击 Add custom model。保留在 Create Manually;Import JSON 和 Import OpenRouter 用于其他来源。
- 填写 Name(任意名称)、Model ID(必须与
GET /v1/models列出的完全一致,例如claude-sonnet-5)和 Context Length。表单会预填 128000;请根据 模型页面填写模型的实际上下文窗口,因为 TypingMind 会使用这个数字来决定发送多少历史记录。 - 在 Authentication 标签页中,选择 API Type = OpenAI Chat Completions API,粘贴完整的 Endpoint URL,将 Authentication Type 设为 API Key via HTTP Header,并在 Header Key 中填写
Authorization,在 Header Value 中填写Bearer sk-kn-...——即单词 Bearer、一个空格,然后是密钥。 - 在 功能 中,手动勾选所需功能,或保持开启 保存时自动检查功能——表单说明,保存时会发送“几条测试请求”,这会产生少量 Token 费用。你还可以选择在 价格中填写下方表格列出的每百万 Token 费率,使 TypingMind 的成本显示与你的账单一致。然后点击 测试并保存。
- 每个模型都要重复上述操作。自定义端点没有提供商级别的条目:Claude Sonnet、Claude Haiku 和一个 GPT 模型是三个独立的自定义模型,但它们使用相同的 Endpoint URL 和请求头。
已于 2026年10月1日 对照 TypingMind 模型文档 检查。第三方设置会发生变化;如果这里的字段名称不再与你看到的内容一致,应以该页面为准,而不是本页。
调试客户端前先验证
一个请求即可确定故障来自端点、密钥还是配置文件。如果返回 JSON,则相同的基础 URL 和密钥可以在 TypingMind 中使用。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."字段中应填写哪个模型 ID
每个文本模型都可通过模型 ID 访问——实时列表见 GET /v1/models,包含价格的目录见模型页面。费率单位为每 1M token 的美元,格式为输入 / 输出。
| 模型 ID | Kunavo 输入 / 输出 | 它在 TypingMind 中的位置 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | 适合日常使用,可处理长对话和文档 —— 上下文长度 1000000 |
claude-haiku-4-5 | $0.70 / $3.50 | 适合作为快速提问和标题生成的低成本备选 —— 上下文长度 200000 |
claude-opus-5 | $3.50 / $17.50 | 用于单次对话中的复杂推理,按需使用 —— 上下文长度 1000000 |
另外三种 API 类型
在线表单中的 API Type 下拉菜单提供 OpenAI Chat Completions API、OpenAI Responses API、Claude Messages API 和 Gemini API。Kunavo 支持前三种;每种都需要在 Endpoint URL 中填写完整路由。
- Claude Messages API —— Endpoint URL
https://api.kunavo.com/v1/messages。TypingMind 自带的 Claude 格式示例使用x-api-key请求头;Kunavo 在此路由上同时接受该请求头和Authorization: Bearer。此路由仅提供 Claude 系列模型 id。 - OpenAI Responses API —— Endpoint URL
https://api.kunavo.com/v1/responses,使用相同的 Bearer 请求头。TypingMind 的文档没有提供这种类型的完整示例,因此完整路由的写法是根据另外三种类型推断得出的,并非文档原文。 - Gemini API —— 不适用于此端点。它需要 Google 原生请求格式;请改用 Chat Completions 类型调用 Gemini 模型。
这不是 TypingMind API
“TypingMind API”通常指 TypingMind Teams 实例(custom.typingmind.com)的 REST API,用于管理该聊天实例。它不出售模型 Token,也与此配置无关。自定义模型只是 TypingMind 使用你提供的密钥调用其他人的端点。
两笔独立账单
TypingMind 许可证用于支付应用费用。你通过自定义模型发送的每条消息,都会由请求头中的密钥持有者按 token 计费;在此场景中,密钥持有者是 Kunavo,费用从预付余额中扣除。许可证档位以及按这些费率计算一个月聊天的费用,详见 TypingMind 定价与 API 成本。
Test & Save 失败时
- 404,提示“POST /v1 is the base URL, not an endpoint”(或者 URL 只到主机时提示“Not found: /”)——Endpoint URL 缺少路由。它必须以
/v1/chat/completions结尾(对应的类型则以/v1/messages、/v1/responses结尾)。2026 年 10 月 1 日之前,两种情况都会返回 HTML 页面。 - 404,提示“没有此端点” — 路由拼写错误,例如
/v1/chat/completion。同一消息会指出 Kunavo 提供的最接近路由。 - 404,提示“Not found: /chat/completions. Kunavo's API lives under /v1” — 路由存在,但缺少
/v1:Endpoint URL 填写的是https://api.kunavo.com/chat/completions。请在路由前添加/v1。(于 2026 年 10 月 1 日检查;在此日期之前,同样的错误会返回 HTML 页面。) - 401“缺少或无效的 API 密钥” — 标头有误:Header Key 必须为
Authorization,值必须以Bearer开头,或者该密钥已被撤销。 - 模型不可用错误 ——Model ID 的拼写与
GET /v1/models列出的不一致。ID 使用小写字母和连字符。 - 浏览器控制台中出现网络或 CORS 错误 ——请确认 Endpoint URL 填写的是
https://api.kunavo.com,而不是网站域名;发送 CORS 请求头的是 API 主机。
常见问题
如何在 TypingMind 中使用自己的 API 密钥添加自定义模型?
在左侧边栏中打开 Models,点击 Add custom model,然后选择 Create Manually。填写 Name、准确的 Model ID 和 Context Length。在 Authentication 标签页中选择 API Type,粘贴完整的 Endpoint URL ——对于 OpenAI 兼容的提供商,URL 以 /v1/chat/completions 结尾;然后将 Authentication Type 设为 API Key via HTTP Header,Header Key 填写 Authorization,Header Value 填写 Bearer 后接你的密钥。点击 Test & Save。这些标签名称来自 2026 年 10 月 1 日的在线应用;TypingMind 较早的文档对相同流程的描述措辞略有不同。
TypingMind 要求填写基础 URL 还是完整端点?
完整端点。该字段名为 Endpoint URL,而 TypingMind 文档中的所有示例都粘贴了完整路由,例如 https://api.minimax.io/v1/chat/completions,或以 /anthropic/v1/messages 结尾的 Azure URL。TypingMind 不会自动追加路径,因此仅填写 https://api.kunavo.com/v1 这样的基础 URL,会将请求发送到不存在的路由并返回 404。
TypingMind 能否直接从浏览器调用 Kunavo?
可以,自 2026 年 9 月 29 日 Kunavo 的 API 开始发送 CORS 响应头后即可。TypingMind 会直接从网页发起模型请求,因此端点必须允许该网页的来源。2026 年 10 月 1 日,从 typingmind.com 向 Kunavo 的 /v1/chat/completions、/v1/messages 和 /v1/models 发送的请求,均返回了 access-control-allow-origin: *,且响应正文可读取。这些请求故意使用了无效密钥,因此只能证明浏览器访问路径已开放,并不能证明完整聊天已成功运行。
我需要使用 TypingMind 代理或 TypingMind Cloud 路由吗?
Kunavo 不需要。在 Request Options 标签页中,有一个 Route requests via TypingMind Cloud 开关,表单将其描述为通过 TypingMind 服务器转发请求以绕过浏览器 CORS 限制。Kunavo 的 API 已允许浏览器调用,因此关闭此选项可让请求从浏览器直接发送到端点。
Kunavo 是否已对 TypingMind 进行端到端测试?
尚未使用有效密钥进行测试。2026 年 10 月 1 日检查了在线的 Add Custom Model 表单,并从 typingmind.com 网页向 Kunavo 发送了一个使用无效密钥的浏览器请求;该请求返回了可读取且带有 CORS 响应头的响应。尚未通过 TypingMind 对 Kunavo 发起任何补全、流式回复或工具调用,也未点击 Test & Save。请将你自己的 Test & Save 操作和首次消息视为端到端检查。