ReqLLM.ModelHelpers (ReqLLM v1.4.0)
View SourceHelper functions for querying LLMDB.Model capabilities.
Defines helper functions for common capability checks, centralizing knowledge of the model capability structure.
These helpers ensure consistency when checking model capabilities across the codebase and provide a single source of truth for capability access patterns.
Summary
Functions
Check if model has chat capability.
Check if model has json.native capability.
Check if model has json.schema capability.
Check if model has json.strict capability.
List all available capability helper functions.
Check if model has reasoning.enabled capability.
Check if model has streaming.text capability.
Check if model has streaming.tool_calls capability.
Check if model has tools.enabled capability.
Check if model has tools.parallel capability.
Check if model has tools.streaming capability.
Check if model has tools.strict capability.
Functions
Check if model has chat capability.
Returns true if model.capabilities.chat is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{chat: true}}
iex> ReqLLM.ModelHelpers.chat?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.chat?(model)
false
Check if model has json.native capability.
Returns true if model.capabilities.json.native is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{json: %{native: true}}}
iex> ReqLLM.ModelHelpers.json_native?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.json_native?(model)
false
Check if model has json.schema capability.
Returns true if model.capabilities.json.schema is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{json: %{schema: true}}}
iex> ReqLLM.ModelHelpers.json_schema?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.json_schema?(model)
false
Check if model has json.strict capability.
Returns true if model.capabilities.json.strict is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{json: %{strict: true}}}
iex> ReqLLM.ModelHelpers.json_strict?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.json_strict?(model)
false
List all available capability helper functions.
Useful for debugging and understanding what capabilities can be queried.
Examples
iex> ReqLLM.ModelHelpers.list_helpers()
[:chat?, :json_native?, :json_schema?, :json_strict?, :reasoning_enabled?, ...]
Check if model has reasoning.enabled capability.
Returns true if model.capabilities.reasoning.enabled is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{reasoning: %{enabled: true}}}
iex> ReqLLM.ModelHelpers.reasoning_enabled?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.reasoning_enabled?(model)
false
Check if model has streaming.text capability.
Returns true if model.capabilities.streaming.text is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{streaming: %{text: true}}}
iex> ReqLLM.ModelHelpers.streaming_text?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.streaming_text?(model)
false
Check if model has streaming.tool_calls capability.
Returns true if model.capabilities.streaming.tool_calls is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{streaming: %{tool_calls: true}}}
iex> ReqLLM.ModelHelpers.streaming_tool_calls?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.streaming_tool_calls?(model)
false
Check if model has tools.enabled capability.
Returns true if model.capabilities.tools.enabled is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{tools: %{enabled: true}}}
iex> ReqLLM.ModelHelpers.tools_enabled?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.tools_enabled?(model)
false
Check if model has tools.parallel capability.
Returns true if model.capabilities.tools.parallel is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{tools: %{parallel: true}}}
iex> ReqLLM.ModelHelpers.tools_parallel?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.tools_parallel?(model)
false
Check if model has tools.streaming capability.
Returns true if model.capabilities.tools.streaming is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{tools: %{streaming: true}}}
iex> ReqLLM.ModelHelpers.tools_streaming?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.tools_streaming?(model)
false
Check if model has tools.strict capability.
Returns true if model.capabilities.tools.strict is true.
Examples
iex> model = %LLMDB.Model{capabilities: %{tools: %{strict: true}}}
iex> ReqLLM.ModelHelpers.tools_strict?(model)
true
iex> model = %LLMDB.Model{capabilities: %{}}
iex> ReqLLM.ModelHelpers.tools_strict?(model)
false