> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apiyi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kimi K3.1 Pro 概要

> Kimi K3.1 Pro と Highspeed への公式リレーアクセス：モデル選択、OpenAI 互換リクエスト、推論レベル、ストリーミング、ツール呼び出し、キャッシュパラメーター、およびテスト制限。

## 概要

**Kimi K3.1 Pro**は、ソフトウェア開発、複雑な推論、複数ステップのツールワークフロー向けのMoonshot AIの推論モデルです。APIYIでは、公式リレーのモデル`kimi-k3.1-pro`と`kimi-k3.1-pro-highspeed`を提供しています。どちらも同じリクエスト形式を使用し、`model`を変更することで切り替えられます。

> [!NOTE]
>
> \*\*まずProを使い、ワークフローでより低いレイテンシが必要な場合はHighspeedを選択してください。\*\*どちらのモデルも常に推論を使用し、その深さは`reasoning_effort`で制御します。Highspeedは入力、出力、キャッシュ書き込みの料金が高くなります。

> [!WARNING]
>
> \*\*1時間のキャッシュは今回のテスト実行で合格しなかったため、検証済みの機能として記載していません。\*\*基本的なチャット、ストリーミング、ツール呼び出しはテストに合格しました。公式パラメータとテスト上の制限については、キャッシュのセクションを参照してください。

> **[クイックスタート](#quick-start)**
>
> OpenAI SDKまたはHTTPを使用してChat Completionsを呼び出します。

> **[モデルと料金](#model-selection-and-pricing)**
>
> キャッシュ料金を含めて、ProとHighspeedを比較します。

> **[推論とツール](#tool-calls)**
>
> 推論の強度を選択し、ツール呼び出しの履歴を保持します。

> **[コンテキストキャッシュ](#context-caching)**
>
> 公式のキャッシュパラメータと、APIYIのテストの制限を確認します。

## モデルの選択と料金

どちらのモデルも実際のtoken使用量に基づいて課金され、**APIYIの現在の設定料金は公式価格と一致しています**。以下の料金はすべて**100万tokenあたりのUSD**です。通常の入力料金と出力料金は確認済みです。キャッシュ料金は設定価格であり、このテスト実行で確認したキャッシュ課金額ではありません。

| 課金カテゴリ | `kimi-k3.1-pro` | `kimi-k3.1-pro-highspeed` |
| - | - | - |
| 通常の入力 | \$2.00 | \$4.00 |
| 推論を含む出力 | \$10.00 | \$20.00 |
| キャッシュ読み取り、設定料金 | \$0.20 | \$0.20 |
| キャッシュ書き込み：5分、設定料金 | \$2.00 | \$4.00 |
| キャッシュ書き込み：1時間、設定料金 | \$4.00 | \$8.00 |

> [!NOTE]
>
> モデル料金は公式プロバイダーの価格に準じており、変更される場合があります。この表は参考情報です。上部ナビゲーションの**モデル料金**タブが正式な情報です：[モデル料金](https://docs.apiyi.com/en/models/index.md)。

| モデル | 推奨用途 | 選択ガイド |
| - | - | - |
| `kimi-k3.1-pro` | 開発、推論、ドキュメント処理、バッチツールタスク | コストを最優先する場合のデフォルト |
| `kimi-k3.1-pro-highspeed` | より高速な応答が必要な対話型エージェントやワークフロー | レイテンシの低さと引き換えに、token料金は高めです |

### チャージボーナス適用時の実質コスト

[20%ボーナスキャンペーン](https://docs.apiyi.com/ja/faq/recharge-promotions.md)の対象となるチャージでは、支払額1単位につき利用可能なクレジットが1.2単位付与されます。そのため、実質コストは表示価格の`1 ÷ 1.2 ≈ 83.33%`になります。

ボーナスによって利用可能なクレジットは増えますが、モデルの表示価格は変わりません。対象条件、ボーナス率、現在の利用規約については、キャンペーンページをご確認ください。

## 基本機能のテスト

APIYIは\*\*2026-10-25 (UTC+8)\*\*に、両方のモデルで以下の基本ケースを検証しました。

| 機能 | `kimi-k3.1-pro` | `kimi-k3.1-pro-highspeed` |
| - | - | - |
| 非ストリーミングのテキストチャット | 合格 | 合格 |
| ストリーミングのテキスト出力 | 合格 | 合格 |
| JSONオブジェクト出力 | 合格 | 合格 |
| 関数呼び出しとツール結果の往復 | 合格 | 合格 |
| 画像理解 | 合格 | 合格 |
| 基本的なResponsesリクエスト | 合格 | 合格 |
| 基本的なMessagesリクエスト | 明示的なサンプリングパラメータを指定して合格 | 明示的なサンプリングパラメータを指定して合格 |
| 通常入力および出力の課金ログ | 記載された料金と一致 | 記載された料金と一致 |

このガイドでは主にChat Completionsを使用します。既存のResponses連携でも`POST /v1/responses`を使用できます。画像テストではBase64データを使用しました。

`POST /v1/messages`への基本リクエストも合格しました。デフォルトのサンプリングパラメータ変換によるエラーを避けるため、`top_p: 0.95`と`temperature: 1`を明示的に設定してください。

> [!NOTE]
>
> これらのテストでは、基本リクエスト、意味的な結果、通常入力および出力の課金を確認しました。すべてのパラメータ、最大コンテキスト、または長時間実行時の動作を網羅するものではありません。キャッシュの有効期間と課金については、以下の説明に沿って別途確認が必要です。

## クイックスタート

APIYIのトークンを使用して`POST /v1/chat/completions`を呼び出します。まず`reasoning_effort: "low"`から始め、より深い推論が必要なタスクでは値を大きくしてください。

```bash cURL theme={null}
curl https://api.apiyi.com/v1/chat/completions \
  -H "Authorization: Bearer $APIYI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3.1-pro",
    "messages": [
      {"role": "user", "content": "Explain the difference between Python dictionaries and lists, with one use case for each."}
    ],
    "reasoning_effort": "low",
    "max_completion_tokens": 8192
  }'
```

```python Python theme={null}
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["APIYI_API_KEY"],
    base_url="https://api.apiyi.com/v1",
    timeout=300,
)

response = client.chat.completions.create(
    model="kimi-k3.1-pro",
    messages=[
        {"role": "user", "content": "Explain the difference between Python dictionaries and lists, with one use case for each."}
    ],
    reasoning_effort="low",
    max_completion_tokens=8192,
)

message = response.choices[0].message
print(message.content)
print(response.usage)
```

> [!TIP]
>
> 設定ではモデル名をそのまま使用してください。高速版を使用するには、モデル名を`kimi-k3.1-pro-highspeed`に変更し、残りのインテグレーションはそのまま再利用します。

## 推論と主要パラメータ

両モデルは**常に推論を使用します**。`reasoning_effort`で深度を調整してください。Kimi K2.5の`enable_thinking`スイッチを引き継がないでください。

| パラメータ | 用途 |
| - | - |
| `reasoning_effort` | `low`、`high`、または`max`を指定します。公式のデフォルトは`max`です |
| `max_completion_tokens` | 推論と最終回答を合わせた出力の上限 |
| `stream` | ストリーミングでは`true`に設定します |
| `stream_options.include_usage` | 最終的なストリーミング使用量を受け取るには`true`に設定します |
| `tools` | アプリケーションが実行する関数を定義します |
| `prompt_cache_options` | 暗黙的なコンテキストキャッシュとその有効期間を設定します |

> [!WARNING]
>
> 推論と回答に十分な`max_completion_tokens`を確保してください。推論で上限を使い切ると、最終回答が空または不完全になる場合があります。`finish_reason`を確認し、必要に応じて上限を引き上げてください。

公式のサンプリング値は`temperature=1`、`top_p=0.95`、`n=1`、`presence_penalty=0`、`frequency_penalty=0`に固定されています。チャット補完の例ではこれらを省略しています。Messagesでは、上記の説明に従ってサンプリングパラメータを明示的に設定してください。別のモデルの互換性のない設定を引き継がないでください。

### レスポンスの読み方

最終回答は`choices[0].message.content`にあります。推論は`choices[0].message.reasoning_content`に返されます。回答は`content`を参照し、インターフェースに表示される場合は`reasoning_content`を別途処理してください。

推論のtokenは出力レートで課金されます。目に見える回答の長さではなく、レスポンス`usage`とコンソールログからコストを見積もってください。

## ストリーミング

推論と回答テキストは、それぞれ`delta.reasoning_content`と`delta.content`に届きます。最終の使用量チャンクでは`choices`配列が空の場合があるため、選択肢を読み取る前に`chunk.usage`を確認してください。

```python theme={null}
stream = client.chat.completions.create(
    model="kimi-k3.1-pro",
    messages=[{"role": "user", "content": "Design a task queue with retry handling."}],
    reasoning_effort="low",
    max_completion_tokens=8192,
    stream=True,
    stream_options={"include_usage": True},
)

for chunk in stream:
    if chunk.usage is not None:
        print("\nUsage:", chunk.usage)
    if not chunk.choices:
        continue

    delta = chunk.choices[0].delta
    reasoning = getattr(delta, "reasoning_content", None)
    if reasoning:
        # Render reasoning separately from the final answer.
        pass
    if delta.content:
        print(delta.content, end="", flush=True)
```

## ツール呼び出し

モデルは関数名と引数を生成し、アプリケーションがそれらを実行します。モデルが`tool_calls`を返したら、`reasoning_content`と`tool_calls`を含む**完全なアシスタントメッセージ**を履歴に追加します。次に、一致する`tool_call_id`を付けて各ツール結果を追加し、次のリクエストを送信します。

```python theme={null}
import json

messages = [{"role": "user", "content": "Check the delivery status of order A100."}]
tools = [{
    "type": "function",
    "function": {
        "name": "get_order_status",
        "description": "Get the delivery status of an order",
        "parameters": {
            "type": "object",
            "properties": {"order_id": {"type": "string"}},
            "required": ["order_id"],
            "additionalProperties": False,
        },
    },
}]

response = client.chat.completions.create(
    model="kimi-k3.1-pro",
    messages=messages,
    tools=tools,
    reasoning_effort="low",
    max_completion_tokens=8192,
)
message = response.choices[0].message
messages.append(message.model_dump(exclude_none=True))

if message.tool_calls:
    for call in message.tool_calls:
        arguments = json.loads(call.function.arguments)
        # Example result; validate arguments and query your order service in production.
        result = {"order_id": arguments["order_id"], "status": "shipped"}
        messages.append({
            "role": "tool",
            "tool_call_id": call.id,
            "content": json.dumps(result),
        })

    final = client.chat.completions.create(
        model="kimi-k3.1-pro",
        messages=messages,
        tools=tools,
        reasoning_effort="low",
        max_completion_tokens=8192,
    )
    print(final.choices[0].message.content)
else:
    print(message.content)
```

> [!WARNING]
>
> ツール呼び出しのラウンドでは、アシスタントメッセージ全体を保持してください。`reasoning_content`や`tool_calls`を削除すると、後続の推論やツール結果の照合に支障をきたす可能性があります。要求された操作を実行する前に、ツール名、引数、実行権限を検証してください。

## コンテキストキャッシュ

公式のキャッシュ機構は、繰り返し使用する長いシステム指示、参照ドキュメント、コードコンテキストを対象としています。安定した内容を先に置き、変更される質問を最後に置いてください。

> [!WARNING]
>
> **1時間のキャッシュは今回のテストで成功せず、APIYIで利用できることが確認された機能ではありません。** 2つのモデルで、5分と1時間のポリシー用にそれぞれ異なる長いプレフィックスを使ってテストしました。リクエストは成功しましたが、有効なキャッシュ読み取り数またはキャッシュ書き込み数は返されませんでした。約5.5分後に繰り返した4件のリクエストにも、その後の短い間隔での繰り返しにも、キャッシュヒットはありませんでした。1時間のリクエストのログには、1時間のキャッシュ書き込み料金ではなく、通常の入力料金が記録されていました。

これらの結果は今回のテストに関するものであり、すべてのリクエストでキャッシュがサポートされていないことを示すものではありません。ご自身のリクエストでキャッシュの使用と対応する課金が確認できるまでは、通常の入力料金を見込んでください。以下のパラメーターと動作は、公式フォーマットを参照したものです。

### キャッシュの有効期間を選択する

チャット補完では、`prompt_cache_options` **トップレベルのリクエストフィールド**を使用します。デフォルトの有効期間は5分です。1時間の有効期間を指定するには、次のようにします。

```python theme={null}
response = client.chat.completions.create(
    model="kimi-k3.1-pro",
    messages=[
        {"role": "system", "content": LONG_STABLE_CONTEXT},
        {"role": "user", "content": "List three key findings from the reference material."},
    ],
    reasoning_effort="low",
    max_completion_tokens=8192,
    extra_body={
        "prompt_cache_options": {"mode": "implicit", "ttl": "1h"}
    },
)
print(response.usage)
```

`LONG_STABLE_CONTEXT`は、再利用する長いテキストを表します。後続のリクエストでもこのプレフィックスを同一に保ち、最後の質問を置き換えてください。

> [!NOTE]
>
> **最初のキャッシュ書き込みで有効期間が決まります。** 既存の5分キャッシュに対して`ttl: "1h"`を送信しても、1時間に延長されることはありません。キャッシュヒットが発生すると、元の有効期間が更新されます。ポリシーを比較する場合は、それぞれに異なる新しいプレフィックスを使用してください。

### 読み取りと書き込みの課金方法

* **キャッシュ読み取り:** 再利用されたプレフィックスのtokenには、キャッシュ読み取り料金が適用されます。
* **キャッシュ書き込み:** 新たにキャッシュされたプレフィックスのtokenには、選択した5分または1時間の書き込み料金が適用されます。
* **通常の入力:** キャッシュされた部分の外にある入力には、通常の入力料金が適用されます。
* **出力:** 推論と最終回答には、出力料金が適用されます。

これらは公式の課金カテゴリです。今回のテストでは通常の入力料金と出力料金が確認されましたが、キャッシュ読み取りまたはキャッシュ書き込みの精算は確認できませんでした。レスポンスの`usage`、キャッシュ読み取りとキャッシュ作成のフィールド、コンソールの課金ログを比較してください。パラメーターが受け付けられるだけでは不十分です。

## 技術仕様と統合のヒント

| 項目 | 詳細 |
| - | - |
| モデルID | `kimi-k3.1-pro`, `kimi-k3.1-pro-highspeed` |
| 公式コンテキストウィンドウ | 1,048,576 tokens |
| このガイドの主なエンドポイント | `POST https://api.apiyi.com/v1/chat/completions` |
| 推論 | 常に有効です。`reasoning_effort`で`low`、`high`、または`max`を選択します |
| 最終回答フィールド | `choices[0].message.content` |
| 推論フィールド | `choices[0].message.reasoning_content` |
| 公式のキャッシュオプション | デフォルトは5分です。1時間をリクエストできます。上記の検証上の制限を参照してください |

**1. まずは低い推論レベルから始めます**

長いコンテキストを追加する前に、短いリクエストを送信して、モデル名、トークン、レスポンスパーサーを検証します。

**2. 推論の予算を設定します**

使用状況と`finish_reason`に基づいて`max_completion_tokens`を調整します。より複雑なタスクでは`reasoning_effort`を増やします。

**3. 長時間実行タスクをストリーミングします**

推論テキストと回答テキストを分けて処理し、最終的な使用量を読み取り、クライアントとプロキシで十分なタイムアウトを設定します。

**4. 規模を拡大する前にキャッシュ使用量を検証します**

固定の長いプレフィックスを使ってリクエストを繰り返し、キャッシュ使用量と課金ログを比較して、ワークフローでキャッシュヒットが発生していることを確認します。

## FAQ

> **Highspeedを選択すると何が変わりますか？**
>
> どちらのモデルも同じ統合形式を使用します。Highspeedは、token価格が高い代わりにレイテンシの低減を目指しています。実際の速度は、promptの長さ、推論の強度、出力の長さ、現在の負荷によって異なるため、実際のワークロードで評価してください。

> **Kimi K2.5のように、推論を無効にできますか？**
>
> K3.1 Proモデルでは常に推論が使用されます。古い`enable_thinking`パラメーターを引き継ぐのではなく、`reasoning_effort: "low"`を選択してオーバーヘッドを調整してください。

> **請求対象の出力が、画面に表示される回答より多いのはなぜですか？**
>
> 出力の使用量には推論tokenが含まれます。画面に表示される回答の長さは、出力の総使用量を表すものではありません。応答`usage`とコンソールログを確認してください。

> **ttlを1hに設定すれば、既存のキャッシュを1時間に変更できますか？**
>
> 公式の仕組みでは、既存のキャッシュは初期の有効期間を維持するため、`ttl: "1h"`には新しいプレフィックスが必要です。APIYIのテストでは、1時間の保持や書き込み料金は検証されていません。パラメーターの受け付けに成功しても、サポートされている証拠にはなりません。

> **20%のチャージボーナスはコストにどのように影響しますか？**
>
> 対象となるチャージでは、支払額の1.2倍のクレジットが付与されるため、実質コストは定価の`1 ÷ 1.2 ≈ 83.33%`になります。適用条件については、[キャンペーン規約](https://docs.apiyi.com/ja/faq/recharge-promotions.md)をご確認ください。

## 関連ドキュメント

* [APIマニュアル](https://docs.apiyi.com/ja/api-manual.md)
* [関数呼び出し](https://docs.apiyi.com/ja/api-capabilities/openai/function-calling.md)
* [推論モデルのレスポンス](https://docs.apiyi.com/ja/api-capabilities/openai/reasoning-models.md)
* [モデル料金](https://docs.apiyi.com/en/models/index.md)
* [チャージ特典](https://docs.apiyi.com/ja/faq/recharge-promotions.md)

公式リファレンス：`platform.moonshot.ai/docs/guide/kimi-k3-1-pro-quickstart`、`platform.kimi.ai/docs/guide/context-caching`、`platform.moonshot.ai/docs/pricing/chat`。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.