in aidial_adapter_vertexai/chat/tools.py [0:0]
def from_request(cls, request: AzureChatCompletionRequest) -> Self:
validate_messages(request)
if request.functions is not None:
functions = request.functions
function_call = request.function_call
tool_ids = None
elif request.tools is not None:
functions = [
tool.function
for tool in request.tools
if isinstance(tool, Tool)
]
function_call = ToolsConfig.tool_choice_to_function_call(
request.tool_choice
)
tool_ids = collect_tool_ids(request.messages)
else:
functions = []
function_call = None
tool_ids = None
if function_call is None:
function_call = "auto" if functions else "none"
required, selected = ToolsConfig.filter_functions(
function_call, functions
)
return cls(functions=selected, required=required, tool_ids=tool_ids)