可観測性
Spring AI は、Spring エコシステムの可観測性機能に基づいて構築され、AI 関連の操作に関するインサイトを提供します。Spring AI は、そのコアコンポーネントである ChatClient
(Advisor
を含む)、ChatModel
、EmbeddingModel
、ImageModel
、VectorStore
のメトリクスとトレース機能を提供します。
低いカーディナリティキーはメトリクスとトレースに追加されますが、高いカーディナリティキーはトレースにのみ追加されます。 |
チャットクライアント
spring.ai.chat.client
観測は、ChatClient call()
または stream()
操作が呼び出されたときに記録されます。呼び出しの実行に費やされた時間を測定し、関連するトレース情報を伝播します。
名前 | 説明 |
---|---|
| 常に |
| 常に |
| チャットモデルのレスポンスはストリームですか - |
| Spring AI のフレームワーク API の種類: |
名前 | 説明 |
---|---|
| アドバイザーパラメーターのマップ。 |
| 構成されたチャットクライアントアドバイザーのリスト。 |
| チャットクライアントのシステムパラメーター。オプション。 |
| チャットクライアントのシステムテキスト。オプション。 |
| 有効なツール機能名。 |
| 構成されたチャットクライアント関数コールバックのリスト。 |
| チャットクライアントのユーザーパラメーター。オプション。 |
| チャットクライアントユーザーテキスト。オプション。 |
入力データ
ChatClient
入力データは通常大きく、機密情報が含まれている可能性があります。そのため、デフォルトではエクスポートされません。
Spring AI は、すべてのトレースバックエンドにわたって入力データをスパン属性としてエクスポートすることをサポートしています。
プロパティ | 説明 | デフォルト |
---|---|---|
| 入力コンテンツを観測に含めるかどうか。 |
|
入力内容を観察に含めることを有効にすると、機密情報や個人情報が公開されるリスクがあります。ご注意ください。 |
チャットクライアントアドバイザー
spring.ai.advisor
観測は、アドバイザーの呼び出しまたはストリームが実行されたときに記録されます。アドバイザーで費やされた時間 (内部アドバイザーで費やされた時間を含む) を測定し、関連するトレース情報を伝播します。
名前 | 説明 |
---|---|
| 常に |
| 常に |
| アドバイザーがリクエスト処理でロジックを適用する場合は、 |
| Spring AI のフレームワーク API の種類: |
名前 | 説明 |
---|---|
| アドバイザーの名前。 |
| アドバイザーチェーンのアドバイザーオーダー。 |
チャットモデル
可観測性機能は現在、次の AI モデルプロバイダーの ChatModel 実装でのみサポートされています: Anthropic、Azure、OpenAI、Mistral AI、Ollama、OpenAI、Vertex AI、MiniMax、Moonshot、QianFan、Zhiu AI。追加の AI モデルプロバイダーは、将来のリリースでサポートされる予定です。 |
gen_ai.client.operation
観測は、ChatModel call
または stream
メソッドを呼び出すときに記録されます。メソッドの完了に費やされた時間を測定し、関連するトレース情報を伝播します。
gen_ai.client.token.usage メトリクスは、単一のモデル呼び出しで使用される入力トークンと出力トークンの数を測定します。 |
名前 | 説明 |
---|---|
| 実行される操作の名前。 |
| クライアントインストルメンテーションによって識別されるモデルプロバイダー。 |
| リクエストが行われているモデルの名前。 |
| レスポンスを生成したモデルの名前。 |
名前 | 説明 |
---|---|
| モデルリクエストの頻度ペナルティ設定。 |
| モデルがリクエストに対して生成するトークンの最大数。 |
| モデルリクエストのプレゼンスペナルティ設定。 |
| モデルがそれ以上のトークンの生成を停止するために使用するシーケンスのリスト。 |
| モデルリクエストの温度設定。 |
| モデルリクエストの top_k サンプリング設定。 |
| モデルリクエストの top_p サンプリング設定。 |
| 受信した各世代に対応する、モデルがトークンの生成を停止した理由。 |
| AI レスポンスの一意の識別子。 |
| モデル入力 (プロンプト) で使用されるトークンの数。 |
| モデル出力(完了)で使用されるトークンの数。 |
| モデル交換で使用されるトークンの合計数。 |
| モデルに送信される完全なプロンプト。オプション。 |
| モデルから受信した完全なレスポンス。オプション。 |
ユーザートークンを測定する場合、前の表には観測トレースに存在する値がリストされています。ChatModel によって提供されるメトリクス名 gen_ai.client.token.usage を使用します。 |
名前 | 説明 |
---|---|
| チャットプロンプトの内容を含むイベント。オプション。 |
| チャット補完の内容を含むイベント。オプション。 |
チャットプロンプトと完了データ
チャットプロンプトと完了データは通常サイズが大きく、機密情報が含まれている可能性があります。そのため、デフォルトではエクスポートされません。
Spring AI は、OpenTelemetry トレースバックエンドを使用する場合、チャットプロンプトと完了データをスパンイベントとしてエクスポートすることをサポートしますが、OpenZipkin トレースバックエンドを使用する場合、データはスパン属性としてエクスポートされます。
さらに、Spring AI はチャットプロンプトと完了データのログ記録をサポートしており、シナリオのトラブルシューティングに役立ちます。
プロパティ | 説明 | デフォルト |
---|---|---|
| 観察にプロンプトの内容を含めます。 |
|
| 完了コンテンツを観察に含めます。 |
|
| 観測にエラーログを含めます。 |
|
チャットプロンプトと完了データを観察に含めることを有効にすると、機密情報や個人情報が公開されるリスクがあります。ご注意ください。 |
EmbeddingModel
可観測性機能は現在、Azure、OpenAI、Mistral AI、Ollama、OpenAI の AI モデルプロバイダーの EmbeddingModel 実装でのみサポートされています。追加の AI モデルプロバイダーは、将来のリリースでサポートされる予定です。 |
gen_ai.client.operation
の観測は、埋め込みモデルメソッド呼び出しに記録されます。メソッドの完了に費やされた時間を測定し、関連するトレース情報を伝播します。
gen_ai.client.token.usage メトリクスは、単一のモデル呼び出しで使用される入力トークンと出力トークンの数を測定します。 |
名前 | 説明 |
---|---|
| 実行される操作の名前。 |
| クライアントインストルメンテーションによって識別されるモデルプロバイダー。 |
| リクエストが行われているモデルの名前。 |
| レスポンスを生成したモデルの名前。 |
名前 | 説明 |
---|---|
| 結果として得られる出力埋め込みの次元数。 |
| モデル入力で使用されるトークンの数。 |
| モデル交換で使用されるトークンの合計数。 |
ユーザートークンを測定する場合、前の表には観測トレースに存在する値がリストされています。EmbeddingModel によって提供されるメトリクス名 gen_ai.client.token.usage を使用します。 |
イメージモデル
可観測性機能は現在、次の AI モデルプロバイダーの ImageModel 実装でのみサポートされています: OpenAI。追加の AI モデルプロバイダーは、将来のリリースでサポートされる予定です。 |
gen_ai.client.operation
の観測は、イメージモデルメソッドの呼び出し時に記録されます。メソッドの完了に費やされた時間を測定し、関連するトレース情報を伝播します。
gen_ai.client.token.usage メトリクスは、単一のモデル呼び出しで使用される入力トークンと出力トークンの数を測定します。 |
名前 | 説明 |
---|---|
| 実行される操作の名前。 |
| クライアントインストルメンテーションによって識別されるモデルプロバイダー。 |
| リクエストが行われているモデルの名前。 |
名前 | 説明 |
---|---|
| 生成されたイメージが返される形式。 |
| 生成するイメージのサイズ。 |
| 生成するイメージのスタイル。 |
| AI レスポンスの一意の識別子。 |
| レスポンスを生成したモデルの名前。 |
| モデル入力 (プロンプト) で使用されるトークンの数。 |
| モデル出力(生成)で使用されるトークンの数。 |
| モデル交換で使用されるトークンの合計数。 |
| モデルに送信される完全なプロンプト。オプション。 |
ユーザートークンを測定する場合、前の表には観測トレースに存在する値がリストされています。ImageModel によって提供されるメトリクス名 gen_ai.client.token.usage を使用します。 |
名前 | 説明 |
---|---|
| イメージプロンプトのコンテンツを含むイベント。オプション。 |
イメージプロンプトデータ
イメージプロンプトデータは通常サイズが大きく、機密情報が含まれている可能性があります。そのため、デフォルトではエクスポートされません。
Spring AI は、OpenTelemetry トレースバックエンドを使用する場合、イメージプロンプトデータをスパンイベントとしてエクスポートすることをサポートしますが、OpenZipkin トレースバックエンドを使用する場合、データはスパン属性としてエクスポートされます。
プロパティ | 説明 | デフォルト |
---|---|---|
|
|
|
観察結果にイメージプロンプトデータを含めるように設定した場合、機密情報や個人情報が公開されるリスクがあります。ご注意ください。 |
ベクトルストア
Spring AI のすべてのベクトルストア実装は、Micrometer を通じてメトリクスと分散トレースデータを提供するようにインストルメント化されています。
db.vector.client.operation
の観測は、ベクトルストアとやり取りするときに記録されます。query
、add
、remove
操作に費やされた時間を測定し、関連するトレース情報を伝播します。
名前 | 説明 |
---|---|
| 実行される操作またはコマンドの名前。 |
| クライアントインストルメンテーションによって識別されるデータベース管理システム (DBMS) 製品。 |
| Spring AI のフレームワーク API の種類: |
名前 | 説明 |
---|---|
| データベース内のコレクション (テーブル、コンテナー) の名前。 |
| サーバーアドレスとポート内で完全修飾されたデータベースの名前。 |
| 存在する場合はレコード識別子。 |
| 類似性検索で使用されるメトリクス。 |
| ベクトルの次元。 |
| ベクトルの名前フィールド (フィールド名など)。 |
| 実行中の検索クエリの内容。 |
| 検索クエリで使用されるメタデータフィルター。 |
| 類似検索クエリから返されたドキュメント。オプション。 |
| すべての検索スコアを受け入れる類似度しきい値。しきい値が 0.0 の場合、すべての類似度が受け入れられるか、類似度しきい値フィルタリングが無効になります。しきい値が 1.0 の場合、完全一致が必要です。 |
| クエリによって返される上位 k 個の最も類似したベクトル。 |
名前 | 説明 |
---|---|
| ベクトル検索レスポンスデータを含むイベント。オプション。 |
レスポンスデータ
ベクトル検索レスポンスデータは通常大きく、機密情報が含まれている可能性があります。そのため、デフォルトではエクスポートされません。
Spring AI は、OpenTelemetry トレースバックエンドを使用する場合、ベクトル検索レスポンスデータをスパンイベントとしてエクスポートすることをサポートしますが、OpenZipkin トレースバックエンドを使用する場合、データはスパン属性としてエクスポートされます。
プロパティ | 説明 | デフォルト |
---|---|---|
|
|
|
観測にベクトル検索レスポンスデータを含めるように設定した場合、機密情報や個人情報が公開されるリスクがあります。ご注意ください。 |