依團隊/金鑰的記錄
概覽
允許每個金鑰/團隊使用各自的 Langfuse 專案/自訂回呼。這可讓記錄與合規需求具備更細緻的控制。
範例使用情境:
Team 1 -> Logs to Langfuse Project 1
Team 2 -> Logs to Langfuse Project 2
Team 3 -> Disabled Logging (for GDPR compliance)
支援的記錄整合
langfusegcs_bucketlangsmitharize
[BETA] 團隊記錄
✨ 這是僅供 Enterprise 使用的功能 在此開始使用 Enterprise
UI 使用方式
- 建立具有記錄設定的團隊
建立一個名為「AI Agents」的團隊
- 為團隊建立一個金鑰
我們將為團隊「AI Agents」建立一個金鑰。團隊記錄設定將套用於為該團隊建立的所有金鑰。
- 發出測試 LLM API 請求
使用新金鑰發出測試 LLM API 請求,我們預期會在步驟 1 中設定的記錄提供者上看到記錄。
- 在您的記錄提供者上檢查記錄
前往您已設定的記錄提供者,並確認是否已收到步驟 2 的記錄。
API 使用方式
為每個團隊設定回呼
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 sk-1234' \
-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_key | string | Langfuse 必填 |
langfuse_secret_key | string | Langfuse 必填 |
langfuse_host | string | Langfuse 選填(預設為 https://cloud.langfuse.com) |
gcs_bucket_name | string | GCS Bucket 必填。您的 GCS bucket 名稱 |
gcs_path_service_account | string | GCS Bucket 必填。您的服務帳戶 json 路徑 |
2. 為團隊建立金鑰
為團隊 dbe2f686-a686-4896-864a-4c3924458709 建立的所有金鑰,都會記錄到 步驟 1. 為團隊設定回呼 中指定的 langfuse 專案
curl --location 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--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-4",
"messages": [
{"role": "user", "content": "Hello, Claude gm!"}
]
}'
預期會記錄到 步驟 1. 為團隊設定回呼 中指定的 langfuse 專案
停用團隊的記錄
若要停用特定團隊的記錄,您可以使用以下端點:
POST /team/{team_id}/disable_logging
此端點會移除指定團隊的所有成功與失敗回呼,從而有效停用記錄。
步驟 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-4",
"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 sk-1234'
團隊記錄端點
團隊記錄 - config.yaml
開啟/關閉特定團隊 ID 的記錄與快取。
範例:
這個設定會依團隊 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 sk-1234' \
-H 'Content-Type: application/json' \
-d '{"team_id": "06ed1e01-3fa7-4b9e-95bc-f2e59b74f3a8"}'
所有使用這些金鑰發出的請求,都會將資料記錄到其團隊專屬的記錄。
[BETA] 依金鑰的記錄
使用 /key/generate 或 /key/update 端點,為特定金鑰新增記錄回呼。
✨ 這是僅供 Enterprise 使用的功能 在此開始使用 Enterprise
依金鑰記錄的運作方式:
- 如果 Key 沒有設定回呼,將使用 config.yaml 檔案中指定的預設回呼
- 如果 Key 已設定回呼,將使用金鑰中指定的回呼
UI 使用方式
- 建立具有記錄設定的金鑰
在建立金鑰時,您可以為該金鑰設定特定的記錄設定。這些記錄設定將用於使用此金鑰發出的所有請求。
- 發出測試 LLM API 請求
使用新金鑰發出測試 LLM API 請求,我們預期會在步驟 1 中設定的記錄提供者上看到記錄。
- 在您的記錄提供者上檢查記錄
前往您已設定的記錄提供者,並確認是否已收到步驟 2 的記錄。
API 使用方式
- Langfuse
- GCS Bucket
- Langsmith
curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-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": "os.environ/LANGFUSE_PUBLIC_KEY", # [RECOMMENDED] reference key in proxy environment
"langfuse_secret_key": "os.environ/LANGFUSE_SECRET_KEY", # [RECOMMENDED] reference key in proxy environment
"langfuse_host": "https://cloud.langfuse.com"
}
}]
}
}'
- 建立虛擬金鑰,以記錄到特定的 GCS Bucket
在您的環境中設定 GCS_SERVICE_ACCOUNT 為服務帳戶 json 的路徑
export GCS_SERVICE_ACCOUNT=/path/to/service-account.json # GCS_SERVICE_ACCOUNT=/Users/ishaanjaffer/Downloads/adroit-crow-413218-a956eef1a2a8.json
curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"logging": [{
"callback_name": "gcs_bucket", # "otel", "gcs_bucket"
"callback_type": "success", # "success", "failure", "success_and_failure"
"callback_vars": {
"gcs_bucket_name": "my-gcs-bucket", # Name of your GCS Bucket to log to
"gcs_path_service_account": "os.environ/GCS_SERVICE_ACCOUNT" # environ variable for this service account
}
}]
}
}'
- 測試它 -
/chat/completions請求
使用步驟 3 的虛擬金鑰發出 /chat/completions 請求
在成功請求時,您應該會在 GCS Bucket 上看到您的記錄
curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-Fxq5XSyWKeXDKfPdqXZhPg" \
-d '{
"model": "fake-openai-endpoint",
"messages": [
{"role": "user", "content": "Hello, Claude"}
],
"user": "hello",
}'
- 建立虛擬金鑰,以記錄到特定的 Langsmith 專案
curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"logging": [{
"callback_name": "langsmith", # "otel", "gcs_bucket"
"callback_type": "success", # "success", "failure", "success_and_failure"
"callback_vars": {
"langsmith_api_key": "os.environ/LANGSMITH_API_KEY", # API Key for Langsmith logging
"langsmith_project": "pr-brief-resemblance-72", # project name on langsmith
"langsmith_base_url": "https://api.smith.langchain.com"
}
}]
}
}'
- 測試它 -
/chat/completions請求
使用步驟 3 的虛擬金鑰發出 /chat/completions 請求
在成功請求時,您應該會在您的 Langsmith 專案上看到您的記錄
curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-Fxq5XSyWKeXDKfPdqXZhPg" \
-d '{
"model": "fake-openai-endpoint",
"messages": [
{"role": "user", "content": "Hello, Claude"}
],
"user": "hello",
}'
透過在此處提交問題單,協助我們改善此功能
檢查金鑰回呼是否已正確設定 /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']"
}
}
當記錄回呼未正確設定時的回應
當記錄回呼未正確設定時,金鑰即為 unhealthy。
{
"key": "unhealthy",
"logging_callbacks": {
"callbacks": [
"gcs_bucket"
],
"status": "unhealthy",
"details": "Logger exceptions triggered, system is unhealthy: Failed to load vertex credentials. Check to see if credentials containing partial/invalid information."
}
}
停用/啟用訊息遮罩
當您已全域停用時,可使用此功能為特定金鑰啟用 prompt 記錄
全域停用 prompt 記錄(訊息遮罩)的 example config.yaml
model_list:
- model_name: gpt-4o
litellm_params:
model: gpt-4o
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 sk-1234' \
-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-4o",
"messages": [
{"role": "user", "content": "hi my name is ishaan what key alias is this"}
]
}'