vllm_mlx.tool_parsers.functionary_tool_parser¶
Functionary tool call parser for vllm-mlx.
View the complete module source at #L1-L193.
API details¶
Each callable below includes its exact signature, type annotations, inputs, defaults, return contract, documented exceptions, implementation source, and parsed docstring sections when the source provides them.
vllm_mlx.tool_parsers.functionary_tool_parser
¶
Functionary tool call parser for vllm-mlx.
Handles MeetKai Functionary models' tool calling format. Similar to OpenAI function calling with JSON arguments.
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser
¶
Bases: ToolParser
Tool call parser for MeetKai Functionary models.
Supports Functionary's tool call format similar to OpenAI:
- Uses special tokens to mark tool calls
- Arguments are JSON strings
Formats supported:
- <|from|>assistant
<|recipient|>func_name
<|content|>{"args": ...}
-
Used when --enable-auto-tool-choice --tool-call-parser functionary are set.
Source code in vllm_mlx/tool_parsers/abstract_tool_parser.py
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.SUPPORTS_NATIVE_TOOL_FORMAT
class-attribute
instance-attribute
¶
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.RECIPIENT_PATTERN
class-attribute
instance-attribute
¶
RECIPIENT_PATTERN = re.compile('<\\|recipient\\|>\\s*(\\w+)\\s*\\n<\\|content\\|>\\s*(\\{.*?\\})(?=<\\||$)', re.DOTALL)
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.FUNCTION_PATTERN
class-attribute
instance-attribute
¶
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.JSON_ARRAY_PATTERN
class-attribute
instance-attribute
¶
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls
¶
extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -> ExtractedToolCallInformation
Extract tool calls from Functionary model output.
Source code in vllm_mlx/tool_parsers/functionary_tool_parser.py
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | |
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls_streaming
¶
extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -> dict[str, Any] | None
Extract tool calls from streaming Functionary model output.
Source code in vllm_mlx/tool_parsers/functionary_tool_parser.py
vllm_mlx.tool_parsers.functionary_tool_parser.generate_tool_id
¶
Complete contract reference¶
Expand any definition for its exact inputs, annotations, defaults, return contract, directly raised exceptions, source-grounded behavior, and immutable line link. This section includes private and nested definitions that ordinary API generators omit.
vllm_mlx.tool_parsers.functionary_tool_parser.generate_tool_id · function
Generate a unique tool call ID.
Parameters
This callable has no explicit inputs.
Returns
- Type:
str - Direct return expressions:
f'call_{uuid.uuid4().hex[:8]}'
Exceptions and behavior
Function generate_tool_id calls uuid.uuid4; returns f'call_{uuid.uuid4().hex[:8]}'.
No direct raise statement appears in this definition.
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser · class
Tool call parser for MeetKai Functionary models.
Parameters
This callable has no explicit inputs.
Returns
- Constructs:
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser
Exceptions and behavior
Class FunctionaryToolParser derives from ToolParser and declares 2 direct member(s).
No direct raise statement appears in this definition.
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls · method
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -> ExtractedToolCallInformation
Extract tool calls from Functionary model output.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
model_output |
str |
yes |
none |
Required positional or keyword input. |
request |
dict[str, Any] \| None |
no |
None |
Optional positional or keyword input; defaults to None. |
Returns
- Type:
ExtractedToolCallInformation - Direct return expressions:
ExtractedToolCallInformation(tools_called=True, tool_calls=tool_calls, content=cleaned_text if cleaned_text else None);ExtractedToolCallInformation(tools_called=False, tool_calls=[], content=model_output)
Exceptions and behavior
Method FunctionaryToolParser.extract_tool_calls calls self.RECIPIENT_PATTERN.findall, func_name.lower, json.loads, tool_calls.append; has 2 explicit return paths.
No direct raise statement appears in this definition.
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls_streaming · method
vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -> dict[str, Any] | None
Extract tool calls from streaming Functionary model output.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
previous_text |
str |
yes |
none |
Required positional or keyword input. |
current_text |
str |
yes |
none |
Required positional or keyword input. |
delta_text |
str |
yes |
none |
Required positional or keyword input. |
previous_token_ids |
Sequence[int] \| None |
no |
None |
Optional positional or keyword input; defaults to None. |
current_token_ids |
Sequence[int] \| None |
no |
None |
Optional positional or keyword input; defaults to None. |
delta_token_ids |
Sequence[int] \| None |
no |
None |
Optional positional or keyword input; defaults to None. |
request |
dict[str, Any] \| None |
no |
None |
Optional positional or keyword input; defaults to None. |
Returns
- Type:
dict[str, Any] | None - Direct return expressions:
{'content': delta_text};{'tool_calls': [{'index': i, 'id': tc['id'], 'type': 'function', 'function': {'name': tc['name'], 'arguments': tc['argu…;None
Exceptions and behavior
Method FunctionaryToolParser.extract_tool_calls_streaming calls any, self.extract_tool_calls, enumerate; has 3 explicit return paths.
No direct raise statement appears in this definition.
Complete symbol map¶
This map also includes private definitions and nested helpers. The signature column exposes every explicit input even when an internal helper has no dedicated parameter prose.
| Symbol | Kind | Signature and inputs | What it does | Source |
|---|---|---|---|---|
generate_tool_id |
function | generate_tool_id() -> str |
Generate a unique tool call ID. | #L22-L24 |
FunctionaryToolParser |
class | FunctionaryToolParser() |
Tool call parser for MeetKai Functionary models. | #L28-L193 |
FunctionaryToolParser.extract_tool_calls |
method | FunctionaryToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] \| None = None) -> ExtractedToolCallInformation |
Extract tool calls from Functionary model output. | #L61-L153 |
FunctionaryToolParser.extract_tool_calls_streaming |
method | FunctionaryToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] \| None = None, current_token_ids: Sequence[int] \| None = None, delta_token_ids: Sequence[int] \| None = None, request: dict[str, Any] \| None = None) -> dict[str, Any] \| None |
Extract tool calls from streaming Functionary model output. | #L155-L193 |