last_llm 0.0.7 → 0.0.8

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: c45436277c2f585b851688ade72bbd838d33f0c51b0792942e56734e534a9a2e
4
- data.tar.gz: 0ad94566719d472ccfcea83cb5bce21cd4142df80b2ffdda0f139ff561d6c9d8
3
+ metadata.gz: 983949d3871bfea9ea6f3ba9de2e4b6518e2c903bdc56bb1aab06e6806e7aa3d
4
+ data.tar.gz: 9791ff7a8032f03fafa7c03b3bb9d7e9b96f7c0cd6f2058ed8d516428980312d
5
5
  SHA512:
6
- metadata.gz: c77932637b424601a950f6ad655c3886773be3b9880f4ce5607d4af18f0036876dd9463c973f64628c1a97ef50d73b56af9d6cd7f492144da164177dc628d4dc
7
- data.tar.gz: 51709ae9cfee0d6047b5076ca0926f6395ebae1cbaa7c3b6621787dca86e8f0ff3a5d3e5f44a1d1038315effeae118b32352b963ae12f23fdd43c7356b99ca1e
6
+ metadata.gz: 85ea7e0e96a5d68c6a9bb0d11ada4743f2e0dfb989878f350221e396713af63c941227c1a14bb650090f0cf69e1bc98654cf3a1c10f7fca1cbc2e993d49a6834
7
+ data.tar.gz: cb9ffed13031e7ba99c309e2816d040a4a09078ac19953eb2a764d814700b046a3b575fd24a43fefc9079a636f18e7f1ae8a4af68c0ecfb2400f858eb4565cc4
@@ -49,6 +49,7 @@ module LastLLM
49
49
  max_retries: 3,
50
50
  retry_delay: 1
51
51
  }
52
+ @provider_configs = {}
52
53
  end
53
54
 
54
55
  # Configure a provider with specific settings
@@ -56,23 +57,46 @@ module LastLLM
56
57
  # @param config [Hash] Provider-specific configuration
57
58
  # @return [Hash] The updated provider configuration
58
59
  def configure_provider(provider, config = {})
59
- @providers[provider] ||= {}
60
- @providers[provider].merge!(config)
60
+ provider_sym = provider.to_sym
61
+ @providers[provider_sym] ||= {}
62
+ @providers[provider_sym].merge!(config)
63
+
64
+ # Also update @provider_configs to maintain consistency
65
+ @provider_configs ||= {}
66
+ @provider_configs[provider_sym] ||= {}
67
+ @provider_configs[provider_sym].merge!(config)
61
68
  end
62
69
 
63
70
  # Get provider configuration
64
71
  # @param provider [Symbol] The provider name
65
72
  # @return [Hash] The provider configuration
66
73
  def provider_config(provider)
67
- config = @providers[provider] || {}
74
+ provider_sym = provider.to_sym
75
+ config = @provider_configs&.dig(provider_sym) || @providers[provider_sym] || {}
68
76
  # Ensure skip_validation is set when in test mode
69
77
  config = config.dup
70
78
  config[:skip_validation] = true if @test_mode
71
79
  config
72
80
  end
73
81
 
82
+ # Set configuration value for a specific provider
83
+ def set_provider_config(provider, key, value)
84
+ @provider_configs ||= {}
85
+ provider_sym = provider.to_sym
86
+ @provider_configs[provider_sym] ||= {}
87
+ @provider_configs[provider_sym][key.to_sym] = value
88
+ end
89
+
90
+ # Get provider configuration value
91
+ def get_provider_config(provider, key = nil)
92
+ @provider_configs ||= {}
93
+ provider_config = @provider_configs[provider.to_sym] || {}
94
+ return provider_config if key.nil?
95
+
96
+ provider_config[key.to_sym]
97
+ end
98
+
74
99
  # Check if running in test mode
75
- # @return [Boolean] Whether in test mode
76
100
  def test_mode?
77
101
  @test_mode
78
102
  end
@@ -89,7 +113,9 @@ module LastLLM
89
113
  config = provider_config(provider)
90
114
 
91
115
  validation[:required]&.each do |key|
92
- raise ConfigurationError, "#{key.to_s.gsub('_', ' ')} is required for #{provider} provider" unless config[key]
116
+ unless config[key.to_sym]
117
+ raise ConfigurationError, "#{key.to_s.gsub('_', ' ')} is required for #{provider} provider"
118
+ end
93
119
  end
94
120
 
95
121
  return unless validation[:custom]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LastLLM
4
- VERSION = '0.0.7'
4
+ VERSION = '0.0.8'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: last_llm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Obukwelu