← 全部文章

通过 OpenAI 兼容 API 使用 Kimi K3 和 DeepSeek V4.1 Flash:TheRouter 集成指南

Kimi K3 和 DeepSeek V4.1 Flash 都提供 OpenAI 兼容的接口。只需修改 base_url 和模型 ID,你已有的 OpenAI SDK 代码就能直接调用这两个模型。本指南覆盖接入方式、代码示例、功能对比、常见问题和成本分析,并展示如何通过 TheRouter 实现自动回退路由。

· TheRouter

Kimi K3(Moonshot AI)和 DeepSeek V4.1 Flash 都原生实现了 OpenAI 兼容的 /v1/chat/completions 接口。如果你已经在用 OpenAI 的 Python 或 Node.js SDK,接入任何一个模型只需要改两行代码,把 base_url 换成对应提供商的地址,把 model 换成对应 ID。不需要装新 SDK,不需要新的认证流程,响应解析逻辑也不用动。流式输出、工具调用、结构化输出这些功能照用。

写这篇指南的原因很直接。开发者搜索「kimi api openai compatible」或「deepseek api openai compatible」的时候,搜到的通常是某一个提供商的文档。这篇文章把两个模型放在一起,给出各自的接入代码,逐项对比功能差异,然后讲清楚怎么通过 TheRouter 把两者编排到同一个端点,让回退逻辑自动生效。

来源 Kimi K3 快速入门,2026-09-12 检索。Kimi K3 定价,2026-09-12 检索。DeepSeek API 文档,2026-09-12 检索。DeepSeek 定价,2026-09-12 检索。DeepSeek V4.1 Flash 发布公告,2026-09-12 检索。模型参数参考,2026-09-12 检索。

OpenAI 兼容指供应商提供一个 chat-completions 接口,其请求与响应结构与 OpenAI API 契约足够接近——只需替换三个值(API key、base URL、模型名),原来的 OpenAI SDK 调用即可直接工作。最小实践面是POST /v1/chat/completions 带 messages、model, 并返回 OpenAI 形式的流式响应。

为什么 OpenAI 兼容格式对这两个模型很重要

OpenAI 的聊天补全格式(/v1/chat/completions)已经成了 LLM API 的通用协议。一个提供商采用了这个格式,所有为 OpenAI 构建的工具链就能直接复用,SDK、agent 框架、IDE 扩展、可观测性平台都不用改。

Kimi K3 和 DeepSeek V4.1 Flash 都原生支持这个格式。这两个模型是 2026 年 9 月最强的选择之一,来自定价结构、速率限制、地理可用性截然不同的两个提供商。能通过一次配置更改在它们之间切换,或者通过 TheRouter 这样的网关自动路由,意味着你的应用获得了不重写集成代码就能切换供应商的能力。

Kimi K3 接入方式

项目值
提供商Moonshot AI
Base URLhttps://api.moonshot.ai/v1
认证方式Bearer token(在 platform.kimi.ai/console/api-keys 获取)
模型 IDkimi-k3
上下文窗口1,048,576 tokens(1M)
最大输出64,000 tokens

Kimi K3 是 Moonshot AI 的旗舰模型,2.8 万亿参数的 MoE 架构,原生支持视觉理解,推理功能始终开启,上下文窗口达到 1M token。它是首个达到 3 万亿参数级别的开源模型。

Python 示例

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_MOONSHOT_KEY",
    base_url="https://api.moonshot.ai/v1",
)

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "用一段话解释 API 网关。"}],
)
print(response.choices[0].message.content)

cURL 示例

curl https://api.moonshot.ai/v1/chat/completions \
  -H "Authorization: Bearer $MOONSHOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3",
    "messages": [{"role": "user", "content": "用一段话解释 API 网关。"}]
  }'

K3 特有参数

  • reasoning_effort 支持 "low"、"high" 和 "max"(默认 "max")。K3 始终进行推理,这个参数控制推理深度。K2 系列的 thinking 参数在 K3 上不支持。
  • tool_choice 支持 "auto"、"none" 和 "required"(K2 系列不支持 "required")。
  • temperature、top_p、n、presence_penalty、frequency_penalty 全部固定,不能修改。调用时不要传这些参数。

来源 模型参数参考,2026-09-12 检索。

DeepSeek V4.1 Flash 接入方式

项目值
提供商DeepSeek
Base URLhttps://api.deepseek.com(OpenAI 格式)或 https://api.deepseek.com/anthropic(Anthropic 格式)
认证方式Bearer token(在 platform.deepseek.com/api_keys 获取)
模型 IDdeepseek-flash(规范名称;旧名 deepseek-v4-flash 仍会路由到 V4.1 Flash)
上下文窗口1,000,000 tokens(1M)
最大输出384,000 tokens

DeepSeek V4.1 Flash 是一个 552B 参数的 MoE 模型,采用全新的 Causal Encoder-Decoder 架构,输入端激活 8B 参数,输出端激活 16B 参数。它于 2026 年 9 月 10 日发布,取代了 V4 Flash,多项基准测试超越了之前的旗舰模型 V4 Pro。

Python 示例

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_DEEPSEEK_KEY",
    base_url="https://api.deepseek.com",
)

response = client.chat.completions.create(
    model="deepseek-flash",
    messages=[{"role": "user", "content": "用一段话解释 API 网关。"}],
)
print(response.choices[0].message.content)

cURL 示例

curl https://api.deepseek.com/chat/completions \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-flash",
    "messages": [{"role": "user", "content": "用一段话解释 API 网关。"}]
  }'

V4.1 Flash 特有参数

  • thinking 支持 {"type": "enabled"}(默认)和 {"type": "disabled"}。可以关闭推理模式。
  • reasoning_effort 支持 "low"、"medium" 和 "high",在推理模式开启时控制推理深度。
  • temperature、top_p、frequency_penalty、presence_penalty 都可以自由调节(这点和 K3 不同)。
  • 峰值/非峰值定价。峰值时段为 UTC 时间周一至周五 01:00-04:00 和 06:00-10:00,非峰值时段价格是峰值的一半。

来源 DeepSeek API 文档,2026-09-12 检索。V4.1 Flash 发布公告,2026-09-12 检索。

功能对比矩阵

功能Kimi K3DeepSeek V4.1 Flash
Base URLhttps://api.moonshot.ai/v1https://api.deepseek.com
模型 IDkimi-k3deepseek-flash
参数量2.8T MoE552B MoE(活跃 8B/16B)
上下文窗口1M tokens1M tokens
最大输出64K tokens384K tokens
流式输出支持支持
工具调用支持(含 required)支持
结构化输出(json_schema)支持(strict: true)支持
视觉输入支持(图片 + 视频)支持(图片)
推理模式始终开启(reasoning_effort)可开关(thinking 参数)
推理深度级别low / high / maxlow / medium / high
temperature 控制固定,不可修改可自由调节
Anthropic API 格式不支持支持(/anthropic 路径)
FIM 补全不支持支持(非推理模式)
Responses API不支持支持
并发限制按充值等级2,500(Flash)

通过 TheRouter 路由两个模型的配置和回退方案

TheRouter 将 OpenAI 兼容请求路由到配置好的提供商。你可以让应用指向一个 TheRouter 端点,由它负责提供商选择、回退和负载均衡。

一个典型配置是把 Kimi K3 作为主路由,DeepSeek V4.1 Flash 作为回退。

# TheRouter 配置片段
routes:
  - model: "kimi-k3"
    provider: moonshot
    fallback:
      - model: "deepseek-flash"
        provider: deepseek

应用代码和前面的 OpenAI SDK 示例完全相同,只需要把 base_url 指向你的 TheRouter 实例。如果 K3 返回 429(速率限制)或 5xx(服务器错误),TheRouter 会自动用 DeepSeek V4.1 Flash 重试。

如果你更看重成本,可以反过来配置。用 DeepSeek V4.1 Flash 当主路由(每 token 成本更低),需要视频输入或更深度推理时再回退到 K3。

详见 模型回退配置。

常见问题和陷阱

1. 推理参数不一致。 K3 用 reasoning_effort(顶层字段),DeepSeek 同时用 thinking(开关推理)和 reasoning_effort(设置推理深度)。在两个模型之间路由时,中间件需要做参数转换。K3 会忽略 thinking,DeepSeek 在没有启用 thinking 的情况下不响应 K3 风格的 reasoning_effort。TheRouter 为支持的参数处理了这个转换。

2. temperature 的处理差异。 K3 把 temperature 锁定在 1.0,传任何其他值都会报错。DeepSeek 允许自由设置。如果你的代码传了 temperature=0.7,在 DeepSeek 上正常运行,在 K3 上会收到 invalid_request_error。要么在同时调用两个模型时省略 temperature,要么在回退逻辑中处理这个错误。

3. 模型 ID 命名变更。 DeepSeek 已经废弃了 deepseek-v4-flash 这个名称,现在它会兼容路由到 V4.1 Flash,但规范名称是 deepseek-flash。建议使用新名称,避免调试时产生混淆。

4. K3 的缓存失效问题。 在对话过程中切换 reasoning_effort 会导致前缀缓存失效,输入成本从 $0.30/M(缓存命中)跳到 $3.00/M(缓存未命中)。在对话开始前确定好推理深度级别,整个会话保持一致。

5. DeepSeek 的峰值定价。 峰值时段(UTC 周一到周五 01:00-04:00 和 06:00-10:00)的价格是非峰值的两倍。如果任务时间灵活,把批量作业安排在非峰值时段可以省一半输入费用。

6. 最大输出差异。 K3 的最大输出是 64K tokens,V4.1 Flash 最高可以输出 384K tokens。如果你需要很长的输出(代码生成、文档起草),V4.1 Flash 更合适。

成本对比

所有价格均为每 1M tokens 的美元价格。

费用项Kimi K3DeepSeek V4.1 Flash(非峰值)DeepSeek V4.1 Flash(峰值)
输入(缓存命中)$0.30$0.003$0.006
输入(缓存未命中)$3.00$0.15$0.30
输出$15.00$0.60$1.20

DeepSeek V4.1 Flash 在输入端便宜约 20 倍,输出端便宜 12 到 25 倍,具体取决于是否在峰值时段。K3 的价格溢价换来的是更大的参数量(2.8T vs. 552B)、原生视频理解能力和始终保持高水平的推理深度。

对成本敏感、不太需要极致推理质量的场景,V4.1 Flash 是明确的选择。对需要顶级推理能力、原生视频输入或 K3 特有 strict schema 结构化输出的任务,价格差距可能值得承担。

来源 Kimi K3 定价,2026-09-12 检索。DeepSeek 定价,2026-09-12 检索。

上线检查清单

  • 将 API 密钥存储在环境变量或密钥管理服务中,不要写在代码里
  • 设置 max_tokens 或 max_completion_tokens 以防止输出失控导致费用暴涨
  • 处理 429 速率限制响应,使用指数退避重试,或使用 TheRouter 内置的重试机制
  • 调用 K3 时不要传 temperature、top_p、n、presence_penalty、frequency_penalty
  • 调用 DeepSeek 时使用 deepseek-flash 作为模型 ID(不要用已废弃的 deepseek-v4-flash)
  • 使用 K3 时在对话开始前确定 reasoning_effort,保持整个会话一致以保持缓存命中
  • 使用 DeepSeek 时把批量任务安排在非峰值时段(UTC 周一至周五 01:00-04:00、06:00-10:00 以外)以节省一半输入费用
  • 测试流式输出行为,两个提供商都会先发送 reasoning_content delta,再发送 content delta
  • 在 K3 上使用工具调用时,考虑动态工具加载模式以避免占满上下文窗口
  • 通过 TheRouter 路由时监控各提供商的 token 使用量

常见问题

两个提供商能用同一套 OpenAI SDK 代码吗? 可以。Kimi K3 和 DeepSeek V4.1 Flash 都实现了 /v1/chat/completions 接口,请求和响应的格式相同。换 base_url 和 model 就行。

哪个模型更适合编程任务? 两个都很强。K3 擅长需要视觉反馈的长周期编程(游戏开发、前端工程)。V4.1 Flash 在编程基准测试上超过了 V4 Pro,同时更便宜也更快。如果纯做代码生成不需要视觉输入,V4.1 Flash 的性价比更高。

DeepSeek 也支持 Anthropic API 格式吗? 支持。DeepSeek 在 https://api.deepseek.com/anthropic 提供了 Anthropic 兼容接口。Kimi 目前不提供 Anthropic 格式的接口。

给 K3 传 temperature=0 会怎样? K3 会拒绝请求并返回 invalid_request_error。K3 把 temperature 固定在 1.0,不接受修改。调用时直接省略这个参数。

TheRouter 能在提供商之间转换推理参数吗? TheRouter 将 OpenAI 兼容请求路由到配置好的提供商,在实际产品路径支持的情况下提供提供商/模型路由和回退。对于 reasoning_effort 或 thinking 这类提供商特有参数,请参考 TheRouter 的参数映射文档。

K3 可以通过 DashScope(阿里云百炼)调用吗? 截至 2026 年 9 月,Kimi K3 可以通过 Moonshot 自己的 API(api.moonshot.ai)和 DashScope 调用。具体可用性请查看百炼新上线模型页面。

K3 最低充值多少才能使用? K3 是旗舰模型,需要最低 $1 的充值才能解锁。累计充值金额决定你的速率限制等级。

本文涉及的模型

帮助与联系