
无论是在构建 AI 聊天机器人,还是为应用添加对话功能,了解 AI 如何处理对话都很重要。Chat Completion API 通过连接应用与 AI 模型,生成相关且自然的回复,让这一切成为可能。借助 Python 集成、流式输出和工具调用等功能,开发者可以构建交互性更强的应用。接下来将了解它的工作原理、使用方法,以及 Kimi API 等服务如何支持灵活的 AI 开发。
什么是 Chat Completions API
Chat Completions API 是一种接口,应用可通过它向 AI 模型发送一系列消息,并获得助手回复,支持单轮和多轮对话。例如,你可以使用 Kimi K3.1 Pro 回答有关 Python 装饰器的问题,然后继续追问:
第一次请求:发送用户消息“什么是 Python 装饰器?”,Kimi 会返回一条解释该概念的助手消息。
第二次请求:要继续对话,请发送之前的用户消息、Kimi 完整的助手消息,以及新的用户消息:“你能给我举个例子吗?”
messages 数组承载每次请求所需的上下文。以下三项关键设计使这一接口得到广泛采用:
由应用管理历史记录:应用负责管理对话历史,并在每次请求中包含相关上下文,让开发者能够控制模型看到的内容。
常见消息角色: 常见角色包括
system(指令)、user(输入)、assistant(模型输出,会回传以保留多轮上下文)和tool(函数调用结果)。这些角色共同用于表达指令、对话和工具交互。灵活能力: 根据模型支持情况,该接口可处理流式传输、工具调用、视觉输入和结构化输出。Kimi K3.1 Pro 支持这些能力。
如何通过 Chat Completions API 使用 Kimi
以下示例使用 Kimi K3.1 Pro 和 OpenAI Python SDK,演示如何配置客户端、发送请求、处理响应以及实现工具调用:
快速入门:使用 OpenAI Python SDK 调用 Kimi
安装 OpenAI Python SDK:
将 Kimi API 密钥设置为环境变量:
你无需 OpenAI API 密钥。OpenAI Python SDK 仅作为客户端库使用,而你的 Kimi API 密钥和基础 URL 将用于验证身份,并将请求路由至 Kimi。
初始化客户端并发送第一个请求:
本示例使用 Kimi 的国际 API 端点。有关官方配置方式和模型详情,请参阅 Kimi K3.1 Pro 快速入门。
关键参数
以下参数涵盖通过 Chat Completions API 调用 Kimi K3.1 Pro 时可用的主要选项:
| 参数 | 用途 |
|---|---|
model | 指定模型 ID,例如 kimi-k3.1-pro。 |
messages | 提供对话消息,包括此前的用户输入和助手回复。支持文本和多模态内容。 |
reasoning_effort | 控制推理深度。可设为 low、high 或 max(默认值)。 |
max_completion_tokens | 设置最大生成预算,包括推理 token 和最终回答 token。输入 token 单独计数,但输入 token 与生成 token 的总和必须在模型的上下文窗口内。 |
stream | 设为 true 后,可增量接收响应,无需等待完整输出。 |
tools | 定义模型可以请求应用执行的函数。 |
response_format | 控制输出格式。支持用于 JSON 模式的 json_object,以及用于受 schema 约束的结构化输出的 json_schema。 |
注意: Kimi K3.1 Pro 使用固定的采样设置。请勿在请求中添加 temperature 或 top_p。有关参数详情和支持的取值,请参阅 Chat Completions API 参考。
读取响应
请求成功后,可通过返回的 completion 对象访问主要响应字段:
choices[0].message– 包含 assistant 的回复;当模型请求函数时,其中会包含content或tool_calls。choices[0].finish_reason– 表示生成停止的原因,例如stop、length或tool_calls。usage– 提供 token 用量信息,包括输入、输出,以及可用时的缓存 token 数量。
对于基本文本响应,读取 choices[0].message.content 即可。如果模型返回 tool_calls,你的应用需要执行所请求的函数,并在后续请求中提交其结果
流式传输示例
设置 stream=True,即可分块增量接收 Kimi 的响应。以下示例复用上文配置的 client,并在最终答案到达时将其打印出来:
Kimi K3.1 Pro 会将推理内容与最终答案分开返回。本示例仅打印 delta.content,因此会显示最终响应,而不会处理单独的 reasoning_content 字段。
工具调用简介
当任务需要模型自身回复之外的信息或操作时,工具调用让 Kimi 可以请求外部函数。例如,用户问“今天去东京要带伞吗?”,Kimi 可以请求调用 get_weather 函数来获取天气预报。
流程分为三步:
声明函数: 在
tools参数中定义get_weather及其预期参数。执行工具: Kimi 返回一条
tool_calls条目,其中包含函数名称和参数。你的应用执行相应函数并获取天气数据。回传结果: 将 Kimi 完整的 assistant 消息和工具结果(使用匹配的
tool_call_id)追加到对话中,然后再次调用 Kimi,生成面向用户的回答。
以下示例复用上文配置的 client。运行前,请确保已实现 get_weather(city) 函数,该函数应返回可 JSON 序列化的天气数据。该函数由你的应用执行,而非 Kimi。
此处的 get_weather() 代表由你的应用实现的函数,并非由 Kimi 直接执行的函数。Kimi 决定何时请求调用该函数并提供参数;实际操作由你的应用完成,并返回结果。
在生产环境中,应实现一个循环:处理每次工具调用,将相应结果追加到对话中,再将更新后的消息发送回 Kimi。重复这一过程,直到模型返回最终答案且不再请求其他工具。
选择服务提供商时,“兼容 OpenAI API”为何重要
许多服务提供商支持 OpenAI Chat Completions 格式,让开发者能够复用熟悉的 SDK 和请求结构。切换时通常只需更新基础 URL、API 密钥和模型 ID,然后检查支持的参数及响应处理方式。比较服务提供商时,可考虑以下因素:
兼容性还原度: 验证流式传输、工具调用、结构化输出和
usage报告是否符合应用预期。采用相同 API 格式,并不意味着不同服务提供商在功能支持或响应行为上完全一致。适合你工作负载的模型质量: 语言组合和任务类型比通用基准测试更重要。
上下文窗口: 长上下文模型能够在单次请求中处理更多源材料,从而简化部分文档工作流。
成本机制: 缓存和批量折扣通常比表面上的每 token 价格更重要。
生态覆盖范围: 其他兼容端点,如 Responses 和 Anthropic Messages,可在应用演进过程中提供更多集成选择和灵活性。
Kimi API:出色的兼容 OpenAI API 服务提供商
如果你正在寻找兼容 OpenAI API 的服务提供商,Kimi API 值得考虑,尤其适合中文应用、长文档处理和编程 agent。它结合了熟悉的 API 集成模式,以及 Kimi 的长上下文和推理能力。
即插即用的兼容性
如果您的应用已经在使用 OpenAI Python SDK,无需重写整个请求流程即可集成 Kimi。只需更新 API 配置,包括 base_url、api_key 和模型 ID,同时继续使用熟悉的 Chat Completions 接口。
例如,以下代码会从本地 report.txt 读取报告,将其内容发送给 Kimi K3.1 Pro 进行摘要,并以流式方式返回生成的响应:
这里的 client 会复用此前初始化的 Kimi 客户端,其 API 密钥从环境变量中读取。请根据所在地区选择基础 URL:国际平台使用 https://api.moonshot.ai/v1,在中国大陆访问 API 的用户使用 https://api.moonshot.cn/v1。
借助这种方式,您可以保留现有的 OpenAI SDK 工作流,同时使用 Kimi 模型完成文档摘要等由 API 驱动的应用任务。
Kimi 的差异化优势
具备 100 万 token 上下文窗口的旗舰模型: Kimi K3.1 Pro 支持最高 100 万 token 的上下文窗口,并具备原生视觉理解能力。开发者可在单一工作流中处理大型代码库、书籍篇幅的文档和图像输入,适用于复杂推理、编程和多模态应用。
灵活优化成本: Kimi API 针对重复的请求前缀支持自动上下文缓存,并为无需实时响应的大规模任务提供 Batch API 推理。缓存计费和 Batch 定价取决于模型及适用的定价规则。当前费率和计费详情请查看官方 Kimi API 定价。
兼容多种 API 生态: Kimi 提供兼容 OpenAI API 的 Chat Completions 和 Responses API 端点,以及兼容 Anthropic Messages 的端点。开发者可使用熟悉的 SDK 和 API 格式,将 Kimi K3.1 Pro 集成到现有工作流中,并根据端点和所支持的功能进行调整。
结语
开始使用 Chat Completions API 很简单:配置 API 凭证、发送请求,然后从 choices[0].message.content 读取生成的响应。首次 API 调用成功后,您可以根据应用需求扩展集成,加入多轮对话、流式响应或工具调用。准备好使用 Kimi 进行开发了吗?获取您的 Kimi API 密钥,开始发起 API 请求。
常见问题
messages 数组,并通过 choices 数组返回响应。Responses API 则采用更灵活的输入输出结构,支持不同内容类型和工具交互。对话状态的管理方式因服务商而异。使用 Kimi 的 Responses API 时,应用应在每次请求中包含相关的对话历史,而非依赖 response ID 链接。base_url 改为 Kimi 的 API 端点,将 api_key 改为你的 Kimi API 密钥,并将 model 改为受支持的 Kimi 模型 ID。随后测试集成,确认应用依赖的参数和功能(如流式输出和工具调用)均受支持。



