本文档介绍如何在阿里云百炼平台调用月之暗面(Moonshot AI)直供的模型推理服务。
本文档仅适用于“中国内地(北京)”地域。如需使用模型,需使用“中国内地(北京)”地域的API Key。
模型列表
kimi/kimi-k2.5属于混合思考模型,通过enable_thinking参数控制是否开启思考模式(注意:无法通过thinking_budget限制思考长度)。
模型名称 | 上下文长度 | 最大输入 | 最大思维链长度 | 最大回复长度 |
(Token数) | ||||
kimi/kimi-k2.5 | 262,144 | 262,144 | 262,144 | 262,144 |
最大思维链长度是模型在思考模式下,思考过程的最大 Token 数量。
服务开通
前往百炼控制台,搜索 Kimi,找到 Kimi/Kimi K2.5 模型卡片,单击立即开通;
在弹窗内确认开通及授权。
完成以上步骤即可调用月之暗面提供的 Kimi 模型服务。
快速开始
前提条件
需要已获取API Key并完成配置API Key到环境变量
如果通过SDK调用,需要安装SDK
Kimi-k2.5 是 Kimi 系列最新模型,,支持输入文本、图像或视频,可通过 enable_thinking 参数控制思考模式,默认开启思考模式:
思考模式(
enable_thinking: true):模型会输出详细的推理过程(reasoning_content)非思考模式(
enable_thinking: false或不设置):直接输出结果,不包含推理过程
以下示例演示如何调用思考模式的 Kimi-k2.5 模型进行文本生成。
OpenAI兼容
enable_thinking非 OpenAI 标准参数,OpenAI Python SDK 通过 extra_body传入,Node.js SDK 作为顶层参数传入。
Python
from openai import OpenAI
import os
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="kimi/kimi-k2.5",
messages=[{"role": "user", "content": "1+1等于多少?"}],
stream=True,
# 通过 extra_body 设置 enable_thinking 开启思考模式
extra_body={"enable_thinking": True}
)
msg = completion.choices[0].message
if getattr(msg, "reasoning_content", None):
print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")
print(msg.reasoning_content or "")
print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")
print(msg.content)返回结果
====================思考过程====================
用户问了一个简单的数学问题:"1+1等于多少?"
这是一个非常基础的算术问题,答案是2。
我应该直接、清晰地回答这个问题。虽然用户用中文提问,但答案是一个通用的数学事实。
回答结构:
1. 直接给出答案:2
2. 可以简要说明这是基本的算术运算
不需要过度复杂化,保持简洁明了。
====================完整回复====================
1+1等于**2**。
这是最基本的算术运算,两个单位相加得到两个单位。Node.js
import OpenAI from "openai";
import process from 'process';
const client = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
});
const messages = [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "1+1等于多少?" },
];
const response = await client.chat.completions.create({
model: "kimi/kimi-k2.5",
messages,
extra_body: { enable_thinking: true },
});
const msg = response.choices[0].message;
if (msg.reasoning_content) {
console.log("\n" + "=".repeat(20) + "思考过程" + "=".repeat(20) + "\n");
console.log(msg.reasoning_content || "");
}
console.log("\n" + "=".repeat(20) + "完整回复" + "=".repeat(20) + "\n");
console.log(msg.content);返回结果
====================思考过程====================
用户问了一个简单的数学问题:"1+1等于多少?"
这是一个非常基础的算术问题,答案是2。
我应该直接、清晰地回答这个问题。虽然用户用中文提问,但答案是一个通用的数学事实。
回答结构:
1. 直接给出答案:2
2. 可以简要说明这是基本的算术运算
不需要过度复杂化,保持简洁明了。
====================完整回复====================
1+1等于**2**。
这是最基本的算术运算,两个单位相加得到两个单位。HTTP
curl
curl --location 'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "kimi/kimi-k2.5",
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你是谁"
}
],
"enable_thinking": true
}'多模态调用示例
Kimi-k2.5 不仅支持纯文本对话,还具备强大的多模态理解能力。本章节将介绍如何让模型理解图像和视频内容。
图像/视频文件仅支持通过公网URL传入,不支持 Base64 编码。
图像理解
图像理解功能让 Kimi 模型能够识别和分析图片内容。您可以传入单张或多张图片。图像文件的限制请参见图像限制。
OpenAI兼容
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
# 单图传入示例(开启思考模式)
completion = client.chat.completions.create(
model="kimi/kimi-k2.5",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "图中描绘的是什么景象?"},
{
"type": "image_url",
"image_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
}
}
]
}
],
extra_body={"enable_thinking":True} # 开启思考模式
)
# 输出思考过程
if hasattr(completion.choices[0].message, 'reasoning_content') and completion.choices[0].message.reasoning_content:
print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")
print(completion.choices[0].message.reasoning_content)
# 输出回复内容
print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")
print(completion.choices[0].message.content)
# 多图传入示例(开启思考模式,取消注释使用)
# completion = client.chat.completions.create(
# model="kimi/kimi-k2.5",
# messages=[
# {
# "role": "user",
# "content": [
# {"type": "text", "text": "这些图描绘了什么内容?"},
# {
# "type": "image_url",
# "image_url": {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"}
# },
# {
# "type": "image_url",
# "image_url": {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"}
# }
# ]
# }
# ],
# extra_body={"enable_thinking":True}
# )
#
# # 输出思考过程和回复
# if hasattr(completion.choices[0].message, 'reasoning_content') and completion.choices[0].message.reasoning_content:
# print("\n思考过程:\n" + completion.choices[0].message.reasoning_content)
# print("\n完整回复:\n" + completion.choices[0].message.content)Node.js
import OpenAI from "openai";
import process from 'process';
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1'
});
// 单图传入示例(开启思考模式)
const completion = await openai.chat.completions.create({
model: 'kimi/kimi-k2.5',
messages: [
{
role: 'user',
content: [
{ type: 'text', text: '图中描绘的是什么景象?' },
{
type: 'image_url',
image_url: {
url: 'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg'
}
}
]
}
],
enable_thinking: true // 开启思考模式
});
// 输出思考过程
if (completion.choices[0].message.reasoning_content) {
console.log('\n' + '='.repeat(20) + '思考过程' + '='.repeat(20) + '\n');
console.log(completion.choices[0].message.reasoning_content);
}
// 输出回复内容
console.log('\n' + '='.repeat(20) + '完整回复' + '='.repeat(20) + '\n');
console.log(completion.choices[0].message.content);
// 多图传入示例(开启思考模式,取消注释使用)
// const multiCompletion = await openai.chat.completions.create({
// model: 'kimi-k2.5',
// messages: [
// {
// role: 'user',
// content: [
// { type: 'text', text: '这些图描绘了什么内容?' },
// {
// type: 'image_url',
// image_url: { url: 'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg' }
// },
// {
// type: 'image_url',
// image_url: { url: 'https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png' }
// }
// ]
// }
// ],
// enable_thinking: true
// });
//
// // 输出思考过程和回复
// if (multiCompletion.choices[0].message.reasoning_content) {
// console.log('\n思考过程:\n' + multiCompletion.choices[0].message.reasoning_content);
// }
// console.log('\n完整回复:\n' + multiCompletion.choices[0].message.content);HTTP
curl
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi/kimi-k2.5",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "图中描绘的是什么景象?"
},
{
"type": "image_url",
"image_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
}
}
]
}
],
"enable_thinking": true
}'
# 多图输入示例(取消注释使用)
# curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
# -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
# -H "Content-Type: application/json" \
# -d '{
# "model": "kimi/kimi-k2.5",
# "messages": [
# {
# "role": "user",
# "content": [
# {
# "type": "text",
# "text": "这些图描绘了什么内容?"
# },
# {
# "type": "image_url",
# "image_url": {
# "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
# }
# },
# {
# "type": "image_url",
# "image_url": {
# "url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"
# }
# }
# ]
# }
# ],
# "enable_thinking": true
# }'视频理解
视频文件的限制请参见视频限制。
OpenAI兼容
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="kimi/kimi-k2.5",
messages=[
{
"role": "user",
"content": [
# 直接传入视频文件时,请将type的值设置为video_url
{
"type": "video_url",
"video_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
}
},
{
"type": "text",
"text": "这段视频的内容是什么?"
}
]
}
]
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
});
async function main() {
const response = await openai.chat.completions.create({
model: "kimi/kimi-k2.5",
messages: [
{
role: "user",
content: [
// 直接传入视频文件时,请将type的值设置为video_url
{
type: "video_url",
video_url: {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
}
},
{
type: "text",
text: "这段视频的内容是什么?"
}
]
}
]
});
console.log(response.choices[0].message.content);
}
main();返回结果
====================思考过程====================
用户问了一个简单的数学问题:"1+1等于多少?"
这是一个非常基础的算术问题,答案是2。
我应该直接、清晰地回答这个问题。虽然用户用中文提问,但答案是一个通用的数学事实。
回答结构:
1. 直接给出答案:2
2. 可以简要说明这是基本的算术运算
不需要过度复杂化,保持简洁明了。
====================完整回复====================
1+1等于**2**。
这是最基本的算术运算,两个单位相加得到两个单位。HTTP
curl
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "kimi/kimi-k2.5",
"messages": [
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
},
"fps":2
},
{
"type": "text",
"text": "这段视频的内容是什么?"
}
]
}
]
}'文件限制
图像文件
图像分辨率:建议图片分辨率不超过4k (4096*2160)
支持的图像格式:PNG、JPEG、WEBP、GIF
图像大小与图片数量:无限制,但需确保请求的文本和图像的大小不超过 100M。
视频文件
视频大小与视频时长:无限制,但需确保请求的文本和视频的大小不超过 100M。
视频格式: MP4、MPEG、MOV、AVI、X-FLV、MPG、WEBM、WMV、3GPP。
视频尺寸:无特定限制,建议不超过2K,再高的分辨率只会增加处理时间,也不会对模型理解的效果有提升。
音频理解:不支持对视频文件的音频进行理解。
其它功能
模型 | ||||||
kimi/kimi-k2.5 |
在工具调用过程中,必须在将本轮会话中工具调用assistant message中的reasoning_content保留在上下文当中,否则会报错。
参数默认值
模型 | stream_options | temperature | top_p | repetition_penalty | presence_penalty | tool_choice | top_k |
kimi/kimi-k2.5 | 仅支持设置为 | 思考模式:1.0 | 思考模式/非思考模式:0.95 | 思考模式/非思考模式:0.0 | 思考模式/非思考模式:0.0 | 思考模式/非思考模式:auto | - |
stream_options仅支持设置为true,temperature、top_p、repetition_penalty、presence_penalty不支持设置为其他值;在思考模式下,不支持强制调用某个工具,
tool_choice仅支持设置为auto(默认值)和none。“-”表示没有默认值,也不支持设置。
计费说明
按照模型的输入与输出 Token 计费,价格详情请参考Kimi-月之暗面。
思考模式下,思维链按照输出 Token 计费。
错误码
如果执行报错,请参见错误信息进行解决。