跳至主要內容

依團隊/金鑰的記錄

概覽​

允許每個金鑰/團隊使用各自的 Langfuse 專案/自訂回呼。這可讓記錄與合規需求具備更細緻的控制。

範例使用情境:

Team Based Logging
Team 1 -> Logs to Langfuse Project 1 
Team 2 -> Logs to Langfuse Project 2
Team 3 -> Disabled Logging (for GDPR compliance)

支援的記錄整合​

  • langfuse
  • gcs_bucket
  • langsmith
  • arize

[BETA] 團隊記錄​

企業版功能

此功能需要 LiteLLM 企業版授權。立即開始 30 天免費試用或預約展示。 查看企業版完整功能。

UI 使用方式​

  1. 建立具有記錄設定的團隊

建立一個名為「AI Agents」的團隊


  1. 為團隊建立一個金鑰

我們將為團隊「AI Agents」建立一個金鑰。團隊記錄設定將套用於為該團隊建立的所有金鑰。


  1. 發出測試 LLM API 請求

使用新金鑰發出測試 LLM API 請求,我們預期會在步驟 1 中設定的記錄提供者上看到記錄。


  1. 在您的記錄提供者上檢查記錄

前往您已設定的記錄提供者,並確認是否已收到步驟 2 的記錄。


API 使用方式​

誰可以呼叫這些​

代理程式管理員、該團隊所屬組織的組織管理員,以及團隊本身的管理員,都可以列出、設定和移除該團隊的回呼。其他所有人都會收到 403,而某個團隊的管理員不能讀取其他團隊的回呼。

POST /team/{team_id}/disable_logging 是例外:它仍然只限代理程式管理員。想要關閉某個整合的團隊管理員會使用 DELETE /team/{team_id}/callback/{callback_name}。

為每個團隊設定回呼​

1. 為團隊設定回呼​

我們向 POST /team/{team_id}/callback 發出請求,以新增回呼到

curl -X POST 'http:/localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $LITELLM_API_KEY" \
-d '{
"callback_name": "langfuse",
"callback_type": "success",
"callback_vars": {
"langfuse_public_key": "pk",
"langfuse_secret_key": "sk_",
"langfuse_host": "https://cloud.langfuse.com"
}

}'
支援的值​
欄位支援的值備註
callback_name"langfuse", "gcs_bucket"目前僅支援 "langfuse"、"gcs_bucket"
callback_type"success", "failure", "success_and_failure"
callback_vars回呼設定的 dict
    langfuse_public_keystringLangfuse 必填
    langfuse_secret_keystringLangfuse 必填
    langfuse_hoststringLangfuse 選填(預設為 https://cloud.langfuse.com
    gcs_bucket_namestringGCS Bucket 必填。您的 GCS bucket 名稱
    gcs_path_service_accountstringGCS Bucket 必填。您的服務帳戶 json 路徑

2. 為團隊建立金鑰​

為團隊 dbe2f686-a686-4896-864a-4c3924458709 建立的所有金鑰,都會記錄到 步驟 1. 為團隊設定回呼 中指定的 langfuse 專案

curl --location 'http://0.0.0.0:4000/key/generate' \
--header "Authorization: Bearer $LITELLM_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"team_id": "dbe2f686-a686-4896-864a-4c3924458709"
}'

3. 為團隊發出 /chat/completion 請求​

curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-KbUuE0WNptC0jXapyMmLBA" \
-d '{
"model": "gpt-5.6-terra",
"messages": [
{"role": "user", "content": "Hello, Claude gm!"}
]
}'

預期會記錄到 步驟 1. 為團隊設定回呼 中指定的 langfuse 專案

停用團隊的記錄​

若要停用特定團隊的記錄,您可以使用以下端點:

POST /team/{team_id}/disable_logging

此端點會移除指定團隊的所有成功與失敗回呼,實際上等同停用記錄。若要移除單一整合並保留團隊的其他回呼繼續執行,請改用下方文件所述的 DELETE /team/{team_id}/callback/{callback_name}。

步驟 1. 停用團隊的記錄​

curl -X POST 'http://localhost:4000/team/YOUR_TEAM_ID/disable_logging' \
-H 'Authorization: Bearer YOUR_API_KEY'

將 YOUR_TEAM_ID 替換為實際的團隊 ID

回應 成功的請求會回傳類似以下的回應:

{
"status": "success",
"message": "Logging disabled for team YOUR_TEAM_ID",
"data": {
"team_id": "YOUR_TEAM_ID",
"success_callbacks": [],
"failure_callbacks": []
}
}

步驟 2. 測試它 - /chat/completions​

使用為團隊 = team_id 所建立的金鑰 - 您應該不會在已設定的成功回呼(例如 Langfuse)上看到任何記錄

curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-KbUuE0WNptC0jXapyMmLBA" \
-d '{
"model": "gpt-5.6-terra",
"messages": [
{"role": "user", "content": "Hello, Claude gm!"}
]
}'

除錯 / 疑難排解​

  • 使用 GET /team/{team_id}/callback 檢查團隊的有效回呼

用這個來檢查團隊=team_id 目前啟用了哪些成功/失敗回呼

curl -X GET 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' \
-H "Authorization: Bearer $LITELLM_API_KEY"

從團隊移除單一回呼​

若要在保留團隊其他回呼持續執行的同時,取消註冊一個整合,請使用:

DELETE /team/{team_id}/callback/{callback_name}

在該 callback_name 底下註冊的每個項目都會被移除,涵蓋所有回呼類型,因此同時註冊於 success 和 failure 的整合,只需一次呼叫即可取消註冊。回應會列出仍然保留的回呼,而團隊尚未註冊的 callback_name 會回傳 404,且不會改變任何內容

團隊記錄端點​

團隊記錄 - config.yaml​

開啟/關閉特定團隊 ID 的記錄與快取。

這一節僅限團隊範圍:litellm_settings.default_team_settings 會為屬於某個團隊 ID 的每個金鑰設定回呼。沒有 config.yaml 可用來宣告個別虛擬金鑰;每個金鑰的回呼是透過 /key/generate 或 /key/update API 提供,詳見 以金鑰為基礎的記錄。

由於 config.yaml 是受信任、由操作者控制的設定,因此這裡支援 os.environ/... 參照,並會在啟動時從 proxy 的環境中解析。相同的參照若透過管理 API 傳入則會被拒絕(請參見 API 提供之回呼的機密處理)。

範例:

這個設定會依團隊 ID 將 langfuse 記錄傳送到 2 個不同的 langfuse 專案

litellm_settings:
default_team_settings:
- team_id: "dbe2f686-a686-4896-864a-4c3924458709"
success_callback: ["langfuse"]
langfuse_public_key: os.environ/LANGFUSE_PUB_KEY_1 # Project 1
langfuse_secret: os.environ/LANGFUSE_PRIVATE_KEY_1 # Project 1
- team_id: "06ed1e01-3fa7-4b9e-95bc-f2e59b74f3a8"
success_callback: ["langfuse"]
langfuse_public_key: os.environ/LANGFUSE_PUB_KEY_2 # Project 2
langfuse_secret: os.environ/LANGFUSE_SECRET_2 # Project 2

現在,當您為這個 team-id 產生金鑰 時

curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H "Authorization: Bearer $LITELLM_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"team_id": "06ed1e01-3fa7-4b9e-95bc-f2e59b74f3a8"}'

所有使用這些金鑰發出的請求,都會將資料記錄到其團隊專屬的記錄。

[BETA] 依金鑰的記錄​

使用 /key/generate 或 /key/update 端點,為特定金鑰新增記錄回呼。

企業版功能

此功能需要 LiteLLM 企業版授權。立即開始 30 天免費試用或預約展示。 查看企業版完整功能。

依金鑰記錄的運作方式:

  • 如果 Key 沒有設定回呼,將使用 config.yaml 檔案中指定的預設回呼
  • 如果 Key 已設定回呼,將使用金鑰中指定的回呼

UI 使用方式​

  1. 建立具有記錄設定的金鑰

在建立金鑰時,您可以為該金鑰設定特定的記錄設定。這些記錄設定將用於使用此金鑰發出的所有請求。


  1. 發出測試 LLM API 請求

使用新金鑰發出測試 LLM API 請求,我們預期會在步驟 1 中設定的記錄提供者上看到記錄。


  1. 在您的記錄提供者上檢查記錄

前往您已設定的記錄提供者,並確認是否已收到步驟 2 的記錄。


API 使用方式​

curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H "Authorization: Bearer $LITELLM_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"logging": [{
"callback_name": "langfuse", # "otel", "gcs_bucket"
"callback_type": "success", # "success", "failure", "success_and_failure"
"callback_vars": {
"langfuse_public_key": "pk-lf-...", # pass the resolved value, not an os.environ/ reference
"langfuse_secret_key": "sk-lf-...", # pass the resolved value, not an os.environ/ reference
"langfuse_host": "https://cloud.langfuse.com"
}
}]
}
}'

每個金鑰都可以指向不同的 Langfuse 專案:為每個專案產生一個金鑰,並在 callback_vars 中傳入該專案的憑證。

API 提供之回呼的機密處理​

API 提供的 callback_vars 中的 os.environ/... 參照會被拒絕(自 v1.84 起)。若從請求主體解析環境參照,任何具備金鑰管理存取權的呼叫者都能從 proxy 的環境中讀取任意機密,因此請求會改以驗證錯誤失敗。請在請求中傳入已解析的機密值;LiteLLM 會使用 proxy 的 salt key 將 callback_vars 憑證靜態加密保存。若您希望 proxy 從自己的環境中解析憑證,請在受信任的 config.yaml 中設定該回呼(全域設定於 litellm_settings,或透過 default_team_settings 逐團隊設定)。


透過在此處提交問題單,協助我們改善此功能

檢查金鑰回呼是否已正確設定 /key/health​

使用該金鑰呼叫 /key/health,以檢查回呼設定是否已正確設定

將金鑰放在請求標頭中

curl -X POST "http://localhost:4000/key/health" \
-H "Authorization: Bearer <your-key>" \
-H "Content-Type: application/json"

回呼記錄設定正確時的回應:

當記錄回呼已正確設定時,金鑰即為 healthy。

{
"key": "healthy",
"logging_callbacks": {
"callbacks": [
"gcs_bucket"
],
"status": "healthy",
"details": "No logger exceptions triggered, system is healthy. Manually check if logs were sent to ['gcs_bucket']"
}
}

停用/啟用訊息遮罩​

當您已全域停用時,可使用此功能為特定金鑰啟用 prompt 記錄

全域停用 prompt 記錄(訊息遮罩)的 example config.yaml

model_list:
- model_name: gpt-5.6-terra
litellm_params:
model: gpt-5.6-terra
litellm_settings:
callbacks: ["datadog"]
turn_off_message_logging: True # 👈 Globally logging prompt / response is disabled

為金鑰啟用 prompt 記錄

將您要啟用 prompt 記錄的金鑰之 turn_off_message_logging 設為 false。這會覆寫全域的 turn_off_message_logging 設定。

curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H "Authorization: Bearer $LITELLM_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"logging": [{
"callback_name": "datadog",
"callback_vars": {
"turn_off_message_logging": false # 👈 Enable prompt logging
}
}]
}
}'

來自 /key/generate 的回應

{
"key_alias": null,
"key": "sk-9v6I-jf9-eYtg_PwM8OKgQ",
"metadata": {
"logging": [
{
"callback_name": "datadog",
"callback_vars": {
"turn_off_message_logging": false
}
}
]
},
"token_id": "a53a33db8c3cf832ceb28565dbb034f19f0acd69ee7f03b7bf6752f9f804081e"
}

將金鑰用於 /chat/completions 請求

此金鑰會將 prompt 記錄到請求中指定的回呼

curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-9v6I-jf9-eYtg_PwM8OKgQ" \
-d '{
"model": "gpt-5.6-terra",
"messages": [
{"role": "user", "content": "hi my name is ishaan what key alias is this"}
]
}'