Spring AI プロンプト キャッシュとチャット メモリ... ノート

Spring AI プロンプト キャッシュとチャット メモリ:トークンはどこへ行くのか — LLM コスト管理 2/4

このセクションでは、AIモデルにおける出力、会話履歴、および繰り返し静的コンテンツに関連するコストの制御に焦点を当てます。出力および推論トークンは、入力トークンよりも大幅に高価であり、一部のモデルでは出力が最大8倍高くなることがあります。推論プロセスは、より高い出力レートが発生する隠れた「思考」トークンを生成する可能性があります。Spring AIは、プロバイダーに依存しない長さ制限のためのmaxTokensや、推論の労力を管理するためのプロバイダー固有の設定などの制御を提供します。会話履歴は、各リクエストでチャットログ全体を再送信することを含み、入力トークンコストを急速に増加させます。履歴の保存と再送信は、たとえ小さな会話であっても、時間の経過とともにかなりのトークン使用量につながる可能性があります。Spring AIは、指定されたメッセージ数のスライディングウィンドウを使用して会話履歴を管理するためのMessageWindowChatMemoryを提供します。非常に長いセッションの場合、VectorStoreChatMemoryAdvisorは、履歴をベクトルストアに保存し、関連するメッセージのみを取得することで代替手段を提供します。システムプロンプトやツール定義などの繰り返し静的コンテンツは、キャッシュなしで各リクエストで課金されます。プロンプトキャッシュは、処理済みプロンプトプレフィックスを再利用のために保存することで、これらのコストを削減します。AnthropicとAWS Bedrockは、ユーザーがキャッシュ戦略を指定できるようにする一方、OpenAIは一定のトークン数を超えるリクエストに対してプロンプトを自動的にキャッシュしますが、キャッシュ書き込みには現在料金が発生します。Ollamaのようなローカルモデルは、GPU処理時間を節約するためにキャッシュを使用して速度を向上させますが、削減すべきトークンごとの料金はありません。これらのモデルでのコスト最適化には、キャッシュの明示的な計画とキャッシュキーの管理が不可欠です。