Module: Legion::Extensions::Llm::Mlx::Provider::Capabilities

Defined in:
lib/legion/extensions/llm/mlx/provider.rb

Overview

Conservative capability predicates for local MLX OpenAI-compatible servers.

Class Method Summary collapse

Class Method Details

.chat?(model) ⇒ Boolean

Returns:

  • (Boolean)


25
# File 'lib/legion/extensions/llm/mlx/provider.rb', line 25

def chat?(model) = !embeddings?(model)

.critical_capabilities_for(model) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/legion/extensions/llm/mlx/provider.rb', line 31

def critical_capabilities_for(model)
  [
    ('streaming' if streaming?(model)),
    ('function_calling' if functions?(model)),
    ('vision' if vision?(model)),
    ('embeddings' if embeddings?(model))
  ].compact
end

.embeddings?(model) ⇒ Boolean

Returns:

  • (Boolean)


29
# File 'lib/legion/extensions/llm/mlx/provider.rb', line 29

def embeddings?(model) = model_id(model).match?(/embed|bge|e5|nomic/i)

.functions?(model) ⇒ Boolean

Returns:

  • (Boolean)


28
# File 'lib/legion/extensions/llm/mlx/provider.rb', line 28

def functions?(model) = chat?(model)

.model_id(model) ⇒ Object



40
41
42
# File 'lib/legion/extensions/llm/mlx/provider.rb', line 40

def model_id(model)
  model.respond_to?(:id) ? model.id.to_s : model.to_s
end

.streaming?(model) ⇒ Boolean

Returns:

  • (Boolean)


26
# File 'lib/legion/extensions/llm/mlx/provider.rb', line 26

def streaming?(model) = chat?(model)

.vision?(model) ⇒ Boolean

Returns:

  • (Boolean)


27
# File 'lib/legion/extensions/llm/mlx/provider.rb', line 27

def vision?(model) = model_id(model).match?(/vlm|vision|llava|pixtral|qwen.*vl/i)