exa-ai 0.3.1 → 0.4.0
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/README.md +58 -17
- data/exe/exa-ai +111 -6
- data/exe/exa-ai-enrichment-cancel +107 -0
- data/exe/exa-ai-enrichment-create +235 -0
- data/exe/exa-ai-enrichment-delete +121 -0
- data/exe/exa-ai-enrichment-get +103 -0
- data/exe/exa-ai-enrichment-list +98 -0
- data/exe/exa-ai-enrichment-update +170 -0
- data/exe/exa-ai-find-similar +240 -0
- data/exe/exa-ai-webset-cancel +96 -0
- data/exe/exa-ai-webset-create +192 -0
- data/exe/exa-ai-webset-delete +110 -0
- data/exe/exa-ai-webset-get +92 -0
- data/exe/exa-ai-webset-item-delete +111 -0
- data/exe/exa-ai-webset-item-get +104 -0
- data/exe/exa-ai-webset-item-list +93 -0
- data/exe/exa-ai-webset-list +90 -0
- data/exe/exa-ai-webset-search-cancel +103 -0
- data/exe/exa-ai-webset-search-create +233 -0
- data/exe/exa-ai-webset-search-get +104 -0
- data/exe/exa-ai-webset-update +139 -0
- data/lib/exa/cli/formatters/enrichment_formatter.rb +69 -0
- data/lib/exa/cli/formatters/webset_formatter.rb +68 -0
- data/lib/exa/cli/formatters/webset_item_formatter.rb +69 -0
- data/lib/exa/client.rb +171 -0
- data/lib/exa/resources/webset.rb +74 -0
- data/lib/exa/resources/webset_collection.rb +33 -0
- data/lib/exa/resources/webset_enrichment.rb +71 -0
- data/lib/exa/resources/webset_enrichment_collection.rb +28 -0
- data/lib/exa/resources/webset_search.rb +112 -0
- data/lib/exa/services/parameter_converter.rb +1 -0
- data/lib/exa/services/websets/cancel.rb +36 -0
- data/lib/exa/services/websets/cancel_enrichment.rb +35 -0
- data/lib/exa/services/websets/cancel_search.rb +44 -0
- data/lib/exa/services/websets/create.rb +45 -0
- data/lib/exa/services/websets/create_enrichment.rb +35 -0
- data/lib/exa/services/websets/create_search.rb +48 -0
- data/lib/exa/services/websets/create_search_validator.rb +128 -0
- data/lib/exa/services/websets/create_validator.rb +189 -0
- data/lib/exa/services/websets/delete.rb +36 -0
- data/lib/exa/services/websets/delete_enrichment.rb +35 -0
- data/lib/exa/services/websets/delete_item.rb +20 -0
- data/lib/exa/services/websets/get_item.rb +20 -0
- data/lib/exa/services/websets/get_search.rb +43 -0
- data/lib/exa/services/websets/list.rb +25 -0
- data/lib/exa/services/websets/list_items.rb +20 -0
- data/lib/exa/services/websets/retrieve.rb +47 -0
- data/lib/exa/services/websets/retrieve_enrichment.rb +35 -0
- data/lib/exa/services/websets/update.rb +37 -0
- data/lib/exa/services/websets/update_enrichment.rb +36 -0
- data/lib/exa/services/websets_parameter_converter.rb +45 -0
- data/lib/exa/version.rb +1 -1
- data/lib/exa.rb +25 -0
- metadata +64 -3
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Exa
|
|
4
|
+
module Services
|
|
5
|
+
module Websets
|
|
6
|
+
class Update
|
|
7
|
+
def initialize(connection, id:, **params)
|
|
8
|
+
@connection = connection
|
|
9
|
+
@id = id
|
|
10
|
+
@params = params
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def call
|
|
14
|
+
response = @connection.post("/websets/v0/websets/#{@id}", @params)
|
|
15
|
+
body = response.body
|
|
16
|
+
|
|
17
|
+
Resources::Webset.new(
|
|
18
|
+
id: body["id"],
|
|
19
|
+
object: body["object"],
|
|
20
|
+
status: body["status"],
|
|
21
|
+
external_id: body["externalId"],
|
|
22
|
+
title: body["title"],
|
|
23
|
+
searches: body["searches"],
|
|
24
|
+
imports: body["imports"],
|
|
25
|
+
enrichments: body["enrichments"],
|
|
26
|
+
monitors: body["monitors"],
|
|
27
|
+
excludes: body["excludes"],
|
|
28
|
+
metadata: body["metadata"],
|
|
29
|
+
created_at: body["createdAt"],
|
|
30
|
+
updated_at: body["updatedAt"],
|
|
31
|
+
items: body["items"]
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Exa
|
|
4
|
+
module Services
|
|
5
|
+
module Websets
|
|
6
|
+
class UpdateEnrichment
|
|
7
|
+
def initialize(connection, webset_id:, id:, **params)
|
|
8
|
+
@connection = connection
|
|
9
|
+
@webset_id = webset_id
|
|
10
|
+
@id = id
|
|
11
|
+
@params = params
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def call
|
|
15
|
+
response = @connection.patch("/websets/v0/websets/#{@webset_id}/enrichments/#{@id}", @params)
|
|
16
|
+
body = response.body
|
|
17
|
+
|
|
18
|
+
Resources::WebsetEnrichment.new(
|
|
19
|
+
id: body["id"],
|
|
20
|
+
object: body["object"],
|
|
21
|
+
status: body["status"],
|
|
22
|
+
webset_id: body["websetId"],
|
|
23
|
+
title: body["title"],
|
|
24
|
+
description: body["description"],
|
|
25
|
+
format: body["format"],
|
|
26
|
+
options: body["options"],
|
|
27
|
+
instructions: body["instructions"],
|
|
28
|
+
metadata: body["metadata"],
|
|
29
|
+
created_at: body["createdAt"],
|
|
30
|
+
updated_at: body["updatedAt"]
|
|
31
|
+
)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Exa
|
|
4
|
+
module Services
|
|
5
|
+
# Converts Ruby parameter names (snake_case) to API format (camelCase) for Websets API
|
|
6
|
+
class WebsetsParameterConverter
|
|
7
|
+
def self.convert(params)
|
|
8
|
+
new.convert(params)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def convert(params)
|
|
12
|
+
converted = {}
|
|
13
|
+
|
|
14
|
+
params.each do |key, value|
|
|
15
|
+
converted_key = convert_key(key)
|
|
16
|
+
converted_value = convert_value(key, value)
|
|
17
|
+
converted[converted_key] = converted_value
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
converted
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def convert_key(key)
|
|
26
|
+
case key
|
|
27
|
+
when :external_id then :externalId
|
|
28
|
+
else
|
|
29
|
+
key
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def convert_value(key, value)
|
|
34
|
+
# Recursively convert nested hashes
|
|
35
|
+
if value.is_a?(Hash)
|
|
36
|
+
convert(value)
|
|
37
|
+
elsif value.is_a?(Array)
|
|
38
|
+
value.map { |item| item.is_a?(Hash) ? convert(item) : item }
|
|
39
|
+
else
|
|
40
|
+
value
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
data/lib/exa/version.rb
CHANGED
data/lib/exa.rb
CHANGED
|
@@ -11,6 +11,11 @@ require_relative "exa/resources/research_task"
|
|
|
11
11
|
require_relative "exa/resources/research_list"
|
|
12
12
|
require_relative "exa/resources/answer"
|
|
13
13
|
require_relative "exa/resources/context_result"
|
|
14
|
+
require_relative "exa/resources/webset_collection"
|
|
15
|
+
require_relative "exa/resources/webset"
|
|
16
|
+
require_relative "exa/resources/webset_search"
|
|
17
|
+
require_relative "exa/resources/webset_enrichment"
|
|
18
|
+
require_relative "exa/resources/webset_enrichment_collection"
|
|
14
19
|
require_relative "exa/services/search"
|
|
15
20
|
require_relative "exa/services/find_similar"
|
|
16
21
|
require_relative "exa/services/get_contents"
|
|
@@ -20,6 +25,23 @@ require_relative "exa/services/research_list"
|
|
|
20
25
|
require_relative "exa/services/answer"
|
|
21
26
|
require_relative "exa/services/answer_stream"
|
|
22
27
|
require_relative "exa/services/context"
|
|
28
|
+
require_relative "exa/services/websets/list"
|
|
29
|
+
require_relative "exa/services/websets/retrieve"
|
|
30
|
+
require_relative "exa/services/websets/delete"
|
|
31
|
+
require_relative "exa/services/websets/cancel"
|
|
32
|
+
require_relative "exa/services/websets/update"
|
|
33
|
+
require_relative "exa/services/websets/create"
|
|
34
|
+
require_relative "exa/services/websets/create_search"
|
|
35
|
+
require_relative "exa/services/websets/get_search"
|
|
36
|
+
require_relative "exa/services/websets/cancel_search"
|
|
37
|
+
require_relative "exa/services/websets/create_enrichment"
|
|
38
|
+
require_relative "exa/services/websets/retrieve_enrichment"
|
|
39
|
+
require_relative "exa/services/websets/update_enrichment"
|
|
40
|
+
require_relative "exa/services/websets/delete_enrichment"
|
|
41
|
+
require_relative "exa/services/websets/cancel_enrichment"
|
|
42
|
+
require_relative "exa/services/websets/get_item"
|
|
43
|
+
require_relative "exa/services/websets/delete_item"
|
|
44
|
+
require_relative "exa/services/websets/list_items"
|
|
23
45
|
require_relative "exa/client"
|
|
24
46
|
require_relative "exa/cli/base"
|
|
25
47
|
require_relative "exa/cli/polling"
|
|
@@ -29,6 +51,9 @@ require_relative "exa/cli/formatters/context_formatter"
|
|
|
29
51
|
require_relative "exa/cli/formatters/contents_formatter"
|
|
30
52
|
require_relative "exa/cli/formatters/research_formatter"
|
|
31
53
|
require_relative "exa/cli/formatters/answer_formatter"
|
|
54
|
+
require_relative "exa/cli/formatters/webset_formatter"
|
|
55
|
+
require_relative "exa/cli/formatters/webset_item_formatter"
|
|
56
|
+
require_relative "exa/cli/formatters/enrichment_formatter"
|
|
32
57
|
|
|
33
58
|
module Exa
|
|
34
59
|
# Module-level configuration
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: exa-ai
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Benjamin Jackson
|
|
@@ -51,6 +51,20 @@ dependencies:
|
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
53
|
version: '5.0'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: minitest-fail-fast
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0.1'
|
|
61
|
+
type: :development
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0.1'
|
|
54
68
|
- !ruby/object:Gem::Dependency
|
|
55
69
|
name: rake
|
|
56
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -109,7 +123,7 @@ dependencies:
|
|
|
109
123
|
version: '0.9'
|
|
110
124
|
description: A Ruby gem for interacting with the Exa.ai search and discovery API
|
|
111
125
|
email:
|
|
112
|
-
- ben@
|
|
126
|
+
- ben@hearmeout.co
|
|
113
127
|
executables:
|
|
114
128
|
- exa-ai
|
|
115
129
|
- exa-ai-answer
|
|
@@ -127,11 +141,30 @@ files:
|
|
|
127
141
|
- exe/exa-ai
|
|
128
142
|
- exe/exa-ai-answer
|
|
129
143
|
- exe/exa-ai-context
|
|
144
|
+
- exe/exa-ai-enrichment-cancel
|
|
145
|
+
- exe/exa-ai-enrichment-create
|
|
146
|
+
- exe/exa-ai-enrichment-delete
|
|
147
|
+
- exe/exa-ai-enrichment-get
|
|
148
|
+
- exe/exa-ai-enrichment-list
|
|
149
|
+
- exe/exa-ai-enrichment-update
|
|
150
|
+
- exe/exa-ai-find-similar
|
|
130
151
|
- exe/exa-ai-get-contents
|
|
131
152
|
- exe/exa-ai-research-get
|
|
132
153
|
- exe/exa-ai-research-list
|
|
133
154
|
- exe/exa-ai-research-start
|
|
134
155
|
- exe/exa-ai-search
|
|
156
|
+
- exe/exa-ai-webset-cancel
|
|
157
|
+
- exe/exa-ai-webset-create
|
|
158
|
+
- exe/exa-ai-webset-delete
|
|
159
|
+
- exe/exa-ai-webset-get
|
|
160
|
+
- exe/exa-ai-webset-item-delete
|
|
161
|
+
- exe/exa-ai-webset-item-get
|
|
162
|
+
- exe/exa-ai-webset-item-list
|
|
163
|
+
- exe/exa-ai-webset-list
|
|
164
|
+
- exe/exa-ai-webset-search-cancel
|
|
165
|
+
- exe/exa-ai-webset-search-create
|
|
166
|
+
- exe/exa-ai-webset-search-get
|
|
167
|
+
- exe/exa-ai-webset-update
|
|
135
168
|
- lib/exa-ai.rb
|
|
136
169
|
- lib/exa.rb
|
|
137
170
|
- lib/exa/cli/base.rb
|
|
@@ -139,8 +172,11 @@ files:
|
|
|
139
172
|
- lib/exa/cli/formatters/answer_formatter.rb
|
|
140
173
|
- lib/exa/cli/formatters/contents_formatter.rb
|
|
141
174
|
- lib/exa/cli/formatters/context_formatter.rb
|
|
175
|
+
- lib/exa/cli/formatters/enrichment_formatter.rb
|
|
142
176
|
- lib/exa/cli/formatters/research_formatter.rb
|
|
143
177
|
- lib/exa/cli/formatters/search_formatter.rb
|
|
178
|
+
- lib/exa/cli/formatters/webset_formatter.rb
|
|
179
|
+
- lib/exa/cli/formatters/webset_item_formatter.rb
|
|
144
180
|
- lib/exa/cli/polling.rb
|
|
145
181
|
- lib/exa/client.rb
|
|
146
182
|
- lib/exa/connection.rb
|
|
@@ -153,6 +189,11 @@ files:
|
|
|
153
189
|
- lib/exa/resources/research_list.rb
|
|
154
190
|
- lib/exa/resources/research_task.rb
|
|
155
191
|
- lib/exa/resources/search_result.rb
|
|
192
|
+
- lib/exa/resources/webset.rb
|
|
193
|
+
- lib/exa/resources/webset_collection.rb
|
|
194
|
+
- lib/exa/resources/webset_enrichment.rb
|
|
195
|
+
- lib/exa/resources/webset_enrichment_collection.rb
|
|
196
|
+
- lib/exa/resources/webset_search.rb
|
|
156
197
|
- lib/exa/services/answer.rb
|
|
157
198
|
- lib/exa/services/answer_stream.rb
|
|
158
199
|
- lib/exa/services/context.rb
|
|
@@ -163,6 +204,26 @@ files:
|
|
|
163
204
|
- lib/exa/services/research_list.rb
|
|
164
205
|
- lib/exa/services/research_start.rb
|
|
165
206
|
- lib/exa/services/search.rb
|
|
207
|
+
- lib/exa/services/websets/cancel.rb
|
|
208
|
+
- lib/exa/services/websets/cancel_enrichment.rb
|
|
209
|
+
- lib/exa/services/websets/cancel_search.rb
|
|
210
|
+
- lib/exa/services/websets/create.rb
|
|
211
|
+
- lib/exa/services/websets/create_enrichment.rb
|
|
212
|
+
- lib/exa/services/websets/create_search.rb
|
|
213
|
+
- lib/exa/services/websets/create_search_validator.rb
|
|
214
|
+
- lib/exa/services/websets/create_validator.rb
|
|
215
|
+
- lib/exa/services/websets/delete.rb
|
|
216
|
+
- lib/exa/services/websets/delete_enrichment.rb
|
|
217
|
+
- lib/exa/services/websets/delete_item.rb
|
|
218
|
+
- lib/exa/services/websets/get_item.rb
|
|
219
|
+
- lib/exa/services/websets/get_search.rb
|
|
220
|
+
- lib/exa/services/websets/list.rb
|
|
221
|
+
- lib/exa/services/websets/list_items.rb
|
|
222
|
+
- lib/exa/services/websets/retrieve.rb
|
|
223
|
+
- lib/exa/services/websets/retrieve_enrichment.rb
|
|
224
|
+
- lib/exa/services/websets/update.rb
|
|
225
|
+
- lib/exa/services/websets/update_enrichment.rb
|
|
226
|
+
- lib/exa/services/websets_parameter_converter.rb
|
|
166
227
|
- lib/exa/version.rb
|
|
167
228
|
homepage: https://github.com/benjaminjackson/exa-ruby
|
|
168
229
|
licenses:
|
|
@@ -185,7 +246,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
185
246
|
- !ruby/object:Gem::Version
|
|
186
247
|
version: '0'
|
|
187
248
|
requirements: []
|
|
188
|
-
rubygems_version: 3.7.
|
|
249
|
+
rubygems_version: 3.7.2
|
|
189
250
|
specification_version: 4
|
|
190
251
|
summary: Ruby client for the Exa.ai API
|
|
191
252
|
test_files: []
|