Class: ChalkRuby::Client
- Inherits:
-
Object
- Object
- ChalkRuby::Client
- Defined in:
- lib/chalk_ruby/client.rb
Class Method Summary collapse
-
.create(client_id = nil, client_secret = nil, environment = nil, query_server = nil, api_server = nil, additional_headers = {}, eagerly_initialize_connection_pool = false) ⇒ Object
Create a new client.
-
.create_with_config(config) ⇒ Object
Create a new client providing only a ChalkRuby::Config object.
Instance Method Summary collapse
- #get_token ⇒ Object
-
#initialize(chalk_config, opts = {}) ⇒ Client
constructor
Initializes the ChalkRuby client.
-
#query(input:, output:, now: nil, staleness: nil, tags: nil, branch: nil, correlation_id: nil, query_name: nil, query_name_version: nil, meta: nil, explain: nil, include_meta: nil, store_plan_stages: nil, timeout: nil, planner_options: nil) ⇒ Hash[Symbol, String]
Compute features values using online resolvers.
-
#warm_connections ⇒ Object
Warm up connections to the API and query servers by establishing connections without making actual requests.
Constructor Details
#initialize(chalk_config, opts = {}) ⇒ Client
Initializes the ChalkRuby client. Generally, you should not need to call this directly. Instead, use ChalkRuby::Client.create or ChalkRuby::Client.create_with_config.
216 217 218 219 220 221 222 223 224 225 226 227 228 |
# File 'lib/chalk_ruby/client.rb', line 216 def initialize(chalk_config, opts = {}) @token = nil @config = chalk_config adapter = opts[:adapter] || Defaults::ADAPTER logger = opts[:logger] || LoggerHelper.create requester = opts[:http_requester] || Defaults::REQUESTER_CLASS.new(adapter: adapter, logger: logger) @transporter = Http::HttpRequesterChalk.new(requester: requester) # Eagerly initialize connections if configured if @config.eagerly_initialize_connection_pool warm_connections end end |
Class Method Details
.create(client_id = nil, client_secret = nil, environment = nil, query_server = nil, api_server = nil, additional_headers = {}, eagerly_initialize_connection_pool = false) ⇒ Object
Create a new client.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/chalk_ruby/client.rb', line 39 def self.create( client_id = nil, client_secret = nil, environment = nil, query_server = nil, api_server = nil, additional_headers = {}, eagerly_initialize_connection_pool = false ) config = Config.new( client_id: client_id, client_secret: client_secret, environment: environment, query_server: query_server, api_server: api_server, additional_headers: additional_headers, eagerly_initialize_connection_pool: eagerly_initialize_connection_pool ) create_with_config(config) end |
.create_with_config(config) ⇒ Object
Create a new client providing only a ChalkRuby::Config object
66 67 68 |
# File 'lib/chalk_ruby/client.rb', line 66 def self.create_with_config(config) new(config) end |
Instance Method Details
#get_token ⇒ Object
187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
# File 'lib/chalk_ruby/client.rb', line 187 def get_token Token.new( api_server_request( method: :post, path: '/v1/oauth/token', body: { client_id: @config.client_id, client_secret: @config.client_secret, grant_type: 'client_credentials' }, headers: get_unauthenticated_headers ) ) end |
#query(input:, output:, now: nil, staleness: nil, tags: nil, branch: nil, correlation_id: nil, query_name: nil, query_name_version: nil, meta: nil, explain: nil, include_meta: nil, store_plan_stages: nil, timeout: nil, planner_options: nil) ⇒ Hash[Symbol, String]
Compute features values using online resolvers. See docs.chalk.ai/docs/query-basics for more information.
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 |
# File 'lib/chalk_ruby/client.rb', line 146 def query( input:, output:, now: nil, staleness: nil, tags: nil, branch: nil, correlation_id: nil, query_name: nil, query_name_version: nil, meta: nil, explain: nil, include_meta: nil, store_plan_stages: nil, timeout: nil, planner_options: nil ) query_server_request( method: :post, path: 'v1/query/online', body: { inputs: input, outputs: output, now: now, staleness: staleness, context: && { tags: }, branch_id: branch, correlation_id: correlation_id, query_name: query_name, query_name_version: query_name_version, meta: , explain: explain || false, include_meta: || false, store_plan_stages: store_plan_stages || false, planner_options: || {} }, headers: get_authenticated_engine_headers(branch: branch), timeout: timeout ) end |
#warm_connections ⇒ Object
Warm up connections to the API and query servers by establishing connections without making actual requests
232 233 234 235 236 237 238 239 240 241 |
# File 'lib/chalk_ruby/client.rb', line 232 def warm_connections # Get the query server host query_host = query_server_host # Warm up API server connection warm_connection(@config.api_server) # Warm up query server connection warm_connection(query_host) end |