Class: Braintrust::Client

Inherits:
BaseClient
  • Object
show all
Defined in:
lib/braintrust/client.rb

Constant Summary collapse

DEFAULT_MAX_RETRIES =

Default max number of retries to attempt after a failed retryable request.

2

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_url: nil, api_key: nil, max_retries: nil) ⇒ Client

Creates and returns a new client for interacting with the API.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/braintrust/client.rb', line 44

def initialize(base_url: nil, api_key: nil, max_retries: nil)
  base_url ||= "https://api.braintrustdata.com"

  max_retries ||= DEFAULT_MAX_RETRIES

  @api_key = [api_key, ENV["BRAINTRUST_API_KEY"]].find { |v| !v.nil? }
  if @api_key.nil?
    raise ArgumentError, "api_key is required"
  end

  super(base_url: base_url, max_retries: max_retries)

  @top_level = Braintrust::Resources::TopLevel.new(client: self)
  @project = Braintrust::Resources::Project.new(client: self)
  @experiment = Braintrust::Resources::Experiment.new(client: self)
  @dataset = Braintrust::Resources::Dataset.new(client: self)
  @prompt = Braintrust::Resources::Prompt.new(client: self)
  @role = Braintrust::Resources::Role.new(client: self)
  @group = Braintrust::Resources::Group.new(client: self)
  @acl = Braintrust::Resources::ACL.new(client: self)
  @user = Braintrust::Resources::User.new(client: self)
end

Instance Attribute Details

#aclBraintrust::Resources::ACL (readonly)



33
34
35
# File 'lib/braintrust/client.rb', line 33

def acl
  @acl
end

#api_keyObject (readonly)

Client options.



9
10
11
# File 'lib/braintrust/client.rb', line 9

def api_key
  @api_key
end

#datasetBraintrust::Resources::Dataset (readonly)



21
22
23
# File 'lib/braintrust/client.rb', line 21

def dataset
  @dataset
end

#experimentBraintrust::Resources::Experiment (readonly)



18
19
20
# File 'lib/braintrust/client.rb', line 18

def experiment
  @experiment
end

#groupBraintrust::Resources::Group (readonly)



30
31
32
# File 'lib/braintrust/client.rb', line 30

def group
  @group
end

#projectBraintrust::Resources::Project (readonly)



15
16
17
# File 'lib/braintrust/client.rb', line 15

def project
  @project
end

#promptBraintrust::Resources::Prompt (readonly)



24
25
26
# File 'lib/braintrust/client.rb', line 24

def prompt
  @prompt
end

#roleBraintrust::Resources::Role (readonly)



27
28
29
# File 'lib/braintrust/client.rb', line 27

def role
  @role
end

#top_levelBraintrust::Resources::TopLevel (readonly)



12
13
14
# File 'lib/braintrust/client.rb', line 12

def top_level
  @top_level
end

#userBraintrust::Resources::User (readonly)



36
37
38
# File 'lib/braintrust/client.rb', line 36

def user
  @user
end