Merge pull request #4599 from BerriAI/litellm_fix_setting_rpm_tpm

fix - setting rpm/tpm on proxy through admin ui
This commit is contained in:
Ishaan Jaff
2024-07-08 07:56:05 -07:00
committed by GitHub
2 changed files with 51 additions and 1 deletions
@@ -23,9 +23,11 @@ def encrypt_value_helper(value: str):
return encrypted_value
raise ValueError(
verbose_proxy_logger.debug(
f"Invalid value type passed to encrypt_value: {type(value)} for Value: {value}\n Value must be a string"
)
# if it's not a string - do not encrypt it and return the value
return value
except Exception as e:
raise e
@@ -42,6 +44,9 @@ def decrypt_value_helper(value: str):
decoded_b64 = base64.b64decode(value)
value = decrypt_value(value=decoded_b64, signing_key=signing_key) # type: ignore
return value
# if it's not str - do not decrypt it, return the value
return value
except Exception as e:
verbose_proxy_logger.error(f"Error decrypting value: {value}\nError: {str(e)}")
# [Non-Blocking Exception. - this should not block decrypting other values]
@@ -0,0 +1,45 @@
import os
import sys
import pytest
from dotenv import load_dotenv
load_dotenv()
import io
import os
sys.path.insert(
0, os.path.abspath("../..")
) # Adds-the parent directory to the system path
from litellm.proxy import proxy_server
from litellm.proxy.common_utils.encrypt_decrypt_utils import (
decrypt_value_helper,
encrypt_value_helper,
)
def test_encrypt_decrypt_with_master_key():
setattr(proxy_server, "master_key", "sk-1234")
assert decrypt_value_helper(encrypt_value_helper("test")) == "test"
assert decrypt_value_helper(encrypt_value_helper(10)) == 10
assert decrypt_value_helper(encrypt_value_helper(True)) is True
assert decrypt_value_helper(encrypt_value_helper(None)) is None
assert decrypt_value_helper(encrypt_value_helper({"rpm": 10})) == {"rpm": 10}
# encryption should actually occur for strings
assert encrypt_value_helper("test") != "test"
def test_encrypt_decrypt_with_salt_key():
os.environ["LITELLM_SALT_KEY"] = "sk-salt-key2222"
assert decrypt_value_helper(encrypt_value_helper("test")) == "test"
assert decrypt_value_helper(encrypt_value_helper(10)) == 10
assert decrypt_value_helper(encrypt_value_helper(True)) is True
assert decrypt_value_helper(encrypt_value_helper(None)) is None
assert decrypt_value_helper(encrypt_value_helper({"rpm": 10})) == {"rpm": 10}
# encryption should actually occur for strings
assert encrypt_value_helper("test") != "test"
os.environ.pop("LITELLM_SALT_KEY", None)