From 680701850f59c8db3fba64bcc57443411a1aa814 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Sat, 30 Nov 2024 15:59:39 -0800 Subject: [PATCH] fix(key_management_endpoints.py): handle prepare metadata --- .../proxy/management_endpoints/key_management_endpoints.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/litellm/proxy/management_endpoints/key_management_endpoints.py b/litellm/proxy/management_endpoints/key_management_endpoints.py index eaf12e795..018c05664 100644 --- a/litellm/proxy/management_endpoints/key_management_endpoints.py +++ b/litellm/proxy/management_endpoints/key_management_endpoints.py @@ -459,7 +459,10 @@ def prepare_metadata_fields( Check LiteLLM_ManagementEndpoint_MetadataFields (proxy/_types.py) for fields that are allowed to be updated """ non_default_values.setdefault("metadata", {}) - non_default_values["metadata"].update(existing_metadata) + if non_default_values["metadata"] is None: + non_default_values["metadata"] = existing_metadata + else: + non_default_values["metadata"].update(existing_metadata) data_json = data.model_dump(exclude_unset=True) try: @@ -474,7 +477,7 @@ def prepare_metadata_fields( non_default_values["metadata"][k] = [] seen = set(non_default_values["metadata"][k]) non_default_values["metadata"][k].extend( - x for x in v if x not in seen and not seen.add(x) + x for x in v if x not in seen and not seen.add(x) # type: ignore ) # prevent duplicates from being added + maintain initial order except Exception as e: