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 +4 -4
- data/lib/last_llm/configuration.rb +31 -5
- data/lib/last_llm/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 983949d3871bfea9ea6f3ba9de2e4b6518e2c903bdc56bb1aab06e6806e7aa3d
|
4
|
+
data.tar.gz: 9791ff7a8032f03fafa7c03b3bb9d7e9b96f7c0cd6f2058ed8d516428980312d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
60
|
-
@providers[
|
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
|
-
|
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
|
-
|
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]
|
data/lib/last_llm/version.rb
CHANGED