Pass litellm proxy specific metadata

This commit is contained in:
Ishaan Jaff 2024-07-23 15:31:30 -07:00
parent 4c1ee1e282
commit a71b60d005
4 changed files with 13 additions and 1 deletions

View file

@ -385,6 +385,11 @@ class AnthropicConfig:
if "user_id" in anthropic_message_request["metadata"]: if "user_id" in anthropic_message_request["metadata"]:
new_kwargs["user"] = anthropic_message_request["metadata"]["user_id"] new_kwargs["user"] = anthropic_message_request["metadata"]["user_id"]
# Pass litellm proxy specific metadata
if "litellm_metadata" in anthropic_message_request:
# metadata will be passed to litellm.acompletion(), it's a litellm_param
new_kwargs["metadata"] = anthropic_message_request.pop("litellm_metadata")
## CONVERT TOOL CHOICE ## CONVERT TOOL CHOICE
if "tool_choice" in anthropic_message_request: if "tool_choice" in anthropic_message_request:
new_kwargs["tool_choice"] = self.translate_anthropic_tool_choice_to_openai( new_kwargs["tool_choice"] = self.translate_anthropic_tool_choice_to_openai(

View file

@ -39,6 +39,9 @@ def _get_metadata_variable_name(request: Request) -> str:
""" """
if "thread" in request.url.path or "assistant" in request.url.path: if "thread" in request.url.path or "assistant" in request.url.path:
return "litellm_metadata" return "litellm_metadata"
if "/v1/messages" in request.url.path:
# anthropic API has a field called metadata
return "litellm_metadata"
else: else:
return "metadata" return "metadata"

View file

@ -1,4 +1,4 @@
from typing import Iterable, List, Optional, Union from typing import Any, Dict, Iterable, List, Optional, Union
from pydantic import BaseModel, validator from pydantic import BaseModel, validator
from typing_extensions import Literal, Required, TypedDict from typing_extensions import Literal, Required, TypedDict
@ -113,6 +113,9 @@ class AnthropicMessagesRequest(TypedDict, total=False):
top_k: int top_k: int
top_p: float top_p: float
# litellm param - used for tracking litellm proxy metadata in the request
litellm_metadata: dict
class ContentTextBlockDelta(TypedDict): class ContentTextBlockDelta(TypedDict):
""" """

View file

@ -436,6 +436,7 @@ class ChatCompletionRequest(TypedDict, total=False):
function_call: Union[str, dict] function_call: Union[str, dict]
functions: List functions: List
user: str user: str
metadata: dict # litellm specific param
class ChatCompletionDeltaChunk(TypedDict, total=False): class ChatCompletionDeltaChunk(TypedDict, total=False):