diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 944bfe62d..10b40321e 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -616,7 +616,7 @@ def load_router_config(router: Optional[litellm.Router], config_file_path: str): router = litellm.Router(**router_params) # type:ignore return router, model_list, general_settings -async def generate_key_helper_fn(duration: Optional[str], models: list, aliases: dict, config: dict, spend: float, token: Optional[str]=None, user_id: Optional[str]=None, max_parallel_requests: Optional[int]=None): +async def generate_key_helper_fn(duration: Optional[str], models: list, aliases: dict, config: dict, spend: float, token: Optional[str]=None, user_id: Optional[str]=None, max_parallel_requests: Optional[int]=None, metadata: Optional[dict] = {}): global prisma_client if prisma_client is None: @@ -653,6 +653,7 @@ async def generate_key_helper_fn(duration: Optional[str], models: list, aliases: aliases_json = json.dumps(aliases) config_json = json.dumps(config) + metadata_json = json.dumps(metadata) user_id = user_id or str(uuid.uuid4()) try: # Create a new verification token (you may want to enhance this logic based on your needs) @@ -664,7 +665,8 @@ async def generate_key_helper_fn(duration: Optional[str], models: list, aliases: "config": config_json, "spend": spend, "user_id": user_id, - "max_parallel_requests": max_parallel_requests + "max_parallel_requests": max_parallel_requests, + "metadata": metadata_json } new_verification_token = await prisma_client.insert_data(data=verification_token_data) except Exception as e: @@ -1141,6 +1143,7 @@ async def generate_key_fn(request: Request, data: GenerateKeyRequest, Authorizat - config: Optional[dict] - any key-specific configs, overrides config in config.yaml - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by proxy whenever key is used. https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. + - metadata: Optional[dict] - Metadata for key, store information for key. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } Returns: - key: (str) The generated api key