dexa-ai-sdk 0.3.5

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.
Files changed (91) hide show
  1. checksums.yaml +7 -0
  2. data/.fernignore +5 -0
  3. data/.rubocop.yml +107 -0
  4. data/CONTRIBUTING.md +120 -0
  5. data/README.md +199 -0
  6. data/Rakefile +20 -0
  7. data/custom.gemspec.rb +23 -0
  8. data/lib/dexa-ai-sdk/client.rb +26 -0
  9. data/lib/dexa-ai-sdk/environment.rb +7 -0
  10. data/lib/dexa-ai-sdk/errors/api_error.rb +8 -0
  11. data/lib/dexa-ai-sdk/errors/client_error.rb +17 -0
  12. data/lib/dexa-ai-sdk/errors/connection_error.rb +11 -0
  13. data/lib/dexa-ai-sdk/errors/redirect_error.rb +8 -0
  14. data/lib/dexa-ai-sdk/errors/response_error.rb +63 -0
  15. data/lib/dexa-ai-sdk/errors/server_error.rb +11 -0
  16. data/lib/dexa-ai-sdk/errors/timeout_error.rb +8 -0
  17. data/lib/dexa-ai-sdk/internal/errors/constraint_error.rb +10 -0
  18. data/lib/dexa-ai-sdk/internal/errors/type_error.rb +10 -0
  19. data/lib/dexa-ai-sdk/internal/http/base_request.rb +81 -0
  20. data/lib/dexa-ai-sdk/internal/http/raw_client.rb +295 -0
  21. data/lib/dexa-ai-sdk/internal/iterators/cursor_item_iterator.rb +33 -0
  22. data/lib/dexa-ai-sdk/internal/iterators/cursor_page_iterator.rb +117 -0
  23. data/lib/dexa-ai-sdk/internal/iterators/item_iterator.rb +111 -0
  24. data/lib/dexa-ai-sdk/internal/iterators/offset_item_iterator.rb +35 -0
  25. data/lib/dexa-ai-sdk/internal/iterators/offset_page_iterator.rb +151 -0
  26. data/lib/dexa-ai-sdk/internal/json/request.rb +50 -0
  27. data/lib/dexa-ai-sdk/internal/json/serializable.rb +25 -0
  28. data/lib/dexa-ai-sdk/internal/multipart/multipart_encoder.rb +141 -0
  29. data/lib/dexa-ai-sdk/internal/multipart/multipart_form_data.rb +83 -0
  30. data/lib/dexa-ai-sdk/internal/multipart/multipart_form_data_part.rb +51 -0
  31. data/lib/dexa-ai-sdk/internal/multipart/multipart_request.rb +41 -0
  32. data/lib/dexa-ai-sdk/internal/types/array.rb +47 -0
  33. data/lib/dexa-ai-sdk/internal/types/boolean.rb +34 -0
  34. data/lib/dexa-ai-sdk/internal/types/enum.rb +56 -0
  35. data/lib/dexa-ai-sdk/internal/types/hash.rb +36 -0
  36. data/lib/dexa-ai-sdk/internal/types/model/field.rb +38 -0
  37. data/lib/dexa-ai-sdk/internal/types/model.rb +220 -0
  38. data/lib/dexa-ai-sdk/internal/types/type.rb +35 -0
  39. data/lib/dexa-ai-sdk/internal/types/union.rb +161 -0
  40. data/lib/dexa-ai-sdk/internal/types/unknown.rb +15 -0
  41. data/lib/dexa-ai-sdk/internal/types/utils.rb +123 -0
  42. data/lib/dexa-ai-sdk/tasks/client.rb +190 -0
  43. data/lib/dexa-ai-sdk/tasks/types/decide_request.rb +37 -0
  44. data/lib/dexa-ai-sdk/tasks/types/decide_request_output_language.rb +32 -0
  45. data/lib/dexa-ai-sdk/tasks/types/decide_request_response_format.rb +11 -0
  46. data/lib/dexa-ai-sdk/tasks/types/decide_request_response_format_type.rb +13 -0
  47. data/lib/dexa-ai-sdk/tasks/types/decide_request_target_language.rb +32 -0
  48. data/lib/dexa-ai-sdk/tasks/types/extract_request.rb +37 -0
  49. data/lib/dexa-ai-sdk/tasks/types/extract_request_output_language.rb +32 -0
  50. data/lib/dexa-ai-sdk/tasks/types/extract_request_response_format.rb +11 -0
  51. data/lib/dexa-ai-sdk/tasks/types/extract_request_response_format_type.rb +13 -0
  52. data/lib/dexa-ai-sdk/tasks/types/extract_request_target_language.rb +32 -0
  53. data/lib/dexa-ai-sdk/types/audio_input.rb +15 -0
  54. data/lib/dexa-ai-sdk/types/audio_input_type.rb +12 -0
  55. data/lib/dexa-ai-sdk/types/choice.rb +11 -0
  56. data/lib/dexa-ai-sdk/types/choice_finish_reason.rb +13 -0
  57. data/lib/dexa-ai-sdk/types/content_part.rb +21 -0
  58. data/lib/dexa-ai-sdk/types/content_part_language.rb +30 -0
  59. data/lib/dexa-ai-sdk/types/content_part_type.rb +15 -0
  60. data/lib/dexa-ai-sdk/types/decide_response.rb +21 -0
  61. data/lib/dexa-ai-sdk/types/decide_result.rb +11 -0
  62. data/lib/dexa-ai-sdk/types/decide_task.rb +21 -0
  63. data/lib/dexa-ai-sdk/types/decide_task_target_language.rb +30 -0
  64. data/lib/dexa-ai-sdk/types/error_response.rb +9 -0
  65. data/lib/dexa-ai-sdk/types/error_response_error.rb +15 -0
  66. data/lib/dexa-ai-sdk/types/extract_response.rb +19 -0
  67. data/lib/dexa-ai-sdk/types/extract_task.rb +21 -0
  68. data/lib/dexa-ai-sdk/types/extract_task_target_language.rb +30 -0
  69. data/lib/dexa-ai-sdk/types/image_input.rb +15 -0
  70. data/lib/dexa-ai-sdk/types/image_input_type.rb +12 -0
  71. data/lib/dexa-ai-sdk/types/image_url.rb +11 -0
  72. data/lib/dexa-ai-sdk/types/image_url_detail.rb +13 -0
  73. data/lib/dexa-ai-sdk/types/message.rb +13 -0
  74. data/lib/dexa-ai-sdk/types/message_content.rb +13 -0
  75. data/lib/dexa-ai-sdk/types/message_language.rb +30 -0
  76. data/lib/dexa-ai-sdk/types/message_role.rb +13 -0
  77. data/lib/dexa-ai-sdk/types/response_message.rb +13 -0
  78. data/lib/dexa-ai-sdk/types/response_message_language.rb +30 -0
  79. data/lib/dexa-ai-sdk/types/response_message_role.rb +11 -0
  80. data/lib/dexa-ai-sdk/types/run_tasks_request.rb +29 -0
  81. data/lib/dexa-ai-sdk/types/run_tasks_request_output_language.rb +30 -0
  82. data/lib/dexa-ai-sdk/types/run_tasks_request_response_format.rb +9 -0
  83. data/lib/dexa-ai-sdk/types/run_tasks_request_response_format_type.rb +11 -0
  84. data/lib/dexa-ai-sdk/types/run_tasks_request_target_language.rb +30 -0
  85. data/lib/dexa-ai-sdk/types/run_tasks_response.rb +19 -0
  86. data/lib/dexa-ai-sdk/types/task.rb +15 -0
  87. data/lib/dexa-ai-sdk/types/usage.rb +13 -0
  88. data/lib/dexa-ai-sdk/version.rb +5 -0
  89. data/lib/dexa-ai-sdk.rb +86 -0
  90. data/reference.md +414 -0
  91. metadata +139 -0
@@ -0,0 +1,190 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ class Client
6
+ # @param client [DexaAiSdk::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # @param request_options [Hash]
14
+ # @param params [DexaAiSdk::Types::RunTasksRequest]
15
+ # @option request_options [String] :base_url
16
+ # @option request_options [Hash{String => Object}] :additional_headers
17
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
18
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
19
+ # @option request_options [Integer] :timeout_in_seconds
20
+ #
21
+ # @example
22
+ # client.tasks.run_tasks(
23
+ # model: "model",
24
+ # tasks: []
25
+ # )
26
+ #
27
+ # @return [DexaAiSdk::Types::RunTasksResponse]
28
+ def run_tasks(request_options: {}, **params)
29
+ params = DexaAiSdk::Internal::Types::Utils.normalize_keys(params)
30
+ request = DexaAiSdk::Internal::JSON::Request.new(
31
+ base_url: request_options[:base_url],
32
+ method: "POST",
33
+ path: "v1/tasks",
34
+ body: DexaAiSdk::Types::RunTasksRequest.new(params).to_h,
35
+ request_options: request_options
36
+ )
37
+ begin
38
+ response = @client.send(request)
39
+ rescue Net::HTTPRequestTimeout
40
+ raise DexaAiSdk::Errors::TimeoutError
41
+ end
42
+ code = response.code.to_i
43
+ if code.between?(200, 299)
44
+ (response.body.to_s.empty? ? nil : DexaAiSdk::Types::RunTasksResponse.load(response.body))
45
+ else
46
+ error_class = DexaAiSdk::Errors::ResponseError.subclass_for_code(code)
47
+ error_types = {
48
+ 400 => DexaAiSdk::Types::ErrorResponse,
49
+ 422 => DexaAiSdk::Types::ErrorResponse,
50
+ 500 => DexaAiSdk::Types::ErrorResponse
51
+ }
52
+ error_body = DexaAiSdk::Errors::ResponseError.load_error_body(code, response.body, error_types)
53
+ raise error_class.new(response.body, code: code, body: error_body)
54
+ end
55
+ end
56
+
57
+ # @param request_options [Hash]
58
+ # @param params [DexaAiSdk::Types::RunTasksRequest]
59
+ # @option request_options [String] :base_url
60
+ # @option request_options [Hash{String => Object}] :additional_headers
61
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
62
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
63
+ # @option request_options [Integer] :timeout_in_seconds
64
+ #
65
+ # @example
66
+ # client.tasks.decide_extract(
67
+ # model: "model",
68
+ # tasks: []
69
+ # )
70
+ #
71
+ # @return [DexaAiSdk::Types::RunTasksResponse]
72
+ def decide_extract(request_options: {}, **params)
73
+ params = DexaAiSdk::Internal::Types::Utils.normalize_keys(params)
74
+ request = DexaAiSdk::Internal::JSON::Request.new(
75
+ base_url: request_options[:base_url],
76
+ method: "POST",
77
+ path: "v1/decide-extract",
78
+ body: DexaAiSdk::Types::RunTasksRequest.new(params).to_h,
79
+ request_options: request_options
80
+ )
81
+ begin
82
+ response = @client.send(request)
83
+ rescue Net::HTTPRequestTimeout
84
+ raise DexaAiSdk::Errors::TimeoutError
85
+ end
86
+ code = response.code.to_i
87
+ if code.between?(200, 299)
88
+ (response.body.to_s.empty? ? nil : DexaAiSdk::Types::RunTasksResponse.load(response.body))
89
+ else
90
+ error_class = DexaAiSdk::Errors::ResponseError.subclass_for_code(code)
91
+ error_types = {
92
+ 400 => DexaAiSdk::Types::ErrorResponse,
93
+ 422 => DexaAiSdk::Types::ErrorResponse,
94
+ 500 => DexaAiSdk::Types::ErrorResponse
95
+ }
96
+ error_body = DexaAiSdk::Errors::ResponseError.load_error_body(code, response.body, error_types)
97
+ raise error_class.new(response.body, code: code, body: error_body)
98
+ end
99
+ end
100
+
101
+ # @param request_options [Hash]
102
+ # @param params [DexaAiSdk::Tasks::Types::DecideRequest]
103
+ # @option request_options [String] :base_url
104
+ # @option request_options [Hash{String => Object}] :additional_headers
105
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
106
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
107
+ # @option request_options [Integer] :timeout_in_seconds
108
+ #
109
+ # @example
110
+ # client.tasks.decide(
111
+ # model: "model",
112
+ # question: "question"
113
+ # )
114
+ #
115
+ # @return [DexaAiSdk::Types::DecideResponse]
116
+ def decide(request_options: {}, **params)
117
+ params = DexaAiSdk::Internal::Types::Utils.normalize_keys(params)
118
+ request = DexaAiSdk::Internal::JSON::Request.new(
119
+ base_url: request_options[:base_url],
120
+ method: "POST",
121
+ path: "decide",
122
+ body: DexaAiSdk::Tasks::Types::DecideRequest.new(params).to_h,
123
+ request_options: request_options
124
+ )
125
+ begin
126
+ response = @client.send(request)
127
+ rescue Net::HTTPRequestTimeout
128
+ raise DexaAiSdk::Errors::TimeoutError
129
+ end
130
+ code = response.code.to_i
131
+ if code.between?(200, 299)
132
+ (response.body.to_s.empty? ? nil : DexaAiSdk::Types::DecideResponse.load(response.body))
133
+ else
134
+ error_class = DexaAiSdk::Errors::ResponseError.subclass_for_code(code)
135
+ error_types = {
136
+ 400 => DexaAiSdk::Types::ErrorResponse,
137
+ 422 => DexaAiSdk::Types::ErrorResponse,
138
+ 500 => DexaAiSdk::Types::ErrorResponse
139
+ }
140
+ error_body = DexaAiSdk::Errors::ResponseError.load_error_body(code, response.body, error_types)
141
+ raise error_class.new(response.body, code: code, body: error_body)
142
+ end
143
+ end
144
+
145
+ # @param request_options [Hash]
146
+ # @param params [DexaAiSdk::Tasks::Types::ExtractRequest]
147
+ # @option request_options [String] :base_url
148
+ # @option request_options [Hash{String => Object}] :additional_headers
149
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
150
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
151
+ # @option request_options [Integer] :timeout_in_seconds
152
+ #
153
+ # @example
154
+ # client.tasks.extract(
155
+ # model: "model",
156
+ # instruction: "instruction"
157
+ # )
158
+ #
159
+ # @return [DexaAiSdk::Types::ExtractResponse]
160
+ def extract(request_options: {}, **params)
161
+ params = DexaAiSdk::Internal::Types::Utils.normalize_keys(params)
162
+ request = DexaAiSdk::Internal::JSON::Request.new(
163
+ base_url: request_options[:base_url],
164
+ method: "POST",
165
+ path: "extract",
166
+ body: DexaAiSdk::Tasks::Types::ExtractRequest.new(params).to_h,
167
+ request_options: request_options
168
+ )
169
+ begin
170
+ response = @client.send(request)
171
+ rescue Net::HTTPRequestTimeout
172
+ raise DexaAiSdk::Errors::TimeoutError
173
+ end
174
+ code = response.code.to_i
175
+ if code.between?(200, 299)
176
+ (response.body.to_s.empty? ? nil : DexaAiSdk::Types::ExtractResponse.load(response.body))
177
+ else
178
+ error_class = DexaAiSdk::Errors::ResponseError.subclass_for_code(code)
179
+ error_types = {
180
+ 400 => DexaAiSdk::Types::ErrorResponse,
181
+ 422 => DexaAiSdk::Types::ErrorResponse,
182
+ 500 => DexaAiSdk::Types::ErrorResponse
183
+ }
184
+ error_body = DexaAiSdk::Errors::ResponseError.load_error_body(code, response.body, error_types)
185
+ raise error_class.new(response.body, code: code, body: error_body)
186
+ end
187
+ end
188
+ end
189
+ end
190
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ module Types
6
+ class DecideRequest < Internal::Types::Model
7
+ field :model, -> { String }, optional: false, nullable: false
8
+
9
+ field :context, -> { String }, optional: true, nullable: false
10
+
11
+ field :messages, -> { Internal::Types::Array[DexaAiSdk::Types::Message] }, optional: true, nullable: false
12
+
13
+ field :images, -> { Internal::Types::Array[DexaAiSdk::Types::ImageInput] }, optional: true, nullable: false
14
+
15
+ field :audio, -> { Internal::Types::Array[DexaAiSdk::Types::AudioInput] }, optional: true, nullable: false
16
+
17
+ field :question, -> { String }, optional: false, nullable: false
18
+
19
+ field :choices, -> { Internal::Types::Array[String] }, optional: true, nullable: false
20
+
21
+ field :options, -> { Internal::Types::Array[String] }, optional: true, nullable: false
22
+
23
+ field :instruction, -> { String }, optional: true, nullable: false
24
+
25
+ field :temperature, -> { Float }, optional: true, nullable: false
26
+
27
+ field :max_output_tokens, -> { Integer }, optional: true, nullable: false
28
+
29
+ field :response_format, -> { DexaAiSdk::Tasks::Types::DecideRequestResponseFormat }, optional: true, nullable: false
30
+
31
+ field :target_language, -> { DexaAiSdk::Tasks::Types::DecideRequestTargetLanguage }, optional: true, nullable: false
32
+
33
+ field :output_language, -> { DexaAiSdk::Tasks::Types::DecideRequestOutputLanguage }, optional: true, nullable: false
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ module Types
6
+ module DecideRequestOutputLanguage
7
+ extend DexaAiSdk::Internal::Types::Enum
8
+
9
+ EN = "en"
10
+ ES = "es"
11
+ FR = "fr"
12
+ DE = "de"
13
+ IT = "it"
14
+ PT = "pt"
15
+ NL = "nl"
16
+ RU = "ru"
17
+ JA = "ja"
18
+ KO = "ko"
19
+ ZH = "zh"
20
+ AR = "ar"
21
+ HI = "hi"
22
+ TR = "tr"
23
+ PL = "pl"
24
+ SV = "sv"
25
+ DA = "da"
26
+ NO = "no"
27
+ FI = "fi"
28
+ CS = "cs"
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ module Types
6
+ class DecideRequestResponseFormat < Internal::Types::Model
7
+ field :type, -> { DexaAiSdk::Tasks::Types::DecideRequestResponseFormatType }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ module Types
6
+ module DecideRequestResponseFormatType
7
+ extend DexaAiSdk::Internal::Types::Enum
8
+
9
+ JSON_OBJECT = "json_object"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ module Types
6
+ module DecideRequestTargetLanguage
7
+ extend DexaAiSdk::Internal::Types::Enum
8
+
9
+ EN = "en"
10
+ ES = "es"
11
+ FR = "fr"
12
+ DE = "de"
13
+ IT = "it"
14
+ PT = "pt"
15
+ NL = "nl"
16
+ RU = "ru"
17
+ JA = "ja"
18
+ KO = "ko"
19
+ ZH = "zh"
20
+ AR = "ar"
21
+ HI = "hi"
22
+ TR = "tr"
23
+ PL = "pl"
24
+ SV = "sv"
25
+ DA = "da"
26
+ NO = "no"
27
+ FI = "fi"
28
+ CS = "cs"
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ module Types
6
+ class ExtractRequest < Internal::Types::Model
7
+ field :model, -> { String }, optional: false, nullable: false
8
+
9
+ field :context, -> { String }, optional: true, nullable: false
10
+
11
+ field :messages, -> { Internal::Types::Array[DexaAiSdk::Types::Message] }, optional: true, nullable: false
12
+
13
+ field :images, -> { Internal::Types::Array[DexaAiSdk::Types::ImageInput] }, optional: true, nullable: false
14
+
15
+ field :audio, -> { Internal::Types::Array[DexaAiSdk::Types::AudioInput] }, optional: true, nullable: false
16
+
17
+ field :instruction, -> { String }, optional: false, nullable: false
18
+
19
+ field :fields, -> { Internal::Types::Array[String] }, optional: true, nullable: false
20
+
21
+ field :keys, -> { Internal::Types::Array[String] }, optional: true, nullable: false
22
+
23
+ field :schema, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
24
+
25
+ field :temperature, -> { Float }, optional: true, nullable: false
26
+
27
+ field :max_output_tokens, -> { Integer }, optional: true, nullable: false
28
+
29
+ field :response_format, -> { DexaAiSdk::Tasks::Types::ExtractRequestResponseFormat }, optional: true, nullable: false
30
+
31
+ field :target_language, -> { DexaAiSdk::Tasks::Types::ExtractRequestTargetLanguage }, optional: true, nullable: false
32
+
33
+ field :output_language, -> { DexaAiSdk::Tasks::Types::ExtractRequestOutputLanguage }, optional: true, nullable: false
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ module Types
6
+ module ExtractRequestOutputLanguage
7
+ extend DexaAiSdk::Internal::Types::Enum
8
+
9
+ EN = "en"
10
+ ES = "es"
11
+ FR = "fr"
12
+ DE = "de"
13
+ IT = "it"
14
+ PT = "pt"
15
+ NL = "nl"
16
+ RU = "ru"
17
+ JA = "ja"
18
+ KO = "ko"
19
+ ZH = "zh"
20
+ AR = "ar"
21
+ HI = "hi"
22
+ TR = "tr"
23
+ PL = "pl"
24
+ SV = "sv"
25
+ DA = "da"
26
+ NO = "no"
27
+ FI = "fi"
28
+ CS = "cs"
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ module Types
6
+ class ExtractRequestResponseFormat < Internal::Types::Model
7
+ field :type, -> { DexaAiSdk::Tasks::Types::ExtractRequestResponseFormatType }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ module Types
6
+ module ExtractRequestResponseFormatType
7
+ extend DexaAiSdk::Internal::Types::Enum
8
+
9
+ JSON_OBJECT = "json_object"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Tasks
5
+ module Types
6
+ module ExtractRequestTargetLanguage
7
+ extend DexaAiSdk::Internal::Types::Enum
8
+
9
+ EN = "en"
10
+ ES = "es"
11
+ FR = "fr"
12
+ DE = "de"
13
+ IT = "it"
14
+ PT = "pt"
15
+ NL = "nl"
16
+ RU = "ru"
17
+ JA = "ja"
18
+ KO = "ko"
19
+ ZH = "zh"
20
+ AR = "ar"
21
+ HI = "hi"
22
+ TR = "tr"
23
+ PL = "pl"
24
+ SV = "sv"
25
+ DA = "da"
26
+ NO = "no"
27
+ FI = "fi"
28
+ CS = "cs"
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ class AudioInput < Internal::Types::Model
6
+ field :type, -> { DexaAiSdk::Types::AudioInputType }, optional: true, nullable: false
7
+
8
+ field :url, -> { String }, optional: true, nullable: false
9
+
10
+ field :data, -> { String }, optional: true, nullable: false
11
+
12
+ field :mime_type, -> { String }, optional: true, nullable: false
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ module AudioInputType
6
+ extend DexaAiSdk::Internal::Types::Enum
7
+
8
+ URL = "url"
9
+ BASE64 = "base64"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ class Choice < Internal::Types::Model
6
+ field :message, -> { DexaAiSdk::Types::ResponseMessage }, optional: false, nullable: false
7
+
8
+ field :finish_reason, -> { DexaAiSdk::Types::ChoiceFinishReason }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ module ChoiceFinishReason
6
+ extend DexaAiSdk::Internal::Types::Enum
7
+
8
+ STOP = "stop"
9
+ LENGTH = "length"
10
+ CONTENT_FILTER = "content_filter"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ class ContentPart < Internal::Types::Model
6
+ field :type, -> { DexaAiSdk::Types::ContentPartType }, optional: true, nullable: false
7
+
8
+ field :text, -> { String }, optional: true, nullable: false
9
+
10
+ field :language, -> { DexaAiSdk::Types::ContentPartLanguage }, optional: true, nullable: false
11
+
12
+ field :image_url, -> { DexaAiSdk::Types::ImageURL }, optional: true, nullable: false
13
+
14
+ field :image, -> { DexaAiSdk::Types::ImageInput }, optional: true, nullable: false
15
+
16
+ field :audio, -> { DexaAiSdk::Types::AudioInput }, optional: true, nullable: false
17
+
18
+ field :input_audio, -> { DexaAiSdk::Types::AudioInput }, optional: true, nullable: false
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ module ContentPartLanguage
6
+ extend DexaAiSdk::Internal::Types::Enum
7
+
8
+ EN = "en"
9
+ ES = "es"
10
+ FR = "fr"
11
+ DE = "de"
12
+ IT = "it"
13
+ PT = "pt"
14
+ NL = "nl"
15
+ RU = "ru"
16
+ JA = "ja"
17
+ KO = "ko"
18
+ ZH = "zh"
19
+ AR = "ar"
20
+ HI = "hi"
21
+ TR = "tr"
22
+ PL = "pl"
23
+ SV = "sv"
24
+ DA = "da"
25
+ NO = "no"
26
+ FI = "fi"
27
+ CS = "cs"
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ module ContentPartType
6
+ extend DexaAiSdk::Internal::Types::Enum
7
+
8
+ TEXT = "text"
9
+ IMAGE_URL = "image_url"
10
+ IMAGE = "image"
11
+ AUDIO = "audio"
12
+ INPUT_AUDIO = "input_audio"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ class DecideResponse < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+
8
+ field :model, -> { String }, optional: false, nullable: false
9
+
10
+ field :choices, -> { Internal::Types::Array[DexaAiSdk::Types::Choice] }, optional: false, nullable: false
11
+
12
+ field :result, -> { DexaAiSdk::Types::DecideResult }, optional: false, nullable: false
13
+
14
+ field :decision, -> { DexaAiSdk::Types::DecideResult }, optional: true, nullable: false
15
+
16
+ field :value, -> { String }, optional: true, nullable: false
17
+
18
+ field :usage, -> { DexaAiSdk::Types::Usage }, optional: false, nullable: false
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ class DecideResult < Internal::Types::Model
6
+ field :value, -> { String }, optional: false, nullable: false
7
+
8
+ field :reason, -> { String }, optional: true, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ class DecideTask < Internal::Types::Model
6
+ field :name, -> { String }, optional: false, nullable: false
7
+
8
+ field :id, -> { String }, optional: true, nullable: false
9
+
10
+ field :question, -> { String }, optional: false, nullable: false
11
+
12
+ field :choices, -> { Internal::Types::Array[String] }, optional: true, nullable: false
13
+
14
+ field :options, -> { Internal::Types::Array[String] }, optional: true, nullable: false
15
+
16
+ field :instruction, -> { String }, optional: true, nullable: false
17
+
18
+ field :target_language, -> { DexaAiSdk::Types::DecideTaskTargetLanguage }, optional: true, nullable: false
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ module DecideTaskTargetLanguage
6
+ extend DexaAiSdk::Internal::Types::Enum
7
+
8
+ EN = "en"
9
+ ES = "es"
10
+ FR = "fr"
11
+ DE = "de"
12
+ IT = "it"
13
+ PT = "pt"
14
+ NL = "nl"
15
+ RU = "ru"
16
+ JA = "ja"
17
+ KO = "ko"
18
+ ZH = "zh"
19
+ AR = "ar"
20
+ HI = "hi"
21
+ TR = "tr"
22
+ PL = "pl"
23
+ SV = "sv"
24
+ DA = "da"
25
+ NO = "no"
26
+ FI = "fi"
27
+ CS = "cs"
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DexaAiSdk
4
+ module Types
5
+ class ErrorResponse < Internal::Types::Model
6
+ field :error, -> { DexaAiSdk::Types::ErrorResponseError }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end