Skip to content

vllm.entrypoints.serve.utils.tool_calls_utils

Functions:

maybe_filter_parallel_tool_calls(item, request)

Filter to first tool call only when parallel_tool_calls is explicitly False.

Source code in vllm/entrypoints/serve/utils/tool_calls_utils.py
def maybe_filter_parallel_tool_calls(
    item: _ToolCallsContainerT,
    request: ChatCompletionRequest | ResponsesRequest,
) -> _ToolCallsContainerT:
    """Filter to first tool call only when parallel_tool_calls is explicitly False."""
    if request.parallel_tool_calls is not False:
        return item

    if isinstance(item, list):
        return item[:1]
    if isinstance(item, ChatCompletionResponseChoice):
        if item.message.tool_calls:
            item.message.tool_calls = item.message.tool_calls[:1]
        return item

    delta = item.delta if isinstance(item, ChatCompletionResponseStreamChoice) else item
    if delta.tool_calls:
        delta.tool_calls = [
            tool_call for tool_call in delta.tool_calls if tool_call.index == 0
        ]
    return item