すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:Kimi

最終更新日:Nov 14, 2025

この Topic では、OpenAI 互換の API または DashScope SDK を使用して、Alibaba Cloud Model Studio 上で Kimi モデルを呼び出す方法について説明します。

重要

この Topic で説明するモデルは、中国 (北京) リージョンでのみ利用可能です。これらのモデルを使用するには、中国 (北京) リージョンのAPI キーが必要です。

概要

Kimi は、Moonshot AI が提供する一連の大規模言語モデル (LLM) です。

  • kimi-k2-thinking: このモデルは思考モードのみをサポートし、reasoning_content フィールドを通じて思考プロセスを表示します。優れたコーディング能力とツール呼び出し能力を備えています。このモデルは、論理的な分析、計画、または深い理解を必要とするシナリオに適しています。

  • Moonshot-Kimi-K2-Instruct: このモデルは深い思考をサポートせず、直接応答を生成します。応答速度が速く、迅速かつ直接的な回答を必要とするシナリオに適しています。

モデル

コンテキストウィンドウ

最大入力

最大思考連鎖

最大応答

入力価格

出力価格

(トークン)

(100 万トークン)

kimi-k2-thinking

262,144

229,376

32,768

16,384

$0.574

$2.294

Moonshot-Kimi-K2-Instruct

131,072

131,072

-

8,192

$0.574

$2.294

開始

API を呼び出す前に、API キーを作成し、API キーを環境変数としてエクスポートします。SDK を使用してモデルを呼び出す場合は、OpenAI または DashScope SDK をインストールします。

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-k2-thinking",
    messages=[{"role": "user", "content": "Who are you?"}],
    stream=True,
)

reasoning_content = ""  # 完全な思考プロセス
answer_content = ""     # 完全な応答
is_answering = False    # 応答フェーズが開始されたかどうか

print("\n" + "=" * 20 + "Thinking process" + "=" * 20 + "\n")

for chunk in completion:
    if chunk.choices:
        delta = chunk.choices[0].delta
        # 思考コンテンツのみを収集
        if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
            if not is_answering:
                print(delta.reasoning_content, end="", flush=True)
            reasoning_content += delta.reasoning_content
        # コンテンツを受信し、応答を開始
        if hasattr(delta, "content") and delta.content:
            if not is_answering:
                print("\n" + "=" * 20 + "Complete response" + "=" * 20 + "\n")
                is_answering = True
            print(delta.content, end="", flush=True)
            answer_content += delta.content

サンプル応答

====================思考プロセス====================

ユーザーは「あなたは誰ですか?」と尋ねています。これは私の ID に関する直接的な質問です。私は実際の ID に基づいて正直に答える必要があります。

私は Moonshot AI によって開発された人工知能アシスタントで、名前は Kimi です。私は、以下を含む自己紹介を明確かつ簡潔に行うべきです:
1. 私の ID: AI アシスタント
2. 私の開発者: Moonshot AI
3. 私の名前: Kimi
4. 私のコア機能: 長文処理、インテリジェントな会話、ファイル処理、検索など。

一般ユーザーが理解できるように、過度に専門的な用語を避け、フレンドリでプロフェッショナルなトーンを維持する必要があります。同時に、私は個人の意識、感情、または個人的な経験を持たない AI であることを強調すべきです。

応答構造:
- 私の ID を直接述べる
- 開発者に言及する
- コア機能を簡単に紹介する
- シンプルで明確に保つ
====================完全な応答====================

私は Moonshot AI によって開発された AI アシスタントの Kimi です。私は Mixture-of-Experts (MoE) アーキテクチャに基づいており、超長文コンテキスト理解、インテリジェントな会話、ファイル処理、コード生成、複雑なタスクの推論などの機能を備えています。何かお手伝いできることはありますか?

Node.js

サンプルコード

import OpenAI from "openai";
import process from 'process';

// OpenAI クライアントを初期化
const openai = new OpenAI({
    // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: apiKey: "sk-xxx"
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1'
});

let reasoningContent = ''; // 完全な思考プロセス
let answerContent = ''; // 完全な応答
let isAnswering = false; // 応答フェーズが開始されたかどうか

async function main() {
    const messages = [{ role: 'user', content: 'Who are you?' }];

    const stream = await openai.chat.completions.create({
        model: 'kimi-k2-thinking',
        messages,
        stream: true,
    });

    console.log('\n' + '='.repeat(20) + 'Thinking process' + '='.repeat(20) + '\n');

    for await (const chunk of stream) {
        if (chunk.choices?.length) {
            const delta = chunk.choices[0].delta;
            // 思考コンテンツのみを収集
            if (delta.reasoning_content !== undefined && delta.reasoning_content !== null) {
                if (!isAnswering) {
                    process.stdout.write(delta.reasoning_content);
                }
                reasoningContent += delta.reasoning_content;
            }

            // コンテンツを受信し、応答を開始
            if (delta.content !== undefined && delta.content) {
                if (!isAnswering) {
                    console.log('\n' + '='.repeat(20) + 'Complete response' + '='.repeat(20) + '\n');
                    isAnswering = true;
                }
                process.stdout.write(delta.content);
                answerContent += delta.content;
            }
        }
    }
}

main();

結果

====================思考プロセス====================

ユーザーは「あなたは誰ですか?」と尋ねています。これは私の ID に関する直接的な質問です。私は実際の ID に基づいて正直に答える必要があります。

私は Moonshot AI によって開発された人工知能アシスタントで、名前は Kimi です。私は、以下を含む自己紹介を明確かつ簡潔に行うべきです:
1. 私の ID: AI アシスタント
2. 私の開発者: Moonshot AI
3. 私の名前: Kimi
4. 私のコア機能: 長文処理、インテリジェントな会話、ファイル処理、検索など。

一般ユーザーが簡単に理解できるように、過度に専門的な用語を避け、フレンドリでプロフェッショナルなトーンを維持する必要があります。同時に、誤解を避けるために、私は個人の意識、感情、または個人的な経験を持たない AI であることを強調すべきです。

応答構造:
- 私の ID を直接述べる
- 開発者に言及する
- コア機能を簡単に紹介する
- シンプルで明確に保つ
====================完全な応答====================

私は Moonshot AI によって開発された人工知能アシスタントの Kimi です。

得意なこと:
- 長文の理解と生成
- インテリジェントな会話と Q&A
- ファイルの処理と分析
- 情報の取得と統合

AI アシスタントとして、私は個人の意識、感情、または経験を持っていませんが、正確で役立つヘルプを提供するために最善を尽くします。何かお手伝いできることはありますか?

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-k2-thinking",
    "messages": [
        {
            "role": "user", 
            "content": "Who are you?"
        }
    ]
}'

サンプル応答

{
    "choices": [
        {
            "message": {
                "content": "私は Moonshot AI によって開発された人工知能アシスタントの Kimi です。長文の処理、インテリジェントな会話、ファイル分析、プログラミング支援、複雑なタスクの推論が得意です。質問に答えたり、コンテンツを作成したり、ドキュメントを分析したりするお手伝いができます。何かお手伝いできることはありますか?",
                "reasoning_content": "ユーザーは「あなたは誰ですか?」と尋ねています。これは私の ID に関する直接的な質問です。私は実際の ID に基づいて正直に答える必要があります。\n\n私は Moonshot AI によって開発された人工知能アシスタントで、名前は Kimi です。私は、以下を含む自己紹介を明確かつ簡潔に行うべきです:\n1. 私の ID: AI アシスタント\n2. 私の開発者: Moonshot AI\n3. 私の名前: Kimi\n4. 私のコア機能: 長文処理、インテリジェントな会話、ファイル処理、検索など。\n\n役立つ情報を提供しながら、フレンドリでプロフェッショナルなトーンを維持する必要があります。複雑にしすぎず、直接答えるだけで十分です。",
                "role": "assistant"
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 8,
        "completion_tokens": 183,
        "total_tokens": 191
    },
    "created": 1762753998,
    "system_fingerprint": null,
    "model": "kimi-k2-thinking",
    "id": "chatcmpl-485ab490-90ec-48c3-85fa-1c732b683db2"
}

DashScope

Python

サンプルコード

import os
from dashscope import Generation

# リクエストパラメーターを初期化
messages = [{"role": "user", "content": "Who are you?"}]

completion = Generation.call(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="kimi-k2-thinking",
    messages=messages,
    result_format="message",  # 結果のフォーマットを message に設定
    stream=True,              # ストリーミング出力を有効化
    incremental_output=True,  # 増分出力を有効化
)

reasoning_content = ""  # 完全な思考プロセス
answer_content = ""     # 完全な応答
is_answering = False    # 応答フェーズが開始されたかどうか

print("\n" + "=" * 20 + "Thinking process" + "=" * 20 + "\n")

for chunk in completion:
    message = chunk.output.choices[0].message
    
    # 思考コンテンツのみを収集
    if message.reasoning_content:
        if not is_answering:
            print(message.reasoning_content, end="", flush=True)
        reasoning_content += message.reasoning_content

    # コンテンツを受信し、応答を開始
    if message.content:
        if not is_answering:
            print("\n" + "=" * 20 + "Complete response" + "=" * 20 + "\n")
            is_answering = True
        print(message.content, end="", flush=True)
        answer_content += message.content

# ループの後、reasoning_content と answer_content 変数には完全なコンテンツが含まれます
# 必要に応じて、ここで後続の処理を実行できます
# print(f"\n\nComplete thinking process:\n{reasoning_content}")
# print(f"\nComplete response:\n{answer_content}")

サンプル応答

====================思考プロセス====================

ユーザーは「あなたは誰ですか?」と尋ねています。これは私の ID に関する直接的な質問です。私は実際の ID に基づいて正直に答える必要があります。

私は Moonshot AI によって開発された人工知能アシスタントで、名前は Kimi です。私はこれを明確かつ簡潔に述べるべきです。

含めるべき主な情報は次のとおりです:
1. 私の名前: Kimi
2. 私の開発者: Moonshot AI
3. 私の性質: 人工知能アシスタント
4. 私ができること: 質問に答える、作成を支援するなど。

私は自分の ID を正確に述べながら、フレンドリで親切なトーンを維持する必要があります。人間であるふりをしたり、個人的な ID を持っているふりをしたりすべきではありません。

適切な応答は次のようになります:
「私は Moonshot AI によって開発された人工知能アシスタントの Kimi です。質問に答えたり、コンテンツを作成したり、ドキュメントを分析したりするなど、さまざまなタスクでお手伝いできます。何かお手伝いできることはありますか?」

この応答は直接的で正確であり、さらなる対話を促します。
====================完全な応答====================

私は Moonshot AI によって開発された人工知能アシスタントの Kimi です。質問に答えたり、コンテンツを作成したり、ドキュメントを分析したりするなど、さまざまなタスクでお手伝いできます。何かお手伝いできることはありますか?

Java

サンプルコード

// DashScope SDK バージョン >= 2.19.4
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;
import java.lang.System;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Main {
    private static final Logger logger = LoggerFactory.getLogger(Main.class);
    private static StringBuilder reasoningContent = new StringBuilder();
    private static StringBuilder finalContent = new StringBuilder();
    private static boolean isFirstPrint = true;

    private static void handleGenerationResult(GenerationResult message) {
        String reasoning = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
        String content = message.getOutput().getChoices().get(0).getMessage().getContent();

        if (reasoning!= null&&!reasoning.isEmpty()) {
            reasoningContent.append(reasoning);
            if (isFirstPrint) {
                System.out.println("====================Thinking process====================");
                isFirstPrint = false;
            }
            System.out.print(reasoning);
        }

        if (content!= null&&!content.isEmpty()) {
            finalContent.append(content);
            if (!isFirstPrint) {
                System.out.println("\n====================Complete response====================");
                isFirstPrint = true;
            }
            System.out.print(content);
        }
    }
    private static GenerationParam buildGenerationParam(Message userMsg) {
        return GenerationParam.builder()
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("kimi-k2-thinking")
                .incrementalOutput(true)
                .resultFormat("message")
                .messages(Arrays.asList(userMsg))
                .build();
    }
    public static void streamCallWithMessage(Generation gen, Message userMsg)
            throws NoApiKeyException, ApiException, InputRequiredException {
        GenerationParam param = buildGenerationParam(userMsg);
        Flowable<GenerationResult> result = gen.streamCall(param);
        result.blockingForEach(message -> handleGenerationResult(message));
    }

    public static void main(String[] args) {
        try {
            Generation gen = new Generation();
            Message userMsg = Message.builder().role(Role.USER.getValue()).content("Who are you?").build();
            streamCallWithMessage(gen, userMsg);
            // 最終結果を出力
            // if (reasoningContent.length() > 0) {
            //     System.out.println("\n====================Complete response====================");
            //     System.out.println(finalContent.toString());
            // }
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            logger.error("An exception occurred: {}", e.getMessage());
        }
        System.exit(0);
    }
}

サンプル応答

====================思考プロセス====================
ユーザーは「あなたは誰ですか?」と尋ねています。これは私の ID に関する直接的な質問です。私は実際の ID に基づいて正直に答える必要があります。

私は Moonshot AI によって開発された人工知能アシスタントで、名前は Kimi です。私はこれを明確かつ簡潔に述べるべきです。

応答には以下を含める必要があります:
1. 私の ID: AI アシスタント
2. 私の開発者: Moonshot AI
3. 私の名前: Kimi
4. 私のコア機能: 長文処理、インテリジェントな会話、ファイル処理など。

人間であるふりをしたり、専門的な詳細を過度に提供したりすべきではありません。明確でフレンドリな回答をするだけで十分です。
====================完全な応答====================
私は Moonshot AI によって開発された人工知能アシスタントの Kimi です。長文の処理、インテリジェントな会話、質問への回答、作成の支援、ファイルの分析と処理のお手伝いが得意です。何かお手伝いできることはありますか?

HTTP

サンプルコード

curl

curl -X POST "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "kimi-k2-thinking",
    "input":{
        "messages":[      
            {
                "role": "user",
                "content": "Who are you?"
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

サンプル応答

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "content": "私は Moonshot AI によって開発された人工知能アシスタントの Kimi です。質問に答えたり、コンテンツを作成したり、ドキュメントを分析したり、コードを書いたりするお手伝いができます。何かお手伝いできることはありますか?",
                    "reasoning_content": "ユーザーは「あなたは誰ですか?」と尋ねています。これは私の ID に関する直接的な質問です。私は実際の ID に基づいて正直に答える必要があります。\n\n私は Moonshot AI によって開発された人工知能アシスタントで、名前は Kimi です。私はこれを明確かつ簡潔に述べるべきです。\n\n含めるべき主な情報は次のとおりです:\n1. 私の名前: Kimi\n2. 私の開発者: Moonshot AI\n3. 私の性質: 人工知能アシスタント\n4. 私ができること: 質問に答える、作成を支援するなど。\n\nユーザーが理解しやすいように、フレンドリで直接的な方法で応答する必要があります。",
                    "role": "assistant"
                }
            }
        ]
    },
    "usage": {
        "input_tokens": 9,
        "output_tokens": 156,
        "total_tokens": 165
    },
    "request_id": "709a0697-ed1f-4298-82c9-a4b878da1849"
}

モデルの特徴

モデル

マルチターン会話

深い思考

関数呼び出し

構造化出力

Web 検索

部分モード

コンテキストキャッシュ

kimi-k2-thinking

サポート

サポート

サポート

サポート

非サポート

非サポート

非サポート

Moonshot-Kimi-K2-Instruct

サポート

非サポート

サポート

非サポート

サポート

非サポート

非サポート

デフォルトのパラメーター値

モデル

temperature

top_p

presence_penalty

kimi-k2-thinking

1.0

-

-

Moonshot-Kimi-K2-Instruct

0.6

1.0

0

ハイフン (-) は、パラメーターが設定不可であり、デフォルト値がないことを示します。

エラーコード

モデルの呼び出しが失敗し、エラーメッセージが返された場合は、詳細については、「エラーメッセージ」をご参照ください。