Class: LaunchDarkly::Server::AI::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/server/ai/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ld_client) ⇒ Client

Returns a new instance of Client.

Raises:

  • (ArgumentError)


204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
# File 'lib/server/ai/client.rb', line 204

def initialize(ld_client)
  raise ArgumentError, 'LDClient instance is required' unless ld_client.is_a?(LaunchDarkly::LDClient)

  @ld_client = ld_client
  @logger = LaunchDarkly::Server::AI.default_logger

  @ld_client.track(
    TRACK_SDK_INFO,
    INIT_TRACK_CONTEXT,
    {
      aiSdkName: LaunchDarkly::Server::AI::SDK_NAME,
      aiSdkVersion: LaunchDarkly::Server::AI::VERSION,
      aiSdkLanguage: LaunchDarkly::Server::AI::SDK_LANGUAGE,
    },
    1
  )
end

Instance Attribute Details

#ld_clientObject (readonly)

Returns the value of attribute ld_client.



202
203
204
# File 'lib/server/ai/client.rb', line 202

def ld_client
  @ld_client
end

#loggerObject (readonly)

Returns the value of attribute logger.



202
203
204
# File 'lib/server/ai/client.rb', line 202

def logger
  @logger
end

Instance Method Details

#completion_config(key:, context:, default: nil, variables: nil) ⇒ AIConfig

Retrieves the AIConfig

Parameters:

  • key (String)

    The key of the configuration flag

  • context (LDContext)

    The context used when evaluating the flag

  • default (AIConfigDefault) (defaults to: nil)

    The default value to use if the flag is not found

  • variables (Hash) (defaults to: nil)

    Optional variables for rendering messages

Returns:

  • (AIConfig)

    An AIConfig instance containing the configuration data



231
232
233
234
235
# File 'lib/server/ai/client.rb', line 231

def completion_config(key:, context:, default: nil, variables: nil)
  @ld_client.track(TRACK_USAGE_COMPLETION_CONFIG, context, key, 1)

  _completion_config(key:, context:, default: default || AIConfigDefault.disabled, variables:)
end

#config(key:, context:, default: nil, variables: nil) ⇒ Object

Deprecated.

Use #completion_config instead.



250
251
252
253
# File 'lib/server/ai/client.rb', line 250

def config(key:, context:, default: nil, variables: nil)
  warn '[DEPRECATION] `config` is deprecated. Use `completion_config` instead.'
  completion_config(key:, context:, default:, variables:)
end

#create_tracker(token:, context:) ⇒ AIConfigTracker

Reconstructs a tracker from a resumption token, allowing deferred tracking (e.g. feedback from a different process).

Parameters:

  • token (String)

    A resumption token obtained from AIConfigTracker#resumption_token

  • context (LDContext)

    The context for track events

Returns:



245
246
247
# File 'lib/server/ai/client.rb', line 245

def create_tracker(token:, context:)
  AIConfigTracker.from_resumption_token(token: token, ld_client: @ld_client, context: context)
end