launchdarkly-server-sdk-ai 0.2.1 → 0.2.2
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/CHANGELOG.md +9 -0
- data/PROVENANCE.md +1 -1
- data/README.md +11 -0
- data/lib/launchdarkly-server-sdk-ai.rb +1 -0
- data/lib/server/ai/client.rb +34 -2
- data/lib/server/ai/sdk_info.rb +10 -0
- data/lib/server/ai/version.rb +1 -1
- metadata +2 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3ed5a6f605ce2c7970cbe5045fbd0b8700ab0cd6c62fe56a78ee49f155042dde
|
|
4
|
+
data.tar.gz: 91ae21b4e9b95bb3d0b87e266c420c7568ea91ad40a77d654eedfa900adc2099
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 176ba55618c6885959240a1900400e14d3d55a2896f7c768319b169ed6c8ff2f762fa2f066d913bac5c3e502775e089d81a4e92a583ace6f714fcb73fc607b4b
|
|
7
|
+
data.tar.gz: a49cde18e9d3d599a2b58a6174b9c3bb0eba1d320b766681b60d6e34651b8b8c86252be1f840a9fb8ad31b62ae4a3b1ccfd2ac953f4ca241f3bc4d3c69b97fea
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.2.2](https://github.com/launchdarkly/ruby-server-sdk-ai/compare/0.2.1...0.2.2) (2026-02-25)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* Deprecated config method, use completion_config ([#18](https://github.com/launchdarkly/ruby-server-sdk-ai/issues/18)) ([9f7ec17](https://github.com/launchdarkly/ruby-server-sdk-ai/commit/9f7ec178a87e0f1139c4445d4236cb5db296b0fa))
|
|
9
|
+
* Improve usage reporting ([#18](https://github.com/launchdarkly/ruby-server-sdk-ai/issues/18)) ([9f7ec17](https://github.com/launchdarkly/ruby-server-sdk-ai/commit/9f7ec178a87e0f1139c4445d4236cb5db296b0fa))
|
|
10
|
+
* Remove bundler version constraint from gemspec ([#20](https://github.com/launchdarkly/ruby-server-sdk-ai/issues/20)) ([ef18f32](https://github.com/launchdarkly/ruby-server-sdk-ai/commit/ef18f323d604b3b4d3ca8f913b66316def34042b))
|
|
11
|
+
|
|
3
12
|
## [0.2.1](https://github.com/launchdarkly/ruby-server-sdk-ai/compare/0.2.0...0.2.1) (2025-08-28)
|
|
4
13
|
|
|
5
14
|
|
data/PROVENANCE.md
CHANGED
data/README.md
CHANGED
|
@@ -7,6 +7,17 @@ LaunchDarkly Server SDK AI library for Ruby
|
|
|
7
7
|
[](https://www.rubydoc.info/gems/launchdarkly-server-sdk-ai)
|
|
8
8
|
[](https://launchdarkly.github.io/ruby-server-sdk-ai)
|
|
9
9
|
|
|
10
|
+
> [!CAUTION]
|
|
11
|
+
> This AI SDK is in pre-release and not subject to backwards compatibility guarantees. The API may change based on feedback.
|
|
12
|
+
>
|
|
13
|
+
> Pin to a specific minor version and review the [changelog] before upgrading.
|
|
14
|
+
>
|
|
15
|
+
> Active feature development is ongoing in the [Python][python-ai-sdk] and [Node.js][node-ai-sdk] AI SDKs, so this SDK will receive new features at a slower pace. Refer to those for the latest capabilities.
|
|
16
|
+
|
|
17
|
+
[changelog]: https://github.com/launchdarkly/ruby-server-sdk-ai/blob/main/CHANGELOG.md
|
|
18
|
+
[python-ai-sdk]: https://github.com/launchdarkly/python-server-sdk-ai/tree/main/packages/sdk/server-ai
|
|
19
|
+
[node-ai-sdk]: https://github.com/launchdarkly/js-core/tree/main/packages/sdk/server-ai
|
|
20
|
+
|
|
10
21
|
LaunchDarkly overview
|
|
11
22
|
-------------------------
|
|
12
23
|
[LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves trillions of feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/home/getting-started) using LaunchDarkly today!
|
data/lib/server/ai/client.rb
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
require 'ldclient-rb'
|
|
4
4
|
require 'mustache'
|
|
5
5
|
require_relative 'ai_config_tracker'
|
|
6
|
+
require_relative 'sdk_info'
|
|
6
7
|
|
|
7
8
|
module LaunchDarkly
|
|
8
9
|
#
|
|
@@ -127,6 +128,15 @@ module LaunchDarkly
|
|
|
127
128
|
#
|
|
128
129
|
# The Client class is the main entry point for the LaunchDarkly AI SDK.
|
|
129
130
|
#
|
|
131
|
+
TRACK_SDK_INFO = '$ld:ai:sdk:info'
|
|
132
|
+
TRACK_USAGE_COMPLETION_CONFIG = '$ld:ai:usage:completion-config'
|
|
133
|
+
|
|
134
|
+
INIT_TRACK_CONTEXT = LaunchDarkly::LDContext.create({
|
|
135
|
+
kind: 'ld_ai',
|
|
136
|
+
key: 'ld-internal-tracking',
|
|
137
|
+
anonymous: true,
|
|
138
|
+
})
|
|
139
|
+
|
|
130
140
|
class Client
|
|
131
141
|
attr_reader :logger, :ld_client
|
|
132
142
|
|
|
@@ -135,6 +145,17 @@ module LaunchDarkly
|
|
|
135
145
|
|
|
136
146
|
@ld_client = ld_client
|
|
137
147
|
@logger = LaunchDarkly::Server::AI.default_logger
|
|
148
|
+
|
|
149
|
+
@ld_client.track(
|
|
150
|
+
TRACK_SDK_INFO,
|
|
151
|
+
INIT_TRACK_CONTEXT,
|
|
152
|
+
{
|
|
153
|
+
aiSdkName: LaunchDarkly::Server::AI::SDK_NAME,
|
|
154
|
+
aiSdkVersion: LaunchDarkly::Server::AI::VERSION,
|
|
155
|
+
aiSdkLanguage: LaunchDarkly::Server::AI::SDK_LANGUAGE,
|
|
156
|
+
},
|
|
157
|
+
1
|
|
158
|
+
)
|
|
138
159
|
end
|
|
139
160
|
|
|
140
161
|
#
|
|
@@ -146,9 +167,21 @@ module LaunchDarkly
|
|
|
146
167
|
# @param variables [Hash] Optional variables for rendering messages
|
|
147
168
|
# @return [AIConfig] An AIConfig instance containing the configuration data
|
|
148
169
|
#
|
|
170
|
+
def completion_config(config_key, context, default_value = nil, variables = nil)
|
|
171
|
+
@ld_client.track(TRACK_USAGE_COMPLETION_CONFIG, context, config_key, 1)
|
|
172
|
+
|
|
173
|
+
_completion_config(config_key, context, default_value, variables)
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# @deprecated Use {#completion_config} instead.
|
|
149
177
|
def config(config_key, context, default_value = nil, variables = nil)
|
|
150
|
-
|
|
178
|
+
warn '[DEPRECATION] `config` is deprecated. Use `completion_config` instead.'
|
|
179
|
+
completion_config(config_key, context, default_value, variables)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
private
|
|
151
183
|
|
|
184
|
+
def _completion_config(config_key, context, default_value = nil, variables = nil)
|
|
152
185
|
variation = @ld_client.variation(
|
|
153
186
|
config_key,
|
|
154
187
|
context,
|
|
@@ -158,7 +191,6 @@ module LaunchDarkly
|
|
|
158
191
|
all_variables = variables ? variables.dup : {}
|
|
159
192
|
all_variables[:ldctx] = context.to_h
|
|
160
193
|
|
|
161
|
-
# Process messages and provider configuration
|
|
162
194
|
messages = nil
|
|
163
195
|
if variation[:messages].is_a?(Array) && variation[:messages].all? { |msg| msg.is_a?(Hash) }
|
|
164
196
|
messages = variation[:messages].map do |message|
|
data/lib/server/ai/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: launchdarkly-server-sdk-ai
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- LaunchDarkly
|
|
@@ -51,20 +51,6 @@ dependencies:
|
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
53
|
version: '1.1'
|
|
54
|
-
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: bundler
|
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
|
57
|
-
requirements:
|
|
58
|
-
- - "~>"
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: '2.0'
|
|
61
|
-
type: :development
|
|
62
|
-
prerelease: false
|
|
63
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - "~>"
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '2.0'
|
|
68
54
|
- !ruby/object:Gem::Dependency
|
|
69
55
|
name: rake
|
|
70
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -168,6 +154,7 @@ files:
|
|
|
168
154
|
- lib/launchdarkly-server-sdk-ai.rb
|
|
169
155
|
- lib/server/ai/ai_config_tracker.rb
|
|
170
156
|
- lib/server/ai/client.rb
|
|
157
|
+
- lib/server/ai/sdk_info.rb
|
|
171
158
|
- lib/server/ai/version.rb
|
|
172
159
|
homepage: https://github.com/launchdarkly/ruby-server-sdk-ai
|
|
173
160
|
licenses:
|