Class: Legion::Extensions::Llm::Ollama::Provider

Inherits:
LexLLM::Provider
  • Object
show all
Defined in:
lib/legion/extensions/llm/ollama/provider.rb

Overview

Ollama provider implementation for the LexLLM base provider contract.

Defined Under Namespace

Modules: Capabilities

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.capabilitiesObject



17
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 17

def capabilities = Capabilities

.configuration_optionsObject



15
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 15

def configuration_options = %i[ollama_api_base ollama_keep_alive]

.configuration_requirementsObject



16
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 16

def configuration_requirements = []

.local?Boolean

Returns:

  • (Boolean)


14
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 14

def local? = true

.slugObject



13
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 13

def slug = 'ollama'

Instance Method Details

#api_baseObject



31
32
33
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 31

def api_base
  config.ollama_api_base || 'http://localhost:11434'
end

#completion_urlObject



35
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 35

def completion_url = '/api/chat'

#embedding_urlObject



40
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 40

def embedding_url(**) = '/api/embed'

#list_running_modelsObject



44
45
46
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 44

def list_running_models
  connection.get(running_models_url).body.fetch('models', [])
end

#models_urlObject



37
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 37

def models_url = '/api/tags'

#pull_model(model, stream: false) ⇒ Object



52
53
54
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 52

def pull_model(model, stream: false)
  connection.post(pull_url, { model: model, stream: stream }).body
end

#pull_urlObject



41
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 41

def pull_url = '/api/pull'

#running_models_urlObject



38
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 38

def running_models_url = '/api/ps'

#show_model(model) ⇒ Object



48
49
50
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 48

def show_model(model)
  connection.post(show_model_url, { model: model }).body
end

#show_model_urlObject



39
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 39

def show_model_url = '/api/show'

#stream_urlObject



36
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 36

def stream_url = '/api/chat'

#version_urlObject



42
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 42

def version_url = '/api/version'