跳至主要內容

Langtrace

適用於 LLM 應用程式的開源可觀測性與評估,請見 langtrace.ai。

資訊

我們想了解如何讓回呼變得更好!歡迎與 LiteLLM 創辦人聯繫,或 加入我們的 discord

前置需求​

uv add litellm

Langtrace 會在自訂路徑(/api/trace)透過 x-api-key 標頭接收 OTLP,而 OpenTelemetry v2 則會在沒有 Langtrace 憑證的情況下匯出到 /v1/traces。使用 LITELLM_OTEL_V2=true 時,請在兩者之間執行 OpenTelemetry Collector:litellm 匯出到 collector,再由 collector 使用您的金鑰將 spans 轉送到 Langtrace。langtrace 預設會套用 Langtrace 的屬性結構;collector 只負責傳遞,因此 LANGTRACE_API_KEY 會放在 collector 的環境中,而不是 proxy 的環境中

若沒有 LITELLM_OTEL_V2,langtrace 回呼會直接以設定在 proxy 上的 LANGTRACE_API_KEY 作為 x-api-key 標頭,將內容貼送到 https://app.langtrace.ai/api/trace,不需要 collector。將 LANGTRACE_API_HOST 設為自架 Langtrace 的基礎 URL(例如 https://langtrace.example.com),回呼就會貼送到 <host>/api/trace。請參閱該設定的proxy 記錄指南

快速開始​

import litellm
import os

os.environ["LITELLM_OTEL_V2"] = "true"
os.environ["OTEL_ENDPOINT"] = "http://otel-collector:4318"
# LLM API Keys
os.environ["OPENAI_API_KEY"] = ""

# set langtrace as a callback, litellm will send the data to langtrace
litellm.callbacks = ["langtrace"]

# openai call
response = litellm.completion(
model="gpt-5.6-terra",
messages=[
{"role": "user", "content": "Hi 👋 - i'm openai"}
]
)

Langtrace 會呈現什麼​

開啟 Langtrace UI;spans 會透過您的 collector 流動,並帶有 langtrace.* 和 llm.* 鍵,以及標準的 gen_ai.* 鍵。

langtrace 對應器會為提供者、請求與回應識別碼(llm.model、gen_ai.response.model、gen_ai.response_id、gen_ai.system_fingerprint)、請求參數(llm.temperature、top_p、top_k、max_tokens、frequency_penalty、presence_penalty)、llm.stream 旗標、llm.token.counts.* 使用量拆分,以及在啟用內容擷取時的 llm.prompts / llm.completions 加上 langtrace.service.name。請參閱完整屬性表。

LiteLLM 在 Langtrace 中的追蹤

OpenTelemetry 完整參考文件​

本頁涵蓋 Langtrace 特定設定。關於 span 屬性、提示與回應擷取、指標、分散式追蹤,以及哪些路由會被追蹤,請參閱 OpenTelemetry v2 指南。

支援與聯繫創辦人​

LiteLLM Enterprise
為正式環境打造的 SSO/SAML、稽核記錄、支出追蹤、多團隊管理與防護欄。
深入瞭解 →