mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-07 02:59:05 +00:00
resolved greptile comments
This commit is contained in:
parent
a8da002953
commit
cfbf089204
4 changed files with 56 additions and 23 deletions
|
|
@ -1,5 +1,6 @@
|
|||
import asyncio
|
||||
import copy
|
||||
import logging
|
||||
import time
|
||||
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
|
||||
|
||||
|
|
@ -916,13 +917,14 @@ async def add_litellm_data_to_request( # noqa: PLR0915
|
|||
cache_dict = parse_cache_control(cache_control_header)
|
||||
data["ttl"] = cache_dict.get("s-maxage")
|
||||
|
||||
verbose_proxy_logger.debug(
|
||||
"receiving data: %s",
|
||||
{
|
||||
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
|
||||
for k, v in data.items()
|
||||
},
|
||||
)
|
||||
if verbose_proxy_logger.isEnabledFor(logging.DEBUG):
|
||||
verbose_proxy_logger.debug(
|
||||
"receiving data: %s",
|
||||
{
|
||||
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
|
||||
for k, v in data.items()
|
||||
},
|
||||
)
|
||||
|
||||
# Parse metadata if it's a string (e.g., from multipart/form-data)
|
||||
if "metadata" in data and data["metadata"] is not None:
|
||||
|
|
@ -1149,13 +1151,14 @@ async def add_litellm_data_to_request( # noqa: PLR0915
|
|||
user_api_key_dict=user_api_key_dict,
|
||||
)
|
||||
|
||||
verbose_proxy_logger.debug(
|
||||
"[PROXY] returned data from litellm_pre_call_utils: %s",
|
||||
{
|
||||
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
|
||||
for k, v in data.items()
|
||||
},
|
||||
)
|
||||
if verbose_proxy_logger.isEnabledFor(logging.DEBUG):
|
||||
verbose_proxy_logger.debug(
|
||||
"[PROXY] returned data from litellm_pre_call_utils: %s",
|
||||
{
|
||||
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
|
||||
for k, v in data.items()
|
||||
},
|
||||
)
|
||||
|
||||
## ENFORCED PARAMS CHECK
|
||||
# loop through each enforced param
|
||||
|
|
|
|||
|
|
@ -9842,17 +9842,25 @@ async def async_queue_request(
|
|||
data["proxy_server_request"] = {
|
||||
"url": str(request.url),
|
||||
"method": request.method,
|
||||
"headers": clean_headers(request.headers),
|
||||
"headers": clean_headers(
|
||||
request.headers,
|
||||
litellm_key_header_name=(
|
||||
general_settings.get("litellm_key_header_name")
|
||||
if general_settings is not None
|
||||
else None
|
||||
),
|
||||
),
|
||||
"body": copy.copy(data), # use copy instead of deepcopy
|
||||
}
|
||||
|
||||
verbose_proxy_logger.debug(
|
||||
"receiving data: %s",
|
||||
{
|
||||
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
|
||||
for k, v in data.items()
|
||||
},
|
||||
)
|
||||
if verbose_proxy_logger.isEnabledFor(logging.DEBUG):
|
||||
verbose_proxy_logger.debug(
|
||||
"receiving data: %s",
|
||||
{
|
||||
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
|
||||
for k, v in data.items()
|
||||
},
|
||||
)
|
||||
data["model"] = (
|
||||
general_settings.get("completion_model", None) # server default
|
||||
or user_model # model name passed via cli args
|
||||
|
|
|
|||
|
|
@ -7268,7 +7268,7 @@ def get_valid_models(
|
|||
|
||||
|
||||
_SENSITIVE_HEADER_KEYS = frozenset(
|
||||
{"authorization", "x-api-key", "api-key", "x-litellm-api-key"}
|
||||
{"authorization", "x-api-key", "api-key", "x-litellm-api-key", "x-goog-api-key", "ocp-apim-subscription-key"}
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -71,6 +71,28 @@ class TestMaskSecretFieldsForLogging:
|
|||
result = _mask_secret_fields_for_logging(secret_fields)
|
||||
assert "****" in result["raw_headers"]["API-Key"]
|
||||
|
||||
def test_should_mask_google_ai_studio_key_header(self):
|
||||
secret_fields = {
|
||||
"raw_headers": {
|
||||
"x-goog-api-key": "AIzaSyB-some-long-google-api-key-1234567890",
|
||||
"host": "localhost:4000",
|
||||
}
|
||||
}
|
||||
result = _mask_secret_fields_for_logging(secret_fields)
|
||||
assert "****" in result["raw_headers"]["x-goog-api-key"]
|
||||
assert result["raw_headers"]["host"] == "localhost:4000"
|
||||
|
||||
def test_should_mask_azure_apim_subscription_key_header(self):
|
||||
secret_fields = {
|
||||
"raw_headers": {
|
||||
"Ocp-Apim-Subscription-Key": "abcdef1234567890abcdef1234567890",
|
||||
"host": "localhost:4000",
|
||||
}
|
||||
}
|
||||
result = _mask_secret_fields_for_logging(secret_fields)
|
||||
assert "****" in result["raw_headers"]["Ocp-Apim-Subscription-Key"]
|
||||
assert result["raw_headers"]["host"] == "localhost:4000"
|
||||
|
||||
def test_should_mask_short_auth_values(self):
|
||||
secret_fields = {
|
||||
"raw_headers": {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue