foobara-ai 0.0.5 → 0.0.7

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: ac867a51c46b2b89c3dc90dba0584d0c78d9a3aa480a249cd45828abb5baccc5
4
- data.tar.gz: c727dff343804bafbb0a300274a80780b4717e89e98441f77ba1aa3516c392fd
3
+ metadata.gz: 2cf7c8f4de4993afb316ca3187bdc4372346b0743da3ed98b9fa7d4779538ffe
4
+ data.tar.gz: 3f6d6eeb012a70d8faf1f2327ec170e0c99ee6f1dab48c8c0fd5b958ff902f06
5
5
  SHA512:
6
- metadata.gz: 7f6af8aa55bcfdd3b289729e7c31dbb3e2fb5a35cb11d05c9cf633e9d985d015d0f8ae080deec313bdfc85fc1f33111de15052e1175bb6f09922e6b734474be7
7
- data.tar.gz: e3034cc9ff62eaafe2d12a9ce7a148e1389d001363c3050937f656b2d8720c4492a48e2d36df10a001a3ad2003948cbb301fd06707f798090af2f81dfb56142a
6
+ metadata.gz: 55f47ea5885ae3f62ebbb456b27725cbc7572c8dbfeb4eeb8242e1a3c7b4c39577e0b08bd62c6ce19b706b9f1b9bf332418a39d02b9684e89960c0c31f5e14da
7
+ data.tar.gz: 15b66c3c34b6b316a5aa18936abff18a3a439ce9f9de6aaed957b180a71a0abd1e5bf0e18393986a1d2dd7ed201de6c3e535ff1fd92843cbc457dd6da00745f7
data/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- ## [0.0.5] - 2025-03-04
1
+ ## [0.0.7] - 2025-03-04
2
2
 
3
3
  - Do not require all 3 services to function. Let user require which services they want to use.
4
4
 
data/lib/foobara/ai.rb CHANGED
@@ -7,31 +7,35 @@ module Foobara
7
7
  module AnswerBot
8
8
  foobara_domain!
9
9
 
10
- base_dir = "#{__dir__}/../../src/foobara/ai/answer_bot"
11
- Util.require_directory "#{base_dir}/types"
12
- Dir["#{base_dir}/domain_mappers/*.rb"].each { |f| require f }
13
- Dir["#{base_dir}/*.rb"].each { |f| require f }
10
+ require_relative "../../src/foobara/ai/answer_bot/types/service_enum"
14
11
 
15
12
  ai_services = {}
16
13
 
17
- Types::ServiceEnum.all_values.each do |service|
18
- domain = case service
19
- when Types::ServiceEnum::OPEN_AI
20
- OpenAiApi
21
- when Types::ServiceEnum::ANTHROPIC
22
- AnthropicApi
23
- when Types::ServiceEnum::OLLAMA
24
- OllamaApi
25
- end
26
-
27
- ai_services[service] = domain
28
- foobara_depends_on domain
14
+ if defined?(Foobara::Ai::OpenAiApi)
15
+ ai_services[Types::ServiceEnum::OPEN_AI] = OpenAiApi
16
+ end
17
+ if defined?(Foobara::Ai::AnthropicApi)
18
+ ai_services[Types::ServiceEnum::ANTHROPIC] = AnthropicApi
19
+ end
20
+ if defined?(Foobara::Ai::OllamaApi)
21
+ ai_services[Types::ServiceEnum::OLLAMA] = OllamaApi
22
+ end
29
23
 
30
- path = Util.underscore(domain.foobara_domain_name)
31
- Util.require_directory "#{__dir__}/../../src/foobara/ai/answer_bot/domain_mappers/#{path}"
24
+ ai_services.each_value do |domain|
25
+ foobara_depends_on domain
32
26
  end
33
27
 
34
28
  AI_SERVICES = ai_services
29
+
30
+ base_dir = "#{__dir__}/../../src/foobara/ai/answer_bot"
31
+ Util.require_directory "#{base_dir}/types"
32
+ Dir["#{base_dir}/domain_mappers/*.rb"].each { |f| require f }
33
+ Dir["#{base_dir}/*.rb"].each { |f| require f }
34
+
35
+ AI_SERVICES.each_value do |domain|
36
+ path = Util.underscore(domain.foobara_domain_name)
37
+ Util.require_directory "#{base_dir}/domain_mappers/#{path}"
38
+ end
35
39
  end
36
40
  end
37
41
  end
@@ -1,3 +1,4 @@
1
+ require_relative "types/service_enum"
1
2
  require_relative "types/model"
2
3
 
3
4
  module Foobara
@@ -8,11 +9,13 @@ module Foobara
8
9
 
9
10
  result [Types::Model]
10
11
 
11
- LIST_COMMANDS = [
12
- OpenAiApi::ListModels,
13
- AnthropicApi::ListModels,
14
- OllamaApi::ListLocalModels
15
- ].freeze
12
+ LIST_COMMANDS = AI_SERVICES.values.map do |domain|
13
+ if domain == OllamaApi
14
+ OllamaApi::ListLocalModels
15
+ else
16
+ domain::ListModels
17
+ end
18
+ end
16
19
 
17
20
  depends_on(*LIST_COMMANDS)
18
21
 
@@ -2,11 +2,11 @@ module Foobara
2
2
  module Ai
3
3
  module AnswerBot
4
4
  module Types
5
- services = []
6
-
7
- services << "open-ai" if defined?(Foobara::Ai::OpenAiApi)
8
- services << "anthropic" if defined?(Foobara::Ai::AnthropicApi)
9
- services << "ollama" if defined?(Foobara::Ai::OllamaApi)
5
+ services = %w[
6
+ open-ai
7
+ anthropic
8
+ ollama
9
+ ]
10
10
 
11
11
  ServiceEnum = Foobara::Enumerated.make_module(services)
12
12
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foobara-ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Georgi