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

# プロンプトキャッシュ

export const PromptCacheModels = () => {
  if (typeof document === "undefined") {
    return null;
  } else {
    let attempts = 0;
    const maxAttempts = 50;
    const INIT_DISPLAY_COUNT = 3;
    const interval = setInterval(() => {
      const clientComponent = document.getElementById("prompt-cache-models");
      if (clientComponent && window.novitaRemoteData.llmModels.status === 'loaded') {
        const modelList = window.novitaRemoteData.llmModels.data.filter(model => {
          return !!model.support_prompt_cache;
        });
        let displayModels = modelList.slice(0, INIT_DISPLAY_COUNT).map(model => {
          return `<li><span class="model-id-item">${model.id}</span></li>`;
        }).join('');
        let showMoreButton = '';
        if (modelList.length > INIT_DISPLAY_COUNT) {
          showMoreButton = `<button id="show-more-prompt-cache-model-btn" style="margin-left: 32px; color: rgb(40 116 255)">View More</button>`;
        }
        clientComponent.innerHTML = `
          <ul>${displayModels}</ul>
          ${showMoreButton}
        `;
        document.getElementById('show-more-prompt-cache-model-btn')?.addEventListener('click', () => {
          clientComponent.innerHTML = `
            <ul>${modelList.map(model => {
            return `<li><span class="model-id-item">${model.id}</span></li>`;
          }).join('')}</ul>
          `;
        });
        clearInterval(interval);
      }
      attempts++;
      if (attempts >= maxAttempts) {
        clearInterval(interval);
      }
    }, 200);
    return <div id="prompt-cache-models"></div>;
  }
};

プロンプトキャッシュは、Novita 推論エンジンが提供するコスト最適化機能です。

リクエストが以前のプロンプトと一致した場合、システムはキャッシュされた結果を返し、最小限のキャッシュトークン料金のみを課金します。これにより、コストを大幅に削減し、応答レイテンシを改善できます。

## 1. メリット

プロンプトキャッシュを有効にすると、次のメリットがあります。

* **低コスト**

  繰り返しのプロンプトに対して、フル推論を実行する必要がなくなります。最小限のキャッシュトークン料金のみが課金されます。

* **低レイテンシ**

  モデルを実行せずに、キャッシュされた結果が即座に返されます。

* **高スループット**

  高 QPS のシナリオでは、プロンプトキャッシュにより計算負荷が軽減され、システム全体の処理能力が向上します。

* **アプリケーションに対して透過的**

  追加のロジックやシステム変更は不要です。

## 2. 対応モデル

現在、複数のサーバーレスのオープンソースモデルがプロンプトキャッシュ課金に対応しています。例：

<PromptCacheModels />

対応モデルのプロンプトキャッシュ機能に関する料金の詳細については、[https://novita.ai/pricing（「Cache」セクションを参照）をご確認ください。](https://novita.ai/pricing（「Cache」セクションを参照）をご確認ください。)

## 3. ユースケース

プロンプトキャッシュは、**頻繁に繰り返されるプロンプト**を含むワークロードで非常に効果的です。これには以下が含まれますが、これらに限定されません。

* **テンプレートベースの生成**
  * 固定形式の要約
  * テンプレート主導のリライト
  * タスク間で再利用されるプロンプト
* **テキスト分類とフィールド抽出**
  * コンテンツタイプ分類
  * タグまたは重要情報の抽出
* **コンテンツモデレーション**
  * コメント、広告、タイトルのレビュー
  * 多くのモデレーションプロンプトが、ユーザーや時間をまたいで繰り返されます
* **チャットアプリケーションにおける繰り返しのシステムプロンプト**
  * チャットボットのペルソナ定義
  * グローバルな会話ルール
  * 複数ターンで再利用される背景情報
* **ワークフロー / アシスタント形式のプロンプト**
  * SQL 生成アシスタント
  * コード修復アシスタント
  * 固定出力形式の要約アシスタント

これらのシナリオでは自然に高いキャッシュヒット率を達成でき、推論コストを大幅に削減できます。

## 4. レスポンス例

<Note>
  キャッシュにヒットした場合、推論は実行されないため、コストが大幅に低くなり、応答も高速になります。
</Note>

モデルがプロンプトキャッシュに対応している場合、API 呼び出しを変更する必要はありません。以下は、キャッシュされた結果にヒットした場合のサンプルレスポンスです。

```JSON theme={"system"}
{
    "prompt_tokens": 3295,
    "completion_tokens": 137,
    "total_tokens": 3432,
    "prompt_tokens_details":
    {
        "audio_tokens": 0,
        "cached_tokens": 448,
        "cache_creation_Prompt_tokens": 0,
        "cache_read_Prompt_tokens": 0
    }
}
```
