Class: Legion::Extensions::Llm::Ollama::Provider
- Inherits:
-
LexLLM::Provider
- Object
- LexLLM::Provider
- Legion::Extensions::Llm::Ollama::Provider
- 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
- .capabilities ⇒ Object
- .configuration_options ⇒ Object
- .configuration_requirements ⇒ Object
- .local? ⇒ Boolean
- .slug ⇒ Object
Instance Method Summary collapse
- #api_base ⇒ Object
- #completion_url ⇒ Object
- #embedding_url ⇒ Object
- #list_running_models ⇒ Object
- #models_url ⇒ Object
- #pull_model(model, stream: false) ⇒ Object
- #pull_url ⇒ Object
- #running_models_url ⇒ Object
- #show_model(model) ⇒ Object
- #show_model_url ⇒ Object
- #stream_url ⇒ Object
- #version_url ⇒ Object
Class Method Details
.capabilities ⇒ Object
17 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 17 def capabilities = Capabilities |
.configuration_options ⇒ Object
15 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 15 def = %i[ollama_api_base ollama_keep_alive] |
.configuration_requirements ⇒ Object
16 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 16 def configuration_requirements = [] |
.local? ⇒ Boolean
14 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 14 def local? = true |
.slug ⇒ Object
13 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 13 def slug = 'ollama' |
Instance Method Details
#api_base ⇒ Object
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_url ⇒ Object
35 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 35 def completion_url = '/api/chat' |
#embedding_url ⇒ Object
40 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 40 def (**) = '/api/embed' |
#list_running_models ⇒ Object
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_url ⇒ Object
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_url ⇒ Object
41 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 41 def pull_url = '/api/pull' |
#running_models_url ⇒ Object
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_url ⇒ Object
39 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 39 def show_model_url = '/api/show' |
#stream_url ⇒ Object
36 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 36 def stream_url = '/api/chat' |
#version_url ⇒ Object
42 |
# File 'lib/legion/extensions/llm/ollama/provider.rb', line 42 def version_url = '/api/version' |