0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kimi K3 APIリファレンス:OpenAI互換エンドポイントの使い方と実装パターン集

0
Posted at

2026年7月16日、Moonshot AIがKimi K3をリリースしました。2.8兆パラメータ、100万トークンのコンテキストウィンドウ、GDPval-AA v2で1,687点(Opus 4.8の1,600点を上回る)を達成したオープンソースモデルです。7月27日にウェイトが公開予定です。

この記事では、APIの基本的な使い方から実装パターンまでをまとめます。

基本セットアップ

Kimi K3のAPIはOpenAI互換です。既存のOpenAIライブラリがそのまま使えます。

from openai import OpenAI

client = OpenAI(
    api_key="your-kimi-api-key",
    base_url="https://api.kimi.ai/v1"
)

料金体系

種別 料金(MTokあたり)
キャッシュ済み入力 $0.30
未キャッシュ入力 $3.00
出力 $15.00

コーディングワークロードでは90%のキャッシュヒット率を達成するため、実効入力コストはブレンドで約$0.57/MTokになります。

パターン1:基本的なチャット補完

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "system", "content": "あなたは日本語で回答するコーディングアシスタントです。"},
        {"role": "user", "content": "Pythonでasyncioを使った並行処理のベストプラクティスを教えてください。"}
    ],
    temperature=0.7,
    max_tokens=2048
)

パターン2:ストリーミングレスポンス

リアルタイムアプリケーション向け:

stream = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "FastAPIでWebSocketを使ったリアルタイムチャットの実装を説明してください。"}],
    stream=True
)

for chunk in stream:
    content = chunk.choices[0].delta.content
    if content:
        print(content, end="", flush=True)

パターン3:大規模コードベース解析(100万トークンコンテキスト活用)

K3の最大の特徴は100万トークンのコンテキストウィンドウです。プロジェクト全体を投入して解析できます。

from pathlib import Path

def load_project(directory, exts=(".py", ".ts", ".go")):
    parts = []
    for p in sorted(Path(directory).rglob("*")):
        if p.suffix in exts and p.is_file():
            text = p.read_text(errors="ignore")
            parts.append(f"# {p.relative_to(directory)}\n```\n{text}\n```")
    return "\n\n".join(parts)

codebase = load_project("./my-project")

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "system", "content": "以下のコードベースのセキュリティ脆弱性を日本語で報告してください。"},
        {"role": "user", "content": codebase}
    ],
    max_tokens=4096
)

注意点: 100万トークンすべてを使う場合、レスポンスタイムが長くなります。ストリーミングを併用することを推奨します。

パターン4:画像入力(マルチモーダル)

K3はネイティブでビジョン機能を搭載しています。MathVisionで94.3点を達成しており、数式や図表の理解に優れています。

import base64

def encode_image(path):
    with open(path, "rb") as f:
        return base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "このER図からSQLのCREATE TABLE文を生成してください。"},
            {"type": "image_url", "image_url": {
                "url": f"data:image/png;base64,{encode_image('er_diagram.png')}"
            }}
        ]
    }],
    max_tokens=2048
)

パターン5:構造化出力(JSON Mode)

API回答をJSON形式で受け取る場合:

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "system", "content": "必ずJSON形式で回答してください。"},
        {"role": "user", "content": """
以下のコードのレビュー結果をJSON配列で返してください。
各要素は {line, severity, message} の形式で。

def calc(x):
    result = eval(x)
    return result
"""}
    ],
    response_format={"type": "json_object"},
    max_tokens=1024
)

パターン6:Function Calling(ツール使用)

K3はOpenAI互換のFunction Callingに対応しています:

tools = [{
    "type": "function",
    "function": {
        "name": "search_database",
        "description": "データベースから情報を検索する",
        "parameters": {
            "type": "object",
            "properties": {
                "query": {"type": "string", "description": "検索クエリ"},
                "limit": {"type": "integer", "description": "最大件数", "default": 10}
            },
            "required": ["query"]
        }
    }
}]

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "最新のユーザー登録を5件検索して"}],
    tools=tools,
    tool_choice="auto"
)

if response.choices[0].message.tool_calls:
    call = response.choices[0].message.tool_calls[0]
    print(f"関数: {call.function.name}")
    print(f"引数: {call.function.arguments}")

パフォーマンス最適化のコツ

キャッシュを最大限活用する

K3のキャッシュ済み入力は$0.30/MTok(未キャッシュの1/10)です。キャッシュヒット率を上げるために:

  1. systemプロンプトを固定する — 同じsystem内容であればキャッシュが効きます
  2. 会話履歴を維持する — 前のターンがキャッシュされるため、マルチターン会話では大幅にコスト削減
  3. バッチ処理よりも逐次処理 — 同一セッション内で連続リクエストすることでキャッシュヒット率が向上

temperatureの使い分け

ユースケース 推奨temperature
コード生成 0.0 - 0.3
技術文書作成 0.5 - 0.7
ブレインストーミング 0.8 - 1.0

ベンチマーク比較(コーディング系)

K3のコーディング性能は以下の通りです:

ベンチマーク Kimi K3 GPT-5.6 Sol Fable 5
Terminal-Bench 2.1 88.3 88.8 ~87
SWE Marathon 42.0 ~39 ~41
Program Bench 77.8 ~75 ~76

SWE MarathonとProgram Benchでは全モデル中トップです。長時間のコーディングタスクに特に強いのは、100万トークンコンテキストとKDA(Kimi Delta Attention)による安定した注意機構のおかげです。

まとめ

Kimi K3のAPIは、OpenAI互換という低い導入障壁と、100万トークンコンテキスト・ネイティブマルチモーダルという高い天井を両立しています。7月27日のウェイト公開後はセルフホストも可能になるため、まずはAPIで評価を始めることをお勧めします。

アーキテクチャの詳細(KDA、AttnRes、MoEフレームワーク)についてはHashnodeの技術解説が、ベンチマークの詳細な比較はVelogの分析記事が参考になります。

Kimi K3の全体像についてはこちらの包括的なリファレンスをご覧ください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?