ReqLLM.ModelHelpers (ReqLLM v1.4.0)

View Source

Helper 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

chat?(model)

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

json_native?(model)

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

json_schema?(model)

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

json_strict?(model)

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_helpers()

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?, ...]

reasoning_enabled?(model)

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

streaming_text?(model)

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

streaming_tool_calls?(model)

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

tools_enabled?(model)

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

tools_parallel?(model)

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

tools_streaming?(model)

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

tools_strict?(model)

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