Kimi K3 API 接続チュートリアル:1M コンテキスト・料金・Python(2026)

Moonshot の Kimi K3 API を実践的に導入。キー取得、curl と Python 例、1M コンテキストとネイティブ視覚、reasoning_effort、料金比較、K2 からの移行まで。

Kimi K3 は Moonshot AI(月之暗面)の最新フラッグシップモデルです。コンテキストを一気に 100 万トークンまで拡張し、ネイティブ視覚と常時オンの推論を内蔵。「長距離コーディング + ナレッジワーク + 複雑な推論」を真正面から狙っています。本記事は「キーを取得 → 最初のリクエスト → 1M コンテキストを活かす → 料金を把握 → K2 から移行」の順で、Kimi K3 を実際に動かすところまで導きます。急ぐ方は、GetModel で紹介コードを使って無料枠を受け取れば、1 つのキーで Kimi・GPT・Claude をまとめて呼べます。

Kimi K3 の能力概要

Kimi K3 は Mixture-of-Experts(MoE)アーキテクチャを採用し、総パラメータは約 2.8T、896 個のエキスパートから毎回 16 個を活性化します。新しい KDA(Kimi Delta Attention)+ Attention Residuals のアテンション設計と組み合わせ、Moonshot は学習/推論全体のスケーリング効率が K2 比で約 2.5 倍向上したとしています。実際の能力面では、まず押さえておきたいポイントがいくつかあります。

  • 1M コンテキストウィンドウ —— 正確には 1,048,576 トークン。中規模のコードベース 1 つ、マニュアル 1 冊、あるいは長文ドキュメント数十本を一度に読み込めます。K2(256K)からの最も分かりやすいアップグレードです。
  • ネイティブ視覚 —— 画像と動画の入力を直接サポート。フロントエンド / ゲーム / CAD のような「図を見てコードを書く」タスクでは一等市民で、外付けの OCR は不要です。
  • 常時オン推論 —— K3 はデフォルトで深い思考が有効で、reasoning_effort で強度を制御します。現時点では max 段階のみ(デフォルト)対応し、その他の段階は後日提供されます。
  • OpenAI 互換インターフェース —— Chat Completions 形式なので、既存の openai SDK コードは通常 base_urlmodel を変えるだけで切り替えられます。

現行の主力モデル ID は kimi-k3 です。接続前にコンソールで利用可能なモデル一覧を確認しておくとよいでしょう。Moonshot はイテレーションが速いためです。

接続手順 + コード

以下に 2 つの経路を示します。公式直結は Kimi のみを使う場合に、アグリゲータ中継は GPT・Claude・Gemini も同時に使い、多数のキーと請求を管理したくない場合に向きます。

方法一:公式直結(Moonshot プラットフォーム)

  1. Moonshot オープンプラットフォーム で登録・ログイン;
  2. 「APIキー管理」で 1 つキーを作成;
  3. エンドポイントを控える:国内 https://api.moonshot.cn/v1、海外 https://api.moonshot.ai/v1

curl の例:

curl https://api.moonshot.cn/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $MOONSHOT_API_KEY" \
  -d '{
    "model": "kimi-k3",
    "messages": [{"role": "user", "content": "Kimi K3 を一文で紹介して"}]
  }'

Python(openai SDK をそのまま使い、base_urlmodel だけ変更):

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MOONSHOT_API_KEY"],
    base_url="https://api.moonshot.cn/v1",
)

resp = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Kimi K3 を一文で紹介して"}],
)
print(resp.choices[0].message.content)

ストリーミング出力は stream=True を追加するだけで、SSE 形式は OpenAI 公式と同一です。ツール呼び出し(function calling)も OpenAI の tools フィールドで書きます。

方法二:アグリゲータ中継(1 つのキーで Kimi / GPT / Claude を呼ぶ)

プロジェクトで Kimi 以外も使うなら、GetModel のようなアグリゲータゲートウェイが格段に楽です。1 つのキー、1 つの OpenAI 互換エンドポイントで、モデルの切り替えは model フィールドを変えるだけ。残高は全モデルで共有され、請求も 1 本にまとまります。

  1. GetModel コンソール にログインし、「API トークン」ページで sk- で始まるキーを 1 つ作成;
  2. base_url を https://getmodel.ai/v1 に変更;
  3. modelkimi-k3 を指定。
from openai import OpenAI

client = OpenAI(
    api_key="sk-あなたのGetModelキー",
    base_url="https://getmodel.ai/v1",
)

# Kimi K3 を呼ぶ
resp = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "こんにちは、Kimi K3"}],
)
print(resp.choices[0].message.content)

# 同じコードで model を gpt-5.2 や claude-opus-4-8 に変えれば、別ベンダーのモデルに切り替わる

ゲートウェイ側は多チャネルのフェイルオーバーを内蔵し、あるアップストリームが不安定になると自動で切り替わるため、本番環境でより安定します。

1M コンテキストとネイティブ視覚を活かす

長いコンテキストは K3 の核となる強みです。リポジトリ全体、契約書 1 通、あるいは PDF 数十ページを一度に messages へ詰め込み、完全な文脈の中でモデルに答えさせる方が、自分で分割して RAG を組むより手間が少なく、情報の欠落も減ることがよくあります。ただしコンテキストが長いほど 1 回のリクエストのトークン消費とレイテンシは増えるため、固定の前置き(長い system prompt、参照ドキュメント)は必ずキャッシュで再利用してください。詳しくは下の料金セクションを参照。

視覚入力では 2 点に注意が必要です。1 つ目、画像 / 動画コンテンツは contentオブジェクト配列に入れること。1 つのシリアライズ文字列に連結してはいけません。2 つ目、K3 の視覚入力は公開画像 URL に対応していません。ローカル画像は base64、動画は files API でアップロードしてから ms://<file-id> で参照します。

resp = client.chat.completions.create(
    model="kimi-k3",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "このデザイン稿どおりに対応する HTML/CSS を書いて"},
            {"type": "image_url", "image_url": {"url": "data:image/png;base64,iVBORw0KGgo..."}},
        ],
    }],
)

料金比較:公式直結 vs アグリゲータ中継

Kimi K3 はトークン課金で、コンテキストキャッシュがデフォルトで有効です。繰り返しの前置きがキャッシュにヒットすると、入力価格は一気に 1 割まで下がります。以下は公式の参考価格(100 万トークンあたり、人民元、コンソールの実時間価格が優先):

課金項目価格 / 1M トークン
入力(キャッシュミス)¥20
入力(キャッシュヒット)¥2
出力¥100

いくつか注意点:

  • キャッシュヒットで入力価格は ¥2/M まで圧縮されるため、長い system prompt や固定ドキュメントを繰り返し呼ぶ場面では、実際のコストが見た目より 1 桁低くなることもあり、長距離エージェントほど恩恵が大きいです;
  • K3 はフラッグシップ定位で、出力価格は K2 より明確に高いです。純粋な量産で、能力を極限まで求めないタスクなら、K2 系列の方が依然として割安です(Kimi K3 vs K2 比較 を参照);
  • 公式および各中継 / アグリゲータチャネルの価格は変動するため、発注前に必ず実時間価格を確認してください。GetModel 上の Kimi と他モデルの実時間単価は価格ページを参照。

無料枠:Moonshot が新規ユーザーに配布する ¥15 の体験金は現在 K3 には利用できません。公式の K3 は有料での利用が必要です。ゼロコストで K3 の能力を試したいなら、GetModel の紹介コードから登録して無料枠を受け取れます。この枠は全モデル共通で、K3・GPT・Claude を横並びで比較してから主力を決められます。

K2 からの移行の注意点

K2 / K2.x から K3 へ切り替える場合、避けるべき落とし穴が 3 つあります。

  • thinking パラメータはもう使わない。K3 は reasoning_effort で思考の強度を制御し(現状は max のみ)、K2.x の thinking フィールドは K3 では通用しません。
  • マルチターン対話とツール呼び出しでは、API が返した完全な assistant message をそのまま次のターンに追加します。content だけを残してはいけません。さもないと推論 / ツールの状態が失われます。
  • コンテキスト予算は 4 倍になりました(256K → 1M)。ただし何も考えず埋め尽くさないこと。長いほど高く遅くなるため、必要な削減とキャッシュ再利用はやはり行うべきです。

よくあるエラーとトラブルシューティング

  • 401 / 認証失敗:キーのスペルミス、Bearer プレフィックスの欠落、または別環境のキーの使用。Authorization ヘッダと base_url が対応しているか確認します。
  • 429 / レート制限:RPM/TPM または同時実行の上限超過。指数バックオフのリトライを追加し、並列度を下げるか、アカウント等級を上げます;GetModel 経由なら多チャネルのフェイルオーバーが自動で分散します。
  • 視覚リクエストのエラー:多くは公開画像 URL を渡したか、画像とテキストの content を文字列に連結したケースです。base64 / ms:// 参照に変え、オブジェクト配列を使います。
  • コンテキスト超過:入力が 1M トークンを超えるとエラーになります。入力を削減し、分割処理するか、固定前置きにキャッシュ再利用を有効化します。

よくある質問(FAQ)

  • Kimi K3 のコンテキストはどれくらい? 1,048,576 トークン(約 1M)で、K2 の 4 倍。リポジトリ全体のコード、長文ドキュメント、長距離エージェントに適します。
  • K3 に無料枠はある? 公式の ¥15 体験金は現在 K3 に使えません;GetModel から登録すればモデル横断で使える枠を受け取れ、試してから使うのに向きます。
  • 視覚・ツール呼び出し・ストリーミングに対応? すべて対応します。視覚はオブジェクト配列 + base64/ms://;ツール呼び出しは OpenAI の tools フィールド;ストリーミングは stream=True を追加。
  • 既存の OpenAI コードをそのまま使える? 使えます。K3 は OpenAI Chat Completions インターフェースに互換で、通常は base_urlmodel を変えるだけ;ただし K2 から移行する場合は thinkingreasoning_effort に置き換えるのを忘れずに。
  • K3 と K2 はどう選ぶ? 1M コンテキスト・ネイティブ視覚・最強のコード / 推論が欲しいなら K3;純粋な量産でコスト重視なら K2 系列。

同じコード内で Kimi・GPT・Claude・Gemini を同時に使い、キーと請求を 1 つずつだけ管理したいなら、GetModel コンソールから始めて、付与された枠でまず Kimi K3 を動かしてみてください。