Novita AI で Kimi K2.7 Code API クイックスタート

Novita AI で Kimi K2.7 Code API クイックスタート

Kimi K2.7 Code は、モデル ID moonshotai/kimi-k2.7-code、OpenAI 互換の chat/completions エンドポイント、262,144 トークンのコンテキストウィンドウ、そしてテキスト、画像、動画入力をサポートして Novita AI で利用可能です。このクイックスタートでは、開発者向けの設定、認証、最初のリクエスト送信、画像入力の使用、関数呼び出しの追加、そして構築前の料金体系の理解について説明します。ポジショニングとユースケースの概要については、Novita AI 上の Kimi K2.7 Code 概要 を参照してください。Kimi K2.7 Code を Anthropic 互換エンドポイント経由で Claude Code に組み込む方法については、Claude Code で Kimi K2.7 Code を使用する方法 を参照してください。

Kimi K2.7 Code API のセットアップ

まず 3 つの設定項目を準備します。

項目
API キー Novita AI の API キーを作成し、NOVITA_API_KEY などの環境変数に保存します。
OpenAI 互換ベース URL https://api.novita.ai/openai
チャット補完エンドポイント POST https://api.novita.ai/openai/v1/chat/completions
モデル ID moonshotai/kimi-k2.7-code

Novita AI ドキュメントインデックス に OpenAI 互換ベース URL が記載されており、チャット補完 API リファレンス に完全なリクエストとレスポンスのフィールドが文書化されています。

API キーはソース管理の対象外とし、ローカル開発のためシェルでエクスポートします。

export NOVITA_API_KEY="your_api_key"

アプリケーションですでに OpenAI SDK を使用している場合、変更は最小限です。ベース URL を Novita AI に向け、モデルを moonshotai/kimi-k2.7-code に設定するだけです。

Kimi K2.7 Code の料金と制限

コード内では正確なモデル ID を使用してください。ユーザー向け UI では、表示名「Kimi K2.7 Code」を使用します。

フィールド 現在の Novita の値
表示名 Kimi K2.7 Code
API モデル ID moonshotai/kimi-k2.7-code
モデルシリーズ MoonshotAI
アーキテクチャ MoE、総パラメータ 1T、アクティブパラメータ 32B
エンドポイントファミリー chat/completionsanthropic
入力モダリティ テキスト、画像、動画
出力モダリティ テキスト
コンテキストウィンドウ 262,144 トークン
最大出力トークン 262,144 トークン
機能 関数呼び出し、構造化出力、推論

2026 年 6 月 16 日時点で、Novita は moonshotai/kimi-k2.7-code に対して以下のトークン料金を掲載しています。

トークンタイプ 掲載価格
入力トークン 1M トークンあたり $0.95
出力トークン 1M トークンあたり $4.00
キャッシュ読み取り入力トークン 1M トークンあたり $0.19

料金、可用性、レート制限は変更される可能性があります。本番投入やコストコミットの前に、Kimi K2.7 Code モデルページNovita AI 料金ページ を確認してください。

Kimi K2.7 Code cURL の例

画像やツール呼び出しを追加する前に、テキストのみのリクエストで認証、モデルルーティング、レスポンス解析を確認します。

curl "https://api.novita.ai/openai/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${NOVITA_API_KEY}" \
  -d '{
    "model": "moonshotai/kimi-k2.7-code",
    "messages": [
      {
        "role": "system",
        "content": "あなたは簡潔なコードレビューアシスタントです。"
      },
      {
        "role": "user",
        "content": "Python でリトライロジックを実装する際のよくある間違いを 3 つ挙げてください。"
      }
    ],
    "max_tokens": 512,
    "temperature": 0.2
  }'

成功したレスポンスは標準的なチャット補完形式を返します。choices 配列、content を含むメッセージ、モデル/作成日時のメタデータ、プロンプト、補完、合計トークン数を含む usage オブジェクトです。

このスモークテストで以下を確認します。

  • API キーが有効で、認証ヘッダーの形式が正しいこと。
  • モデル ID が受け入れられ、404 やモデル未検出エラーが発生しないこと。
  • クライアントが choices[0].message.content を解析できること。
  • トークン使用量が記録され、最初のリクエストからコストを監視できること。

Kimi K2.7 Code Python の例

OpenAI Python SDK は、Novita ベース URL を設定することで Novita AI で動作します。SDK のバージョンは、ご自身の依存関係ポリシーに従って固定してください。

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.novita.ai/openai",
    api_key=os.environ["NOVITA_API_KEY"],
)

response = client.chat.completions.create(
    model="moonshotai/kimi-k2.7-code",
    messages=[
        {"role": "system", "content": "あなたは簡潔なコードレビューアシスタントです。"},
        {
            "role": "user",
            "content": "次の Python 関数の off-by-one エラーと不足しているエッジケースをレビューしてください:\n\ndef get_items(lst, start, end):\n    return lst[start:end]",
        },
    ],
    max_tokens=512,
    temperature=0.2,
)

print(response.choices[0].message.content)
print("使用トークン数:", response.usage.total_tokens)

長いコーディングエージェントセッションの場合は、max_tokens を明示的に設定します。Kimi K2.7 Code は最大 262,144 出力トークンまでサポートしますが、本番エージェントはターンごとのトークン使用量を予算化し、複数ステップの実行における累積コストを監視する必要があります。

画像入力と動画入力

Novita は Kimi K2.7 Code の入力モダリティとしてテキスト、画像、動画を挙げています。画像入力の場合は、ユーザーメッセージ内で text 部分と image_url 部分を持つ content 配列を渡します。

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.novita.ai/openai",
    api_key=os.environ["NOVITA_API_KEY"],
)

response = client.chat.completions.create(
    model="moonshotai/kimi-k2.7-code",
    messages=[
        {"role": "system", "content": "あなたは UI コードレビューアシスタントです。"},
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "この UI スクリーンショットに見えるアクセシビリティの問題をすべて説明し、CSS による修正案を提案してください。",
                },
                {
                    "type": "image_url",
                    "image_url": {"url": "https://example.com/screenshot.png"},
                },
            ],
        },
    ],
    max_tokens=512,
)

print(response.choices[0].message.content)

マルチモーダル統合における実践的な手順は次のとおりです。

  1. まずテキストのみのスモークテストが動作することを確認します。
  2. UI スクリーンショットからラベルを抽出するなど、明確に検証可能なタスクで 1 つの画像入力を追加します。
  3. 実際のワークロードに対するレスポンス品質とレスポンス形式の両方を検証します。
  4. 動画入力は別途テストします — 短いクリップから始め、リクエスト形式を確認し、レイテンシとトークンコストを測定してから、動画を本番パスに追加します。

すべての OpenAI 互換マルチモーダルペイロードが Novita がホストするすべてのモデルで同一に受け入れられるとは限りません。出荷前に、現在の Novita AI ドキュメント または moonshotai/kimi-k2.7-code のコンソール例で、正確な画像および動画ペイロード形式を確認してください。

関数呼び出しと構造化出力

Kimi K2.7 Code は、tools パラメータを使用した関数呼び出しと、response_format を使用した構造化出力をサポートしています。どちらも Novita AI モデルページで機能として記載されています。

モデルがツールを選択し、散文で答える代わりに構造化された引数を返す必要がある場合は、関数呼び出しを使用します。

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.novita.ai/openai",
    api_key=os.environ["NOVITA_API_KEY"],
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "file_search",
            "description": "リポジトリ内でパターンに一致するファイルを検索します。",
            "parameters": {
                "type": "object",
                "properties": {
                    "pattern": {
                        "type": "string",
                        "description": "一致させるグロブパターン (例: '**/*.py')",
                    },
                    "directory": {
                        "type": "string",
                        "description": "検索するルートディレクトリ。",
                    },
                },
                "required": ["pattern"],
            },
        },
    }
]

response = client.chat.completions.create(
    model="moonshotai/kimi-k2.7-code",
    messages=[
        {"role": "system", "content": "あなたはリポジトリ分析アシスタントです。"},
        {
            "role": "user",
            "content": "src ディレクトリ内で、データベースマイグレーションロジックを含む可能性がある Python ファイルをすべて見つけてください。",
        },
    ],
    tools=tools,
    tool_choice="auto",
    temperature=0.1,
)

message = response.choices[0].message
if message.tool_calls:
    for call in message.tool_calls:
        print(f"ツール: {call.function.name}")
        print(f"引数: {call.function.arguments}")
else:
    print(message.content)

構造化出力の場合は、ツール呼び出しなしで検証済みの JSON レスポンスが必要なときに、json_schema を指定して response_format を使用します。初期のスキーマは小さく保ち、本番で strict モードに依存する前に、moonshotai/kimi-k2.7-code が返す正確なレスポンス形式に対してパーサーをテストしてください。

Kimi K2.7 Code のインターリーブ思考アーキテクチャは、結果を返す前に複数ステップのタスクを推論することを意味します。ターンごとに複数のツール呼び出しを行うエージェント的なコーディングワークフローの場合は、実タスクセットでのツール選択、引数の品質、レスポンスレイテンシの動作をテストしてから、本番トラフィックをルーティングしてください。

本番テストチェックリスト

Kimi K2.7 Code の料金は、入力、出力、キャッシュ読み取りトークンで別々に設定されています。コストプロファイルはワークロードによって大きく異なります。

  • 長文脈コードレビュー: 大量の入力トークンがコストを支配します。
  • コード生成エージェント: 出力トークンの使用量は、レスポンス長とターン数に応じてスケールします。
  • 反復コンテキストワークフロー: 安定したシステムプロンプト、ツールスキーマ、リポジトリサマリーが多数の呼び出しで繰り返される場合、キャッシュ読み取り価格が適用されます。

本番前には、以下を含む評価セットを実行してください。

  • 短いテキストのみのプロンプト (レイテンシベースラインと認証確認)。
  • 予想される実際の作業サイズに近い長文脈プロンプト (最大ウィンドウではありません)。
  • 正しい動作が有効な引数で関数を呼び出すことであるツール呼び出しプロンプト。
  • 実際のアップロードソースとファイル処理に一致する画像入力。
  • 失敗ケース: 過大な入力、メディア URL の欠落、無効な API キー、タイムアウト動作。

機能リストは何が利用可能かを示します。実際のワークロードでの評価が、レイテンシ、トークン使用量、ツール引数の品質、出力の正確性が本番基準を満たしているかどうかを教えてくれます。

よくある質問

Kimi K2.7 Code は Novita AI を通じて利用できますか?

はい。Novita AI は Kimi K2.7 Code を Serverless LLM として、API モデル ID moonshotai/kimi-k2.7-code で提供しています。

正しいモデル ID は何ですか?

すべての API 呼び出しで moonshotai/kimi-k2.7-code を使用してください。

どのエンドポイントを使用すればよいですか?

OpenAI 互換のチャット補完エンドポイント POST https://api.novita.ai/openai/v1/chat/completions を使用してください。OpenAI SDK クライアントを使用する場合は、ベース URL を https://api.novita.ai/openai に設定します。

Kimi K2.7 Code の料金はいくらですか?

2026 年 6 月 16 日時点で、Novita AI は入力トークン 1M あたり $0.95、出力トークン 1M あたり $4.00、キャッシュ読み取り入力トークン 1M あたり $0.19 としています。調達に関する決定の前に、Kimi K2.7 Code モデルページ で現在の価格を確認してください。

画像や動画の入力をサポートしていますか?

Novita はテキスト、画像、動画を入力モダリティとして挙げています。正確なペイロード形式については、マルチモーダル機能を出荷する前に、現在の Novita ドキュメントまたはテスト呼び出しで確認してください。

Kimi K2.7 Code は関数呼び出しをサポートしていますか?

はい。チャット補完リクエストで tools パラメータを使用してください。Novita は関数呼び出しと構造化出力をサポート機能として挙げています。

コンテキストウィンドウはどのくらいですか?

Novita AI モデルページに記載されているとおり、コンテキストウィンドウは 262,144 トークン、最大出力も 262,144 トークンです。

おすすめ記事