Central registry for ToolParser implementations.
Supports two modes:
- Eager (immediate) registration via
register_module - Lazy registration via
register_lazy_module
Summary
Functions
Import and register a lazily loaded parser.
Register a ToolParser class immediately.
Retrieve a registered or lazily registered ToolParser class.
Import a user-defined parser file from arbitrary path.
Return names of all eagerly and lazily registered tool parsers.
Initialize self. See help(type(self)) for accurate signature.
Register a lazy module mapping.
Register module immediately or lazily (as a decorator).
Types
Functions
@spec _load_lazy_parser(SnakeBridge.Ref.t(), String.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()}
Import and register a lazily loaded parser.
Parameters
name(String.t())
Returns
term()
@spec _register_module(SnakeBridge.Ref.t(), term(), [term()], keyword()) :: {:ok, nil} | {:error, Snakepit.Error.t()}
Register a ToolParser class immediately.
Parameters
module(term())module_name(term() default: None)force(boolean() default: True)
Returns
nil
@spec get_tool_parser(SnakeBridge.Ref.t(), String.t(), keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()}
Retrieve a registered or lazily registered ToolParser class.
If the parser is lazily registered, it will be imported and cached on first access. Raises KeyError if not found.
Parameters
name(String.t())
Returns
term()
@spec import_tool_parser(SnakeBridge.Ref.t(), String.t(), keyword()) :: {:ok, nil} | {:error, Snakepit.Error.t()}
Import a user-defined parser file from arbitrary path.
Parameters
plugin_path(String.t())
Returns
nil
@spec lazy_parsers(SnakeBridge.Ref.t()) :: {:ok, term()} | {:error, Snakepit.Error.t()}
@spec list_registered( SnakeBridge.Ref.t(), keyword() ) :: {:ok, [String.t()]} | {:error, Snakepit.Error.t()}
Return names of all eagerly and lazily registered tool parsers.
Returns
list(String.t())
@spec new( [term()], keyword() ) :: {:ok, SnakeBridge.Ref.t()} | {:error, Snakepit.Error.t()}
Initialize self. See help(type(self)) for accurate signature.
Parameters
args(term())kwargs(term())
@spec register_lazy_module( SnakeBridge.Ref.t(), String.t(), String.t(), String.t(), keyword() ) :: {:ok, nil} | {:error, Snakepit.Error.t()}
Register a lazy module mapping.
Examples
ToolParserManager.register_lazy_module(
name="kimi_k2",
module_path="vllm.tool_parsers.kimi_k2_parser",
class_name="KimiK2ToolParser",
)Parameters
name(String.t())module_path(String.t())class_name(String.t())
Returns
nil
@spec register_module(SnakeBridge.Ref.t(), [term()], keyword()) :: {:ok, term()} | {:error, Snakepit.Error.t()}
Register module immediately or lazily (as a decorator).
Usage:
@ToolParserManager.register_module("kimi_k2")
class KimiK2ToolParser(ToolParser):
...Or:
ToolParserManager.register_module(module=SomeToolParser)Parameters
name(term() default: None)force(boolean() default: True)module(term() default: None)
Returns
term()
@spec tool_parsers(SnakeBridge.Ref.t()) :: {:ok, term()} | {:error, Snakepit.Error.t()}