use itellm.forward_traceparent_to_llm_provider

This commit is contained in:
Ishaan Jaff 2024-08-01 09:05:13 -07:00 committed by Krrish Dholakia
parent e32c1f4c9b
commit 3ff07dfb14
2 changed files with 14 additions and 10 deletions

View file

@ -165,6 +165,7 @@ budget_duration: Optional[str] = (
default_soft_budget: float = ( default_soft_budget: float = (
50.0 # by default all litellm proxy keys have a soft budget of 50.0 50.0 # by default all litellm proxy keys have a soft budget of 50.0
) )
forward_traceparent_to_llm_provider: bool = False
_openai_finish_reasons = ["stop", "length", "function_call", "content_filter", "null"] _openai_finish_reasons = ["stop", "length", "function_call", "content_filter", "null"]
_openai_completion_params = [ _openai_completion_params = [
"functions", "functions",

View file

@ -3,6 +3,7 @@ from typing import TYPE_CHECKING, Any, Dict, Optional
from fastapi import Request from fastapi import Request
import litellm
from litellm._logging import verbose_logger, verbose_proxy_logger from litellm._logging import verbose_logger, verbose_proxy_logger
from litellm.proxy._types import CommonProxyErrors, TeamCallbackMetadata, UserAPIKeyAuth from litellm.proxy._types import CommonProxyErrors, TeamCallbackMetadata, UserAPIKeyAuth
from litellm.types.utils import SupportedCacheControls from litellm.types.utils import SupportedCacheControls
@ -250,13 +251,15 @@ def _add_otel_traceparent_to_data(data: dict, request: Request):
# if user is not use OTEL don't send extra_headers # if user is not use OTEL don't send extra_headers
# relevant issue: https://github.com/BerriAI/litellm/issues/4448 # relevant issue: https://github.com/BerriAI/litellm/issues/4448
return return
if request.headers:
if "traceparent" in request.headers: if litellm.forward_traceparent_to_llm_provider is True:
# we want to forward this to the LLM Provider if request.headers:
# Relevant issue: https://github.com/BerriAI/litellm/issues/4419 if "traceparent" in request.headers:
# pass this in extra_headers # we want to forward this to the LLM Provider
if "extra_headers" not in data: # Relevant issue: https://github.com/BerriAI/litellm/issues/4419
data["extra_headers"] = {} # pass this in extra_headers
_exra_headers = data["extra_headers"] if "extra_headers" not in data:
if "traceparent" not in _exra_headers: data["extra_headers"] = {}
_exra_headers["traceparent"] = request.headers["traceparent"] _exra_headers = data["extra_headers"]
if "traceparent" not in _exra_headers:
_exra_headers["traceparent"] = request.headers["traceparent"]