foobara-ollama-api 0.0.5 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b445a140cddac047b9ac07c2b88d71d1def1c4b07b7bf04bdbac7344ecc93f5c
4
- data.tar.gz: 9b7ad68ad39173fc747ec5fdb5a97efc293c9748779379f900c4c30efaae2ec4
3
+ metadata.gz: 5b62de6a2cd41b4603843e46edd52373ab818547b2a66aa7f30be5cbf9aca55e
4
+ data.tar.gz: 0bf2c96c770cee3165fb58247d3f3915da54632ef6d96fe373c27c16204f5a92
5
5
  SHA512:
6
- metadata.gz: a3c9a10fb5edbb60c1c6bb227c3e0854094381251e84242d19e531a452695b4a351962702400ed37dfb36e897dceef05b456ed9b57fc63a362a0b9132e5a3d5d
7
- data.tar.gz: 9d7796999662d865c3eeb2cb4bcdca186747cd5ae4c6acf0e67c29f1d6d64da79ef1eeab9184d3f9e069183fde8824b6b659cd046c1b3cbce37920710df67cfe
6
+ metadata.gz: 777092370034a9017251cfe316037a8830488a68f9d77abf08645dde2d988e625441bdbf5bf71094f5c80510ddf42b8f27ba834704bb3c5b21b74e14e69243f4
7
+ data.tar.gz: 5f64a8d67c63d35d27ecf6c54f97562bd40fec11cea73a5aaeb570b1e1c7a3459952a69467472bcfd85ec6cdbb32fc91fc466b74da8f69fade7fe714b5ace56b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [1.0.1] - 2025-07-21
2
+
3
+ - Add CachedCommand for List*Models commands like in AnthropicApi and OpenAiApi
4
+
5
+ ## [1.0.0] - 2025-07-09
6
+
7
+ - Add OllamaApi.default_llm_model
8
+
1
9
  ## [0.0.5] - 2025-06-27
2
10
 
3
11
  - Add temperature input to GenerateChatCompletion
@@ -7,3 +7,15 @@ require "foobara/http_api_command"
7
7
  require_relative "../../src/foobara/ai/ollama_api"
8
8
 
9
9
  Foobara::Util.require_directory "#{__dir__}/../../src"
10
+
11
+ module Foobara
12
+ module Ai
13
+ module OllamaApi
14
+ class << self
15
+ def reset_all
16
+ remove_instance_variable(:@default_llm_model) if instance_variable_defined?(:@default_llm_model)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,9 +1,15 @@
1
+ require "foobara/cached_command"
2
+
1
3
  require_relative "base_command"
2
4
 
3
5
  module Foobara
4
6
  module Ai
5
7
  module OllamaApi
6
8
  class ListLocalModels < BaseCommand
9
+ include CachedCommand
10
+
11
+ self.foobara_cache_expiry = 60 * 60
12
+
7
13
  result [Types::LocalModel]
8
14
 
9
15
  path "/tags"
@@ -1,9 +1,15 @@
1
+ require "foobara/cached_command"
2
+
1
3
  require_relative "base_command"
2
4
 
3
5
  module Foobara
4
6
  module Ai
5
7
  module OllamaApi
6
8
  class ListRunningModels < BaseCommand
9
+ include CachedCommand
10
+
11
+ self.foobara_cache_expiry = 60 * 60
12
+
7
13
  result [Types::RunningModel]
8
14
 
9
15
  path "/ps"
@@ -4,6 +4,30 @@ module Foobara
4
4
 
5
5
  module OllamaApi
6
6
  foobara_domain!
7
+
8
+ class << self
9
+ def default_llm_model
10
+ return @default_llm_model if @default_llm_model
11
+
12
+ require_relative "ollama_api/types/model_enum"
13
+
14
+ ["qwen3", "deepseek-r1", "llama3.3", "gemma3"].each do |model|
15
+ candidates = Types::ModelEnum.all_values.select do |model_name|
16
+ model_name.start_with?(model)
17
+ end
18
+
19
+ next if candidates.empty?
20
+
21
+ @default_llm_model = candidates.max_by do |candidate|
22
+ candidate[/:([\d.]+)([mkbt])\z/, 1].to_f
23
+ end
24
+
25
+ return @default_llm_model
26
+ end
27
+
28
+ Types::ModelEnum.all_values.first
29
+ end
30
+ end
7
31
  end
8
32
  end
9
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foobara-ollama-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Georgi
@@ -10,19 +10,39 @@ cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: foobara-http-api-command
13
+ name: foobara-cached-command
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '0'
18
+ version: 1.0.0
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: 2.0.0
19
22
  type: :runtime
20
23
  prerelease: false
21
24
  version_requirements: !ruby/object:Gem::Requirement
22
25
  requirements:
23
26
  - - ">="
24
27
  - !ruby/object:Gem::Version
25
- version: '0'
28
+ version: 1.0.0
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: 2.0.0
32
+ - !ruby/object:Gem::Dependency
33
+ name: foobara-http-api-command
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - "<"
37
+ - !ruby/object:Gem::Version
38
+ version: 2.0.0
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: 2.0.0
26
46
  email:
27
47
  - azimux@gmail.com
28
48
  executables: []