From 81078c400439b650e957f09732feae1c3032a4fe Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Thu, 21 Dec 2023 13:03:14 +0530 Subject: [PATCH] fix(proxy/utils.py): jsonify object before db writes --- litellm/proxy/proxy_server.py | 1 - litellm/proxy/utils.py | 14 +++++++++++--- litellm/tests/langfuse.log | 4 ---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 10b40321e..296d8e576 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -1169,7 +1169,6 @@ async def update_key_fn(request: Request, data: UpdateKeyRequest): raise Exception("Not connected to DB!") non_default_values = {k: v for k, v in data_json.items() if v is not None} - print(f"non_default_values: {non_default_values}") response = await prisma_client.update_data(token=key, data={**non_default_values, "token": key}) return {"key": key, **non_default_values} # update based on remaining passed in values diff --git a/litellm/proxy/utils.py b/litellm/proxy/utils.py index 938508bcc..52a2fb6aa 100644 --- a/litellm/proxy/utils.py +++ b/litellm/proxy/utils.py @@ -1,5 +1,5 @@ from typing import Optional, List, Any, Literal -import os, subprocess, hashlib, importlib, asyncio, copy +import os, subprocess, hashlib, importlib, asyncio, copy, json import litellm, backoff from litellm.proxy._types import UserAPIKeyAuth from litellm.caching import DualCache @@ -147,6 +147,14 @@ class PrismaClient: return hashed_token + def jsonify_object(self, data: dict) -> dict: + db_data = copy.deepcopy(data) + + for k, v in db_data.items(): + if isinstance(v, dict): + db_data[k] = json.dumps(v) + return db_data + @backoff.on_exception( backoff.expo, Exception, # base exception to catch for the backoff @@ -193,7 +201,7 @@ class PrismaClient: try: token = data["token"] hashed_token = self.hash_token(token=token) - db_data = copy.deepcopy(data) + db_data = self.jsonify_object(data=data) db_data["token"] = hashed_token new_verification_token = await self.db.litellm_verificationtoken.upsert( # type: ignore @@ -228,7 +236,7 @@ class PrismaClient: if token.startswith("sk-"): token = self.hash_token(token=token) - db_data = copy.deepcopy(data) + db_data = self.jsonify_object(data=data) db_data["token"] = token response = await self.db.litellm_verificationtoken.update( where={ diff --git a/litellm/tests/langfuse.log b/litellm/tests/langfuse.log index 58cdb5267..e69de29bb 100644 --- a/litellm/tests/langfuse.log +++ b/litellm/tests/langfuse.log @@ -1,4 +0,0 @@ -uploading batch of 2 items -successfully uploaded batch of 2 items -uploading batch of 2 items -successfully uploaded batch of 2 items