easydel.inference.tools.parsers.internlm2_tool_parser#
- class easydel.inference.tools.parsers.internlm2_tool_parser.Internlm2ToolParser(tokenizer: AutoTokenizer)[source]#
Bases:
ToolParserTool parser for InternLM2 models.
Handles action/plugin calls with special tokens: <|action_start|><|plugin|>{…}<|action_end|>
Features: - Position-based streaming parser - Supports both ‘parameters’ and ‘arguments’ fields - Adjusts request settings for special tokens - Handles partial JSON with incremental diff extraction
The parser maintains a cursor position to track progress through the output stream and properly handle action boundaries.
- adjust_request(request: ChatCompletionRequest) ChatCompletionRequest[source]#
Adjust request parameters for model-specific requirements.
Override this method to modify request parameters like system prompts, tool definitions, or formatting before processing. Default implementation returns the request unchanged.
- Parameters
request – Original chat completion request
- Returns
Potentially modified request
- Return type
Example
Some models may need to reformat tool definitions or add specific system instructions for proper tool calling.
- extract_tool_calls(model_output: str, request: ChatCompletionRequest) ExtractedToolCallInformation[source]#
Extract tool calls from complete model output (batch mode).
Parses the entire model response to identify and extract tool/function calls. This method is used for non-streaming responses where the complete output is available.
- Parameters
model_output – Complete text generated by the model
request – Original request containing tool definitions
- Returns
Parsed tool calls and remaining content
- Return type
- Raises
NotImplementedError – Must be implemented by subclasses
Note
This method is stateless - it doesn’t use instance state. Each parser implements model-specific extraction logic.
- extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int], current_token_ids: Sequence[int], delta_token_ids: Sequence[int], request: ChatCompletionRequest) easydel.inference.openai_api_modules.DeltaMessage | None[source]#
Extract tool calls from streaming model output.
Processes incremental model output to identify partial tool calls and emit appropriate streaming updates. Maintains state across calls to handle incomplete JSON/XML structures.
- Parameters
previous_text – Text accumulated up to previous call
current_text – Text accumulated including current chunk
delta_text – New text in current chunk
previous_token_ids – Token IDs up to previous call
current_token_ids – Token IDs including current chunk
delta_token_ids – New token IDs in current chunk
request – Original request with tool definitions
- Returns
Incremental tool call update, or None if no update
- Return type
- Raises
NotImplementedError – Must be implemented by subclasses
Note
This method is stateful - it uses instance variables to track parsing progress across streaming chunks.