Class: VectorAmp::Client
- Inherits:
-
Object
- Object
- VectorAmp::Client
- Defined in:
- lib/vector_amp/client.rb
Overview
Top-level API client for VectorAmp datasets, ingestion sources/jobs, and intelligence.
Constant Summary collapse
- DEFAULT_BASE_URL =
"https://api.vectoramp.com"
Instance Attribute Summary collapse
- #base_url ⇒ String, ... readonly
- #connections ⇒ String, ... readonly
- #datasets ⇒ String, ... readonly
- #ingestion ⇒ String, ... readonly
- #intelligence ⇒ String, ... readonly
- #schedules ⇒ String, ... readonly
- #sources ⇒ String, ... readonly
Instance Method Summary collapse
-
#ask(query, **options) ⇒ Hash
Ask an intelligence question and return a complete response.
-
#ask_stream(query, **options) {|chunk| ... } ⇒ Enumerator, Object
Ask an intelligence question as a stream.
-
#initialize(api_key: ENV["VECTORAMP_API_KEY"], base_url: DEFAULT_BASE_URL, transport: nil, timeout: Transport::HTTP::DEFAULT_TIMEOUT) ⇒ Client
constructor
Create a VectorAmp API client.
Constructor Details
#initialize(api_key: ENV["VECTORAMP_API_KEY"], base_url: DEFAULT_BASE_URL, transport: nil, timeout: Transport::HTTP::DEFAULT_TIMEOUT) ⇒ Client
Create a VectorAmp API client.
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/vector_amp/client.rb', line 31 def initialize(api_key: ENV["VECTORAMP_API_KEY"], base_url: DEFAULT_BASE_URL, transport: nil, timeout: Transport::HTTP::DEFAULT_TIMEOUT) raise ConfigurationError, "api_key is required" if api_key.nil? || api_key.empty? @base_url = base_url @transport = transport || Transport::HTTP.new(base_url: base_url, api_key: api_key, timeout: timeout) @ingestion = IngestionResource.new(@transport) @sources = @ingestion @schedules = SchedulesResource.new(@transport) @intelligence = IntelligenceResource.new(@transport) @connections = ConnectionsResource.new(@transport) @datasets = DatasetsResource.new(@transport, client: self) end |
Instance Attribute Details
#base_url ⇒ String, ... (readonly)
22 23 24 |
# File 'lib/vector_amp/client.rb', line 22 def base_url @base_url end |
#connections ⇒ String, ... (readonly)
22 23 24 |
# File 'lib/vector_amp/client.rb', line 22 def connections @connections end |
#datasets ⇒ String, ... (readonly)
22 23 24 |
# File 'lib/vector_amp/client.rb', line 22 def datasets @datasets end |
#ingestion ⇒ String, ... (readonly)
22 23 24 |
# File 'lib/vector_amp/client.rb', line 22 def ingestion @ingestion end |
#intelligence ⇒ String, ... (readonly)
22 23 24 |
# File 'lib/vector_amp/client.rb', line 22 def intelligence @intelligence end |
#schedules ⇒ String, ... (readonly)
22 23 24 |
# File 'lib/vector_amp/client.rb', line 22 def schedules @schedules end |
#sources ⇒ String, ... (readonly)
22 23 24 |
# File 'lib/vector_amp/client.rb', line 22 def sources @sources end |
Instance Method Details
#ask(query, **options) ⇒ Hash
Ask an intelligence question and return a complete response.
48 49 50 |
# File 'lib/vector_amp/client.rb', line 48 def ask(query, **) @intelligence.query(query, **.merge(stream: false)) end |
#ask_stream(query, **options) {|chunk| ... } ⇒ Enumerator, Object
Ask an intelligence question as a stream.
57 58 59 |
# File 'lib/vector_amp/client.rb', line 57 def ask_stream(query, **, &block) @intelligence.query(query, **.merge(stream: true), &block) end |