可觀察性
Spring AI 建構於 Spring 生態系統中的可觀察性功能之上,以提供對 AI 相關操作的深入見解。Spring AI 為其核心組件提供指標和追蹤功能:ChatClient
(包含 Advisor
)、ChatModel
、EmbeddingModel
、ImageModel
和 VectorStore
。
低基數鍵將被新增至指標和追蹤,而高基數鍵將僅新增至追蹤。 |
聊天用戶端
當 ChatClient call()
或 stream()
操作被調用時,會記錄 spring.ai.chat.client
觀察。它們測量執行調用所花費的時間,並傳播相關的追蹤資訊。
名稱 | 描述 |
---|---|
|
永遠是 |
|
永遠是 |
|
聊天模型回應是否為串流 - |
|
Spring AI 中框架 API 的種類: |
名稱 | 描述 |
---|---|
|
顧問參數的映射。 |
|
已配置的聊天用戶端顧問列表。 |
|
聊天用戶端系統參數。選填。 |
|
聊天用戶端系統文字。選填。 |
|
已啟用的工具函數名稱。 |
|
已配置的聊天用戶端函數回呼列表。 |
|
聊天用戶端使用者參數。選填。 |
|
聊天用戶端使用者文字。選填。 |
輸入資料
ChatClient
輸入資料通常很大,並且可能包含敏感資訊。由於這些原因,預設情況下不會匯出它。
Spring AI 支援跨所有追蹤後端將輸入資料作為 span 屬性匯出。
屬性 | 描述 | 預設值 |
---|---|---|
|
是否在觀察中包含輸入內容。 |
|
如果您啟用在觀察中包含輸入內容,則存在暴露敏感或私人資訊的風險。請務必小心! |
聊天用戶端顧問
當執行顧問周圍的呼叫或串流時,會記錄 spring.ai.advisor
觀察。它們測量在顧問中花費的時間(包括在內部顧問上花費的時間),並傳播相關的追蹤資訊。
名稱 | 描述 |
---|---|
|
永遠是 |
|
永遠是 |
|
顧問在請求處理中應用其邏輯的位置,為 |
|
Spring AI 中框架 API 的種類: |
名稱 | 描述 |
---|---|
|
顧問的名稱。 |
|
顧問鏈中的顧問順序。 |
聊天模型
目前僅以下 AI 模型供應商的 ChatModel 實作支援可觀察性功能:Anthropic、Azure OpenAI、Mistral AI、Ollama、OpenAI、Vertex AI、MiniMax、Moonshot、QianFan、Zhiu AI。未來版本將支援其他 AI 模型供應商。 |
當呼叫 ChatModel call
或 stream
方法時,會記錄 gen_ai.client.operation
觀察。它們測量方法完成所花費的時間,並傳播相關的追蹤資訊。
gen_ai.client.token.usage 指標測量單次模型呼叫使用的輸入和輸出 token 數量。 |
名稱 | 描述 |
---|---|
|
正在執行的操作名稱。 |
|
由用戶端檢測識別的模型供應商。 |
|
請求正在發送到的模型名稱。 |
|
產生回應的模型名稱。 |
名稱 | 描述 |
---|---|
|
模型請求的頻率懲罰設定。 |
|
模型為請求產生的最大 token 數。 |
|
模型請求的存在懲罰設定。 |
|
模型將用於停止產生更多 token 的序列列表。 |
|
模型請求的溫度設定。 |
|
模型請求的 top_k 採樣設定。 |
|
模型請求的 top_p 採樣設定。 |
|
模型停止產生 token 的原因,對應於接收到的每個產生結果。 |
|
AI 回應的唯一識別碼。 |
|
模型輸入(提示詞)中使用的 token 數量。 |
|
模型輸出(完成)中使用的 token 數量。 |
|
模型交換中使用的 token 總數。 |
|
發送給模型的完整提示詞。選填。 |
|
從模型接收到的完整回應。選填。 |
為了測量使用者 token,上表列出了觀察追蹤中存在的值。使用由 ChatModel 提供的指標名稱 gen_ai.client.token.usage 。 |
名稱 | 描述 |
---|---|
|
包含聊天提示詞內容的事件。選填。 |
|
包含聊天完成內容的事件。選填。 |
聊天提示詞和完成資料
聊天提示詞和完成資料通常很大,並且可能包含敏感資訊。由於這些原因,預設情況下不會匯出它。
如果您使用 OpenTelemetry 追蹤後端,Spring AI 支援將聊天提示詞和完成資料作為 span 事件匯出,而如果您使用 OpenZipkin 追蹤後端,則資料會作為 span 屬性匯出。
此外,Spring AI 支援記錄聊天提示詞和完成資料,這對於疑難排解情境很有用。
屬性 | 描述 | 預設值 |
---|---|---|
|
在觀察中包含提示詞內容。 |
|
|
在觀察中包含完成內容。 |
|
|
在觀察中包含錯誤記錄。 |
|
如果您啟用在觀察中包含聊天提示詞和完成資料,則存在暴露敏感或私人資訊的風險。請務必小心! |
嵌入模型
目前僅以下 AI 模型供應商的 EmbeddingModel 實作支援可觀察性功能:Azure OpenAI、Mistral AI、Ollama 和 OpenAI。未來版本將支援其他 AI 模型供應商。 |
gen_ai.client.operation
觀察記錄在嵌入模型方法呼叫上。它們測量方法完成所花費的時間,並傳播相關的追蹤資訊。
gen_ai.client.token.usage 指標測量單次模型呼叫使用的輸入和輸出 token 數量。 |
名稱 | 描述 |
---|---|
|
正在執行的操作名稱。 |
|
由用戶端檢測識別的模型供應商。 |
|
請求正在發送到的模型名稱。 |
|
產生回應的模型名稱。 |
名稱 | 描述 |
---|---|
|
結果輸出嵌入的維度數量。 |
|
模型輸入中使用的 token 數量。 |
|
模型交換中使用的 token 總數。 |
為了測量使用者 token,上表列出了觀察追蹤中存在的值。使用由 EmbeddingModel 提供的指標名稱 gen_ai.client.token.usage 。 |
影像模型
目前僅以下 AI 模型供應商的 ImageModel 實作支援可觀察性功能:OpenAI。未來版本將支援其他 AI 模型供應商。 |
gen_ai.client.operation
觀察記錄在影像模型方法呼叫上。它們測量方法完成所花費的時間,並傳播相關的追蹤資訊。
gen_ai.client.token.usage 指標測量單次模型呼叫使用的輸入和輸出 token 數量。 |
名稱 | 描述 |
---|---|
|
正在執行的操作名稱。 |
|
由用戶端檢測識別的模型供應商。 |
|
請求正在發送到的模型名稱。 |
名稱 | 描述 |
---|---|
|
傳回產生影像的格式。 |
|
要產生影像的大小。 |
|
要產生影像的樣式。 |
|
AI 回應的唯一識別碼。 |
|
產生回應的模型名稱。 |
|
模型輸入(提示詞)中使用的 token 數量。 |
|
模型輸出(產生)中使用的 token 數量。 |
|
模型交換中使用的 token 總數。 |
|
發送給模型的完整提示詞。選填。 |
為了測量使用者 token,上表列出了觀察追蹤中存在的值。使用由 ImageModel 提供的指標名稱 gen_ai.client.token.usage 。 |
名稱 | 描述 |
---|---|
|
包含影像提示詞內容的事件。選填。 |
向量儲存區
Spring AI 中的所有向量儲存區實作都已檢測,可透過 Micrometer 提供指標和分散式追蹤資料。
當與向量儲存區互動時,會記錄 db.vector.client.operation
觀察。它們測量 query
、add
和 remove
操作所花費的時間,並傳播相關的追蹤資訊。
名稱 | 描述 |
---|---|
|
正在執行的操作或命令的名稱。為 |
|
由用戶端檢測識別的資料庫管理系統 (DBMS) 產品。為 |
|
Spring AI 中框架 API 的種類: |
名稱 | 描述 |
---|---|
|
資料庫中集合(表格、容器)的名稱。 |
|
資料庫的名稱,在伺服器位址和連接埠內完全限定。 |
|
記錄識別碼(如果存在)。 |
|
相似度搜尋中使用的指標。 |
|
向量的維度。 |
|
向量的名稱欄位(例如欄位名稱)。 |
|
正在執行的搜尋查詢的內容。 |
|
搜尋查詢中使用的中繼資料篩選器。 |
|
從相似度搜尋查詢傳回的文件。選填。 |
|
接受所有搜尋分數的相似度閾值。閾值 0.0 表示接受任何相似度或停用相似度閾值篩選。閾值 1.0 表示需要完全符合。 |
|
查詢傳回的前 k 個最相似向量。 |
名稱 | 描述 |
---|---|
|
包含向量搜尋回應資料的事件。選填。 |