mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-25 02:34:29 +00:00
Litellm dev 04 05 2025 p2 (#9774)
* test: move test to just checking async * fix(transformation.py): handle function call with no schema * fix(utils.py): handle pydantic base model in message tool calls Fix https://github.com/BerriAI/litellm/issues/9321 * fix(vertex_and_google_ai_studio.py): handle tools=[] Fixes https://github.com/BerriAI/litellm/issues/9080 * test: remove max token restriction * test: fix basic test * fix(get_supported_openai_params.py): fix check * fix(converse_transformation.py): support fake streaming for meta.llama3-3-70b-instruct-v1:0 * fix: fix test * fix: parse out empty dictionary on dbrx streaming + tool calls * fix(handle-'strict'-param-when-calling-fireworks-ai): fireworks ai does not support 'strict' param * fix: fix ruff check ' * fix: handle no strict in function * fix: revert bedrock change - handle in separate PR
This commit is contained in:
parent
d8f47fc9e5
commit
fcf17d114f
10 changed files with 214 additions and 11 deletions
|
@ -6112,6 +6112,8 @@ def validate_and_fix_openai_messages(messages: List):
|
|||
for message in messages:
|
||||
if not message.get("role"):
|
||||
message["role"] = "assistant"
|
||||
if message.get("tool_calls"):
|
||||
message["tool_calls"] = jsonify_tools(tools=message["tool_calls"])
|
||||
return validate_chat_completion_messages(messages=messages)
|
||||
|
||||
|
||||
|
@ -6705,3 +6707,20 @@ def return_raw_request(endpoint: CallTypes, kwargs: dict) -> RawRequestTypedDict
|
|||
return RawRequestTypedDict(
|
||||
error=received_exception,
|
||||
)
|
||||
|
||||
|
||||
def jsonify_tools(tools: List[Any]) -> List[Dict]:
|
||||
"""
|
||||
Fixes https://github.com/BerriAI/litellm/issues/9321
|
||||
|
||||
Where user passes in a pydantic base model
|
||||
"""
|
||||
new_tools: List[Dict] = []
|
||||
for tool in tools:
|
||||
if isinstance(tool, BaseModel):
|
||||
tool = tool.model_dump(exclude_none=True)
|
||||
elif isinstance(tool, dict):
|
||||
tool = tool.copy()
|
||||
if isinstance(tool, dict):
|
||||
new_tools.append(tool)
|
||||
return new_tools
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue