Merge pull request #4086 from BerriAI/litellm_sdk_tool_calling_fic

[Fix] Litellm sdk - allow ChatCompletionMessageToolCall, and Function to be used as dict
This commit is contained in:
Ishaan Jaff 2024-06-08 20:48:54 -07:00 committed by GitHub
commit 39bbc5d8ac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 32 additions and 2 deletions

View file

@ -366,8 +366,6 @@ class OpenTelemetry(CustomLogger):
) )
message = choice.get("message") message = choice.get("message")
if not isinstance(message, dict):
message = message.dict()
tool_calls = message.get("tool_calls") tool_calls = message.get("tool_calls")
if tool_calls: if tool_calls:
span.set_attribute( span.set_attribute(

View file

@ -326,6 +326,22 @@ class Function(OpenAIObject):
super(Function, self).__init__(**data) super(Function, self).__init__(**data)
def __contains__(self, key):
# Define custom behavior for the 'in' operator
return hasattr(self, key)
def get(self, key, default=None):
# Custom .get() method to access attributes with a default value if the attribute doesn't exist
return getattr(self, key, default)
def __getitem__(self, key):
# Allow dictionary-style access to attributes
return getattr(self, key)
def __setitem__(self, key, value):
# Allow dictionary-style assignment of attributes
setattr(self, key, value)
class ChatCompletionDeltaToolCall(OpenAIObject): class ChatCompletionDeltaToolCall(OpenAIObject):
id: Optional[str] = None id: Optional[str] = None
@ -385,6 +401,22 @@ class ChatCompletionMessageToolCall(OpenAIObject):
else: else:
self.type = "function" self.type = "function"
def __contains__(self, key):
# Define custom behavior for the 'in' operator
return hasattr(self, key)
def get(self, key, default=None):
# Custom .get() method to access attributes with a default value if the attribute doesn't exist
return getattr(self, key, default)
def __getitem__(self, key):
# Allow dictionary-style access to attributes
return getattr(self, key)
def __setitem__(self, key, value):
# Allow dictionary-style assignment of attributes
setattr(self, key, value)
class Message(OpenAIObject): class Message(OpenAIObject):
def __init__( def __init__(