Kimi K3 クイックスタート:長コンテキストAPIワークフロー向け

Kimi K3 クイックスタート:長コンテキストAPIワークフロー向け

Kimi K3 は、モデルID moonshotai/kimi-k3、OpenAI互換のチャットエンドポイント、1,048,576 トークンのコンテキストウィンドウ、およびモデルページに記載されている 1,048,576 トークンの最大出力設定により、Novita AI のサーバーレスAPIを通じて利用可能です。このクイックスタートでは、認証方法、最初のリクエストの送信方法、レスポンスの解析方法、そして大規模なアプリケーションに接続する前の Kimi K3 のトークン料金計画について説明します。

このクイックスタートを利用するタイミング

このガイドは、すでに OpenAI API 形式を扱うアプリケーションから Kimi K3 をテストしたい場合に使用します。これは、長いコンテキストを必要とするソフトウェアエンジニアリング、ドキュメント分析、研究、推論ワークフローにとって実用的な出発点であり、リクエストに典型的なチャットプロンプトよりもはるかに多くのコンテキストが含まれる可能性があります。

Kimi K3 の Novita モデルページには、2.8兆パラメータ、ネイティブのビジュアル理解機能、および1Mトークンのコンテキストウィンドウを備えたモデルとして説明されています。同じページには、テキスト、画像、動画の入力とテキスト出力、サーバーレスアクセス、構造化出力、推論、関数呼び出しがリストされています。これらは、すべての OpenAI SDK 機能がモデル間で同一の動作をすることを前提とするのではなく、意図したリクエスト形状に対して検証すべき機能として扱ってください。

これはベンチマーク比較ではありません。目標は、1つの認証されたリクエストを動作させ、Kimi K3 が自分のワークロードに適合するかどうかを判断するための十分な運用詳細を提供することです。

ステップ1:Novita API キーを取得する

Novita AI アカウントを作成または選択し、API キー設定を開き、サーバーサイドで使用するためのキーを作成します。キーは、フロントエンドバンドル、公開リポジトリ、チーム外で共有されるノートブック、および可能な限りシェル履歴から保護してください。

いずれかのサンプルを実行する前に、キーを環境変数として設定します:

export NOVITA_API_KEY="your_api_key_here"

アカウント設定でサポートされている場合は、プロジェクトキーまたは一時キーを使用してください。公開デモや露見が疑われる場合は、キーをローテーションしてください。

ステップ2:モデルIDとエンドポイントを確認する

接続の詳細をまとめて保管し、表示名が実際のモデル識別子を誤って置き換えないようにしてください:

フィールド
モデルID moonshotai/kimi-k3
ベースURL https://api.novita.ai/openai/v1
チャット完了エンドポイント https://api.novita.ai/openai/v1/chat/completions
コンテキストウィンドウ 1,048,576 トークン
最大出力設定 1,048,576 トークン
入力機能 テキスト、画像、動画
出力機能 テキスト
アクセス種類 サーバーレスAPI

Kimi K3 モデルページ が、可用性、現在の制限、機能、および料金に関する信頼できる情報源です。モデルの設定や価格は変更される可能性があるため、出荷前に再度確認してください。

ステップ3:最初のリクエストを送信する

短いテキストのみのリクエストから始めてください。小さなプロンプトを使用することで、認証やルーティングの問題をアプリケーションレベルのプロンプトの問題から分離しやすくなります。

例えば、Kimi K3 に短い実装チェックリストを返すように依頼します:

ストリーミングAPIクライアントにリトライを追加する際の最大のリスクを3つ挙げてください。リスクごとに1文で返してください。

最初の max_tokens の値は控えめにしてください。大きな出力許容量は、基本的なリクエスト、レスポンス解析、エラー処理が正しく動作してから役立ちます。

ステップ4:レスポンスを読む

OpenAI互換のレスポンスでは、アシスタントのテキストは標準の非ストリーミングチャット完了の場合、choices[0].message.content に配置されます。リクエストトレースやコスト計算が必要な場合は、アプリケーション内でレスポンスメタデータと使用量フィールドを保持してください。

プロダクション統合のためには、少なくとも以下を記録してください:

  • モデルIDとリクエストタイムスタンプ。
  • プロバイダーリクエストID(クライアントまたはレスポンスヘッダーによって返される場合)。
  • プロンプトと完了トークンの使用量。
  • リトライ回数とHTTPステータス。
  • リクエストがテキストのみかマルチモーダルコンテンツを使用したかどうか。

最初の呼び出しが成功したら、実際のワクロードに近いプロンプトをテストしてくさい:長いソースファイル、複数のドキュメント、ツールスキーマ、または構造化されたレスポンス契約。短いプロンプトが成功しても、トポロダクション品質が確認できたわけではありませ。

ステップ5:料金、制限、おょび一般的なエラを確認する

Novita モデルページには、Kimi K3 のサーバーレス料金として、入力トークン100万あたり3ドル キャッシュ読み取トークン100万あたり0.30ドル 出力トークン100万あたり15ドルが記載されています。見積もりには、リクエストの両側、リトライ、おょび繰り返し送信するコンテキストの量を含める必要があります。

また、このページには以下のリクエストレート階層もリストされています:

階層 リクエスト/分 トークン/分
T1 30 50,000,000
T2 100 50,000,000
T3 1,000 50,000,000
T4 3,000 50,000,000
T5 6,000 50,000,000

適用される階層はアカウントによって異なります。すべてのプロジェクトがT1から始まる、またはすべてのワクロードが表示された最大レートを使用できるとテーブルを約束として扱わないでくださ。

一般的な初期統合エラには以下が含まれます:

  • Authorization: Bearer ヘッダーが欠けている、または誤た環境変数を設定している。
  • moonshotai/kimi-k3 の代わりに kimi-k3 やマケティング名を送信している。
  • SDK がバージョン付けされた .../openai/v1 パスを期待している場合に、https://api.novita.ai/openai をSDKベースURLとして使用している。
  • 有なJSO ではないリクエストボディを送信している。
  • アプリケーションが保存または処理できるよりも大きな出力制限を設定している。
  • マルチモーダルリクエストボディがすべてのSDKやモデルファミリーで同一であると想定している。

Python 例

環境に OpenAI Python クライアントをインストールし、NOVITA_API_KEY を設定してこの例を実行します:

pip install openai
import os

from openai import OpenAI


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

response = client.chat.completions.create(
    model="moonshotai/kimi-k3",
    messages=[
        {
            "role": "system",
            "content": "あなたは簡潔なエンジニアリングアシスタントです。",
        },
        {
            "role": "user",
            "content": "ストリーミングAPIクライアントにリトライを追加する際のリスクを3つ挙げてください。",
        },
    ],
    temperature=0.2,
    max_tokens=300,
)

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

この例では、意図的に短い完了を使用しています。アプリケーションに適したタイムアウト、リトライ、ロギング、および使用量追跡を追加した後にのみ、コンテキストと出力の予算を増やしてください。

cURL 例

同じリクエストを SDK なしでテストできます:

payload='{
  "model": "moonshotai/kimi-k3",
  "messages": [
    {
      "role": "system",
      "content": "あなたは簡潔なエンジニアリングアシスタントです。"
    },
    {
      "role": "user",
      "content": "ストリーミングAPIクライアントにリトライを追加する際のリスクを3つ挙げてください。"
    }
  ],
  "temperature": 0.2,
  "max_tokens": 300
}'

curl --request POST "https://api.novita.ai/openai/v1/chat/completions" \
  --header "Authorization: Bearer $NOVITA_API_KEY" \
  --header "Content-Type: application/json" \
  --data "$payload"

主要パラメータ

パラメータ 制御内容 適切な初期値
model リクエストに応答するホストされたモデル moonshotai/kimi-k3
messages システム、ユーザー、アシスタントの会話ターン 1つのシステムメッセージと1つのユーザーメッセージ
temperature 出力のばらつき 再現可能なテストには 0.2
max_tokens 生成される最大出力 300、その後意図的に増やす
stream 出力が段階的に到着するかどうか デバッグ中は無効のままにする
tools モデルが利用可能な関数定義 基本的なチャットが機能した後に追加する
response_format 構造化出力の要件 使用する前に返されたJSONを検証する

画像や動画の入力については、アプリケーションに追加する前に、モデルおよびAPIドキュメントで現在のリクエスト形式を確認してください。モデルページの機能ラベルは、クライアントライブラリで使用される正確なコンテンツ構造のテストに代わるものではありません。

トラブルシューティング

認証に失敗する

リクエストを実行する同じプロセスで NOVITA_API_KEY が設定されていることを確認してください。ヘッダーが Bearer を使用しており、クエリパラメータや異なる資格情報名ではないことを確認してください。

モデルが見つからない

正確な ID moonshotai/kimi-k3 を使用してください。モデルの表示名は、API モデル ID の有効な代替にはなりません。

リクエストが拒否される

プロンプトと max_tokens の値を減らし、JSON ボディを検証し、エンドポイントが /openai/v1/chat/completions であることを確認してください。リクエストが画像、動画、ツール、または構造化出力を使用している場合は、それらのフィールドを削除し、一度に1つずつ追加し直してください。

リクエストが遅い、またはレート制限されている

プロンプトと出力のトークン数を測定し、不要な繰り返しコンテキストを減らし、リトライ可能なレスポンスには制限付き指数バックオフを追加してください。モデルページのテーブルで最上位の階層を想定するのではなく、アカウントの現在のレート階層を確認してください。

レスポンスが不完全である

終了理由と使用量データを確認してください。max_tokens の値が小さいと、長い回答が途中で停止する可能性があります。値を増やすと、アプリケーションが支払い、処理する出力量も増加します。

FAQ

Kimi K3 にはどのモデル ID を送信すればよいですか?

model フィールドに moonshotai/kimi-k3 を送信してください。

OpenAI クライアントはどのエンドポイントを使用しますか?

SDK のベース URL を https://api.novita.ai/openai/v1 に設定してください。チャット完了リクエストは https://api.novita.ai/openai/v1/chat/completions に送信されます。

Kimi K3 のコンテキストウィンドウのサイズは?

Novita モデルページには、1,048,576 トークンのコンテキストウィンドウと 1,048,576 トークンの最大出力設定がリストされています。デプロイ前にページで更新を確認してください。

Kimi K3 は無料で呼び出せますか?

ここでは無料アクセスを主張していません。モデルページにはトークンベースのサーバーレス料金が記載されています。大きなリクエストを送信する前に、アカウントとモデルに表示されている現在の料金を確認してください。

マルチモーダルリクエストから始めるべきですか?

いいえ。認証、エンドポイント選択、レスポンス解析、およびエラー処理を簡単に検証できるように、小さなテキストのみのリクエストから始めてください。そのパスが安定した後に、マルチモーダル入力を追加してください。

おすすめ記事

ソース