deeprails 0.11.0 → 0.12.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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +26 -40
  4. data/lib/deeprails/internal/transport/base_client.rb +7 -1
  5. data/lib/deeprails/internal/transport/pooled_net_requester.rb +6 -2
  6. data/lib/deeprails/internal/type/base_model.rb +5 -5
  7. data/lib/deeprails/models/defend_create_response.rb +51 -0
  8. data/lib/deeprails/models/defend_create_workflow_params.rb +19 -19
  9. data/lib/deeprails/models/defend_response.rb +278 -38
  10. data/lib/deeprails/models/defend_retrieve_workflow_params.rb +13 -1
  11. data/lib/deeprails/models/defend_update_response.rb +51 -0
  12. data/lib/deeprails/models/file_response.rb +6 -22
  13. data/lib/deeprails/models/file_upload_params.rb +3 -3
  14. data/lib/deeprails/models/monitor_create_response.rb +51 -0
  15. data/lib/deeprails/models/monitor_detail_response.rb +69 -70
  16. data/lib/deeprails/models/monitor_event_detail_response.rb +182 -0
  17. data/lib/deeprails/models/monitor_event_response.rb +1 -9
  18. data/lib/deeprails/models/monitor_retrieve_params.rb +6 -2
  19. data/lib/deeprails/models/monitor_update_params.rb +11 -11
  20. data/lib/deeprails/models/monitor_update_response.rb +51 -0
  21. data/lib/deeprails/models/workflow_event_detail_response.rb +314 -0
  22. data/lib/deeprails/models/workflow_event_response.rb +29 -30
  23. data/lib/deeprails/models.rb +12 -2
  24. data/lib/deeprails/resources/defend.rb +20 -13
  25. data/lib/deeprails/resources/files.rb +1 -1
  26. data/lib/deeprails/resources/monitor.rb +11 -8
  27. data/lib/deeprails/version.rb +1 -1
  28. data/lib/deeprails.rb +7 -1
  29. data/manifest.yaml +1 -0
  30. data/rbi/deeprails/internal/transport/base_client.rbi +5 -0
  31. data/rbi/deeprails/internal/transport/pooled_net_requester.rbi +6 -2
  32. data/rbi/deeprails/internal/type/base_model.rbi +8 -4
  33. data/rbi/deeprails/models/defend_create_response.rbi +83 -0
  34. data/rbi/deeprails/models/defend_create_workflow_params.rbi +33 -27
  35. data/rbi/deeprails/models/defend_response.rbi +555 -72
  36. data/rbi/deeprails/models/defend_retrieve_workflow_params.rbi +23 -5
  37. data/rbi/deeprails/models/defend_update_response.rbi +83 -0
  38. data/rbi/deeprails/models/file_response.rbi +11 -39
  39. data/rbi/deeprails/models/file_upload_params.rbi +3 -6
  40. data/rbi/deeprails/models/monitor_create_response.rbi +83 -0
  41. data/rbi/deeprails/models/monitor_detail_response.rbi +144 -104
  42. data/rbi/deeprails/models/monitor_event_detail_response.rbi +383 -0
  43. data/rbi/deeprails/models/monitor_event_response.rbi +4 -18
  44. data/rbi/deeprails/models/monitor_retrieve_params.rbi +4 -2
  45. data/rbi/deeprails/models/monitor_update_params.rbi +21 -38
  46. data/rbi/deeprails/models/monitor_update_response.rbi +83 -0
  47. data/rbi/deeprails/models/workflow_event_detail_response.rbi +685 -0
  48. data/rbi/deeprails/models/workflow_event_response.rbi +49 -42
  49. data/rbi/deeprails/models.rbi +12 -2
  50. data/rbi/deeprails/resources/defend.rbi +17 -12
  51. data/rbi/deeprails/resources/files.rbi +1 -1
  52. data/rbi/deeprails/resources/monitor.rbi +8 -8
  53. data/sig/deeprails/internal/transport/base_client.rbs +2 -0
  54. data/sig/deeprails/internal/transport/pooled_net_requester.rbs +4 -1
  55. data/sig/deeprails/models/defend_create_response.rbs +41 -0
  56. data/sig/deeprails/models/defend_create_workflow_params.rbs +7 -7
  57. data/sig/deeprails/models/defend_response.rbs +297 -28
  58. data/sig/deeprails/models/defend_retrieve_workflow_params.rbs +13 -3
  59. data/sig/deeprails/models/defend_update_response.rbs +41 -0
  60. data/sig/deeprails/models/file_response.rbs +5 -27
  61. data/sig/deeprails/models/file_upload_params.rbs +4 -5
  62. data/sig/deeprails/models/monitor_create_response.rbs +41 -0
  63. data/sig/deeprails/models/monitor_detail_response.rbs +72 -61
  64. data/sig/deeprails/models/monitor_event_detail_response.rbs +181 -0
  65. data/sig/deeprails/models/monitor_event_response.rbs +2 -15
  66. data/sig/deeprails/models/monitor_update_params.rbs +13 -13
  67. data/sig/deeprails/models/monitor_update_response.rbs +41 -0
  68. data/sig/deeprails/models/workflow_event_detail_response.rbs +315 -0
  69. data/sig/deeprails/models/workflow_event_response.rbs +24 -24
  70. data/sig/deeprails/models.rbs +12 -2
  71. data/sig/deeprails/resources/defend.rbs +5 -4
  72. data/sig/deeprails/resources/files.rbs +1 -1
  73. data/sig/deeprails/resources/monitor.rbs +3 -3
  74. metadata +20 -5
  75. data/lib/deeprails/models/monitor_response.rb +0 -83
  76. data/rbi/deeprails/models/monitor_response.rbi +0 -142
  77. data/sig/deeprails/models/monitor_response.rbs +0 -73
@@ -0,0 +1,314 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Deeprails
4
+ module Models
5
+ # @see Deeprails::Resources::Defend#retrieve_event
6
+ class WorkflowEventDetailResponse < Deeprails::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # A unique workflow event ID.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute event_status
14
+ # Status of the event.
15
+ #
16
+ # @return [Symbol, Deeprails::Models::WorkflowEventDetailResponse::EventStatus]
17
+ required :event_status, enum: -> { Deeprails::WorkflowEventDetailResponse::EventStatus }
18
+
19
+ # @!attribute filtered
20
+ # Whether the event was filtered and requires improvement.
21
+ #
22
+ # @return [Boolean]
23
+ required :filtered, Deeprails::Internal::Type::Boolean
24
+
25
+ # @!attribute improvement_tool_type
26
+ # Type of improvement tool used to improve the event.
27
+ #
28
+ # @return [Symbol, Deeprails::Models::WorkflowEventDetailResponse::ImprovementToolType]
29
+ required :improvement_tool_type, enum: -> { Deeprails::WorkflowEventDetailResponse::ImprovementToolType }
30
+
31
+ # @!attribute workflow_id
32
+ # Workflow ID associated with the event.
33
+ #
34
+ # @return [String]
35
+ required :workflow_id, String
36
+
37
+ # @!attribute automatic_hallucination_tolerance_levels
38
+ # Mapping of guardrail metric names to tolerance values. Values are strings
39
+ # (`low`, `medium`, `high`) representing automatic tolerance levels.
40
+ #
41
+ # @return [Hash{Symbol=>Symbol, Deeprails::Models::WorkflowEventDetailResponse::AutomaticHallucinationToleranceLevel}, nil]
42
+ optional :automatic_hallucination_tolerance_levels,
43
+ -> { Deeprails::Internal::Type::HashOf[enum: Deeprails::WorkflowEventDetailResponse::AutomaticHallucinationToleranceLevel] }
44
+
45
+ # @!attribute capabilities
46
+ # Extended AI capabilities available to the event, if any. Can be `web_search`
47
+ # and/or `file_search`.
48
+ #
49
+ # @return [Array<Deeprails::Models::WorkflowEventDetailResponse::Capability>, nil]
50
+ optional :capabilities,
51
+ -> { Deeprails::Internal::Type::ArrayOf[Deeprails::WorkflowEventDetailResponse::Capability] }
52
+
53
+ # @!attribute custom_hallucination_threshold_values
54
+ # Mapping of guardrail metric names to threshold values. Values are floating point
55
+ # numbers (0.0-1.0) representing custom thresholds.
56
+ #
57
+ # @return [Hash{Symbol=>Float}, nil]
58
+ optional :custom_hallucination_threshold_values, Deeprails::Internal::Type::HashOf[Float]
59
+
60
+ # @!attribute evaluation_history
61
+ # History of evaluations for the event.
62
+ #
63
+ # @return [Array<Deeprails::Models::WorkflowEventDetailResponse::EvaluationHistory>, nil]
64
+ optional :evaluation_history,
65
+ -> { Deeprails::Internal::Type::ArrayOf[Deeprails::WorkflowEventDetailResponse::EvaluationHistory] }
66
+
67
+ # @!attribute evaluation_result
68
+ # Evaluation result consisting of average scores and rationales for each of the
69
+ # evaluated guardrail metrics.
70
+ #
71
+ # @return [Hash{Symbol=>Object}, nil]
72
+ optional :evaluation_result, Deeprails::Internal::Type::HashOf[Deeprails::Internal::Type::Unknown]
73
+
74
+ # @!attribute files
75
+ # List of files available to the event, if any. Will only be present if
76
+ # `file_search` is enabled.
77
+ #
78
+ # @return [Array<Deeprails::Models::WorkflowEventDetailResponse::File>, nil]
79
+ optional :files, -> { Deeprails::Internal::Type::ArrayOf[Deeprails::WorkflowEventDetailResponse::File] }
80
+
81
+ # @!attribute improved_model_output
82
+ # Improved model output after improvement tool was applied and each metric passed
83
+ # evaluation.
84
+ #
85
+ # @return [String, nil]
86
+ optional :improved_model_output, String
87
+
88
+ # @!attribute improvement_tool_status
89
+ # Status of the improvement tool used to improve the event.
90
+ #
91
+ # @return [Symbol, Deeprails::Models::WorkflowEventDetailResponse::ImprovementToolStatus, nil]
92
+ optional :improvement_tool_status,
93
+ enum: -> { Deeprails::WorkflowEventDetailResponse::ImprovementToolStatus },
94
+ nil?: true
95
+
96
+ # @!attribute threshold_type
97
+ # Type of thresholds used to evaluate the event.
98
+ #
99
+ # @return [Symbol, Deeprails::Models::WorkflowEventDetailResponse::ThresholdType, nil]
100
+ optional :threshold_type, enum: -> { Deeprails::WorkflowEventDetailResponse::ThresholdType }
101
+
102
+ # @!method initialize(event_id:, event_status:, filtered:, improvement_tool_type:, workflow_id:, automatic_hallucination_tolerance_levels: nil, capabilities: nil, custom_hallucination_threshold_values: nil, evaluation_history: nil, evaluation_result: nil, files: nil, improved_model_output: nil, improvement_tool_status: nil, threshold_type: nil)
103
+ # Some parameter documentations has been truncated, see
104
+ # {Deeprails::Models::WorkflowEventDetailResponse} for more details.
105
+ #
106
+ # @param event_id [String] A unique workflow event ID.
107
+ #
108
+ # @param event_status [Symbol, Deeprails::Models::WorkflowEventDetailResponse::EventStatus] Status of the event.
109
+ #
110
+ # @param filtered [Boolean] Whether the event was filtered and requires improvement.
111
+ #
112
+ # @param improvement_tool_type [Symbol, Deeprails::Models::WorkflowEventDetailResponse::ImprovementToolType] Type of improvement tool used to improve the event.
113
+ #
114
+ # @param workflow_id [String] Workflow ID associated with the event.
115
+ #
116
+ # @param automatic_hallucination_tolerance_levels [Hash{Symbol=>Symbol, Deeprails::Models::WorkflowEventDetailResponse::AutomaticHallucinationToleranceLevel}] Mapping of guardrail metric names to tolerance values. Values are strings (`low`
117
+ #
118
+ # @param capabilities [Array<Deeprails::Models::WorkflowEventDetailResponse::Capability>] Extended AI capabilities available to the event, if any. Can be `web_search` and
119
+ #
120
+ # @param custom_hallucination_threshold_values [Hash{Symbol=>Float}] Mapping of guardrail metric names to threshold values. Values are floating point
121
+ #
122
+ # @param evaluation_history [Array<Deeprails::Models::WorkflowEventDetailResponse::EvaluationHistory>] History of evaluations for the event.
123
+ #
124
+ # @param evaluation_result [Hash{Symbol=>Object}] Evaluation result consisting of average scores and rationales for each of the ev
125
+ #
126
+ # @param files [Array<Deeprails::Models::WorkflowEventDetailResponse::File>] List of files available to the event, if any. Will only be present if `file_sear
127
+ #
128
+ # @param improved_model_output [String] Improved model output after improvement tool was applied and each metric passed
129
+ #
130
+ # @param improvement_tool_status [Symbol, Deeprails::Models::WorkflowEventDetailResponse::ImprovementToolStatus, nil] Status of the improvement tool used to improve the event.
131
+ #
132
+ # @param threshold_type [Symbol, Deeprails::Models::WorkflowEventDetailResponse::ThresholdType] Type of thresholds used to evaluate the event.
133
+
134
+ # Status of the event.
135
+ #
136
+ # @see Deeprails::Models::WorkflowEventDetailResponse#event_status
137
+ module EventStatus
138
+ extend Deeprails::Internal::Type::Enum
139
+
140
+ IN_PROGRESS = :"In Progress"
141
+ COMPLETED = :Completed
142
+
143
+ # @!method self.values
144
+ # @return [Array<Symbol>]
145
+ end
146
+
147
+ # Type of improvement tool used to improve the event.
148
+ #
149
+ # @see Deeprails::Models::WorkflowEventDetailResponse#improvement_tool_type
150
+ module ImprovementToolType
151
+ extend Deeprails::Internal::Type::Enum
152
+
153
+ REGEN = :regen
154
+ FIXIT = :fixit
155
+ DO_NOTHING = :do_nothing
156
+
157
+ # @!method self.values
158
+ # @return [Array<Symbol>]
159
+ end
160
+
161
+ module AutomaticHallucinationToleranceLevel
162
+ extend Deeprails::Internal::Type::Enum
163
+
164
+ LOW = :low
165
+ MEDIUM = :medium
166
+ HIGH = :high
167
+
168
+ # @!method self.values
169
+ # @return [Array<Symbol>]
170
+ end
171
+
172
+ class Capability < Deeprails::Internal::Type::BaseModel
173
+ # @!attribute capability
174
+ #
175
+ # @return [String, nil]
176
+ optional :capability, String
177
+
178
+ # @!method initialize(capability: nil)
179
+ # @param capability [String]
180
+ end
181
+
182
+ class EvaluationHistory < Deeprails::Internal::Type::BaseModel
183
+ # @!attribute attempt
184
+ #
185
+ # @return [String, nil]
186
+ optional :attempt, String
187
+
188
+ # @!attribute created_at
189
+ #
190
+ # @return [Time, nil]
191
+ optional :created_at, Time
192
+
193
+ # @!attribute error_message
194
+ #
195
+ # @return [String, nil]
196
+ optional :error_message, String
197
+
198
+ # @!attribute evaluation_result
199
+ #
200
+ # @return [Hash{Symbol=>Object}, nil]
201
+ optional :evaluation_result, Deeprails::Internal::Type::HashOf[Deeprails::Internal::Type::Unknown]
202
+
203
+ # @!attribute evaluation_status
204
+ #
205
+ # @return [String, nil]
206
+ optional :evaluation_status, String
207
+
208
+ # @!attribute evaluation_total_cost
209
+ #
210
+ # @return [Float, nil]
211
+ optional :evaluation_total_cost, Float
212
+
213
+ # @!attribute guardrail_metrics
214
+ #
215
+ # @return [Array<String>, nil]
216
+ optional :guardrail_metrics, Deeprails::Internal::Type::ArrayOf[String]
217
+
218
+ # @!attribute model_input
219
+ #
220
+ # @return [Hash{Symbol=>Object}, nil]
221
+ optional :model_input, Deeprails::Internal::Type::HashOf[Deeprails::Internal::Type::Unknown]
222
+
223
+ # @!attribute model_output
224
+ #
225
+ # @return [String, nil]
226
+ optional :model_output, String
227
+
228
+ # @!attribute modified_at
229
+ #
230
+ # @return [Time, nil]
231
+ optional :modified_at, Time
232
+
233
+ # @!attribute nametag
234
+ #
235
+ # @return [String, nil]
236
+ optional :nametag, String
237
+
238
+ # @!attribute progress
239
+ #
240
+ # @return [Integer, nil]
241
+ optional :progress, Integer
242
+
243
+ # @!attribute run_mode
244
+ #
245
+ # @return [String, nil]
246
+ optional :run_mode, String
247
+
248
+ # @!method initialize(attempt: nil, created_at: nil, error_message: nil, evaluation_result: nil, evaluation_status: nil, evaluation_total_cost: nil, guardrail_metrics: nil, model_input: nil, model_output: nil, modified_at: nil, nametag: nil, progress: nil, run_mode: nil)
249
+ # @param attempt [String]
250
+ # @param created_at [Time]
251
+ # @param error_message [String]
252
+ # @param evaluation_result [Hash{Symbol=>Object}]
253
+ # @param evaluation_status [String]
254
+ # @param evaluation_total_cost [Float]
255
+ # @param guardrail_metrics [Array<String>]
256
+ # @param model_input [Hash{Symbol=>Object}]
257
+ # @param model_output [String]
258
+ # @param modified_at [Time]
259
+ # @param nametag [String]
260
+ # @param progress [Integer]
261
+ # @param run_mode [String]
262
+ end
263
+
264
+ class File < Deeprails::Internal::Type::BaseModel
265
+ # @!attribute file_id
266
+ #
267
+ # @return [String, nil]
268
+ optional :file_id, String
269
+
270
+ # @!attribute file_name
271
+ #
272
+ # @return [String, nil]
273
+ optional :file_name, String
274
+
275
+ # @!attribute file_size
276
+ #
277
+ # @return [Integer, nil]
278
+ optional :file_size, Integer
279
+
280
+ # @!method initialize(file_id: nil, file_name: nil, file_size: nil)
281
+ # @param file_id [String]
282
+ # @param file_name [String]
283
+ # @param file_size [Integer]
284
+ end
285
+
286
+ # Status of the improvement tool used to improve the event.
287
+ #
288
+ # @see Deeprails::Models::WorkflowEventDetailResponse#improvement_tool_status
289
+ module ImprovementToolStatus
290
+ extend Deeprails::Internal::Type::Enum
291
+
292
+ IMPROVED = :improved
293
+ FAILED_ON_MAX_RETRIES = :"failed on max retries"
294
+ IMPROVEMENT_REQUIRED = :improvement_required
295
+
296
+ # @!method self.values
297
+ # @return [Array<Symbol>]
298
+ end
299
+
300
+ # Type of thresholds used to evaluate the event.
301
+ #
302
+ # @see Deeprails::Models::WorkflowEventDetailResponse#threshold_type
303
+ module ThresholdType
304
+ extend Deeprails::Internal::Type::Enum
305
+
306
+ CUSTOM = :custom
307
+ AUTOMATIC = :automatic
308
+
309
+ # @!method self.values
310
+ # @return [Array<Symbol>]
311
+ end
312
+ end
313
+ end
314
+ end
@@ -2,54 +2,53 @@
2
2
 
3
3
  module Deeprails
4
4
  module Models
5
- # @see Deeprails::Resources::Defend#retrieve_event
5
+ # @see Deeprails::Resources::Defend#submit_event
6
6
  class WorkflowEventResponse < Deeprails::Internal::Type::BaseModel
7
+ # @!attribute created_at
8
+ # The time the event was created in UTC.
9
+ #
10
+ # @return [Time]
11
+ required :created_at, Time
12
+
7
13
  # @!attribute event_id
8
14
  # A unique workflow event ID.
9
15
  #
10
16
  # @return [String]
11
17
  required :event_id, String
12
18
 
19
+ # @!attribute status
20
+ # Status of the event.
21
+ #
22
+ # @return [Symbol, Deeprails::Models::WorkflowEventResponse::Status]
23
+ required :status, enum: -> { Deeprails::WorkflowEventResponse::Status }
24
+
13
25
  # @!attribute workflow_id
14
26
  # Workflow ID associated with the event.
15
27
  #
16
28
  # @return [String]
17
29
  required :workflow_id, String
18
30
 
19
- # @!attribute attempt_number
20
- # Count of improvement attempts for the event. If greater than one then all
21
- # previous improvement attempts failed.
22
- #
23
- # @return [Integer, nil]
24
- optional :attempt_number, Integer
25
-
26
- # @!attribute evaluation_id
27
- # A unique evaluation ID associated with this event. Every event has one or more
28
- # evaluation attempts.
29
- #
30
- # @return [String, nil]
31
- optional :evaluation_id, String
32
-
33
- # @!attribute filtered
34
- # `False` if evaluation passed all of the guardrail metrics, `True` if evaluation
35
- # failed any of the guardrail metrics.
36
- #
37
- # @return [Boolean, nil]
38
- optional :filtered, Deeprails::Internal::Type::Boolean
39
-
40
- # @!method initialize(event_id:, workflow_id:, attempt_number: nil, evaluation_id: nil, filtered: nil)
41
- # Some parameter documentations has been truncated, see
42
- # {Deeprails::Models::WorkflowEventResponse} for more details.
31
+ # @!method initialize(created_at:, event_id:, status:, workflow_id:)
32
+ # @param created_at [Time] The time the event was created in UTC.
43
33
  #
44
34
  # @param event_id [String] A unique workflow event ID.
45
35
  #
46
- # @param workflow_id [String] Workflow ID associated with the event.
47
- #
48
- # @param attempt_number [Integer] Count of improvement attempts for the event. If greater than one then all previ
36
+ # @param status [Symbol, Deeprails::Models::WorkflowEventResponse::Status] Status of the event.
49
37
  #
50
- # @param evaluation_id [String] A unique evaluation ID associated with this event. Every event has one or more
38
+ # @param workflow_id [String] Workflow ID associated with the event.
39
+
40
+ # Status of the event.
51
41
  #
52
- # @param filtered [Boolean] `False` if evaluation passed all of the guardrail metrics, `True` if evaluation
42
+ # @see Deeprails::Models::WorkflowEventResponse#status
43
+ module Status
44
+ extend Deeprails::Internal::Type::Enum
45
+
46
+ IN_PROGRESS = :"In Progress"
47
+ COMPLETED = :Completed
48
+
49
+ # @!method self.values
50
+ # @return [Array<Symbol>]
51
+ end
53
52
  end
54
53
  end
55
54
  end
@@ -39,6 +39,8 @@ module Deeprails
39
39
  mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
40
40
  end
41
41
 
42
+ DefendCreateResponse = Deeprails::Models::DefendCreateResponse
43
+
42
44
  DefendCreateWorkflowParams = Deeprails::Models::DefendCreateWorkflowParams
43
45
 
44
46
  DefendResponse = Deeprails::Models::DefendResponse
@@ -49,6 +51,8 @@ module Deeprails
49
51
 
50
52
  DefendSubmitEventParams = Deeprails::Models::DefendSubmitEventParams
51
53
 
54
+ DefendUpdateResponse = Deeprails::Models::DefendUpdateResponse
55
+
52
56
  DefendUpdateWorkflowParams = Deeprails::Models::DefendUpdateWorkflowParams
53
57
 
54
58
  FileResponse = Deeprails::Models::FileResponse
@@ -57,11 +61,13 @@ module Deeprails
57
61
 
58
62
  MonitorCreateParams = Deeprails::Models::MonitorCreateParams
59
63
 
64
+ MonitorCreateResponse = Deeprails::Models::MonitorCreateResponse
65
+
60
66
  MonitorDetailResponse = Deeprails::Models::MonitorDetailResponse
61
67
 
62
- MonitorEventResponse = Deeprails::Models::MonitorEventResponse
68
+ MonitorEventDetailResponse = Deeprails::Models::MonitorEventDetailResponse
63
69
 
64
- MonitorResponse = Deeprails::Models::MonitorResponse
70
+ MonitorEventResponse = Deeprails::Models::MonitorEventResponse
65
71
 
66
72
  MonitorRetrieveParams = Deeprails::Models::MonitorRetrieveParams
67
73
 
@@ -69,5 +75,9 @@ module Deeprails
69
75
 
70
76
  MonitorUpdateParams = Deeprails::Models::MonitorUpdateParams
71
77
 
78
+ MonitorUpdateResponse = Deeprails::Models::MonitorUpdateResponse
79
+
80
+ WorkflowEventDetailResponse = Deeprails::Models::WorkflowEventDetailResponse
81
+
72
82
  WorkflowEventResponse = Deeprails::Models::WorkflowEventResponse
73
83
  end
@@ -9,13 +9,13 @@ module Deeprails
9
9
  # Use this endpoint to create a new guardrail workflow with optional guardrail
10
10
  # thresholds and improvement actions
11
11
  #
12
- # @overload create_workflow(improvement_action:, name:, type:, automatic_hallucination_tolerance_levels: nil, custom_hallucination_threshold_values: nil, description: nil, file_search: nil, max_improvement_attempts: nil, web_search: nil, request_options: {})
12
+ # @overload create_workflow(improvement_action:, name:, threshold_type:, automatic_hallucination_tolerance_levels: nil, custom_hallucination_threshold_values: nil, description: nil, file_search: nil, max_improvement_attempts: nil, web_search: nil, request_options: {})
13
13
  #
14
- # @param improvement_action [Symbol, Deeprails::Models::DefendCreateWorkflowParams::ImprovementAction] The action used to improve outputs that fail one or guardrail metrics for the wo
14
+ # @param improvement_action [Symbol, Deeprails::Models::DefendCreateWorkflowParams::ImprovementAction] The action used to improve outputs that fail one or more guardrail metrics for t
15
15
  #
16
16
  # @param name [String] Name of the workflow.
17
17
  #
18
- # @param type [Symbol, Deeprails::Models::DefendCreateWorkflowParams::Type] Type of thresholds to use for the workflow, either `automatic` or `custom`. Aut
18
+ # @param threshold_type [Symbol, Deeprails::Models::DefendCreateWorkflowParams::ThresholdType] Type of thresholds to use for the workflow, either `automatic` or `custom`. Aut
19
19
  #
20
20
  # @param automatic_hallucination_tolerance_levels [Hash{Symbol=>Symbol, Deeprails::Models::DefendCreateWorkflowParams::AutomaticHallucinationToleranceLevel}] Mapping of guardrail metrics to hallucination tolerance levels
21
21
  #
@@ -25,13 +25,13 @@ module Deeprails
25
25
  #
26
26
  # @param file_search [Array<String>] An array of file IDs to search in the workflow's evaluations. Files must be uplo
27
27
  #
28
- # @param max_improvement_attempts [Integer] Max. number of improvement action retries until a given event passes the guardra
28
+ # @param max_improvement_attempts [Integer] Max. number of improvement action attempts until a given event passes the guardr
29
29
  #
30
30
  # @param web_search [Boolean] Whether to enable web search for this workflow's evaluations. Defaults to false.
31
31
  #
32
32
  # @param request_options [Deeprails::RequestOptions, Hash{Symbol=>Object}, nil]
33
33
  #
34
- # @return [Deeprails::Models::DefendResponse]
34
+ # @return [Deeprails::Models::DefendCreateResponse]
35
35
  #
36
36
  # @see Deeprails::Models::DefendCreateWorkflowParams
37
37
  def create_workflow(params)
@@ -40,7 +40,7 @@ module Deeprails
40
40
  method: :post,
41
41
  path: "defend",
42
42
  body: parsed,
43
- model: Deeprails::DefendResponse,
43
+ model: Deeprails::DefendCreateResponse,
44
44
  options: options
45
45
  )
46
46
  end
@@ -55,7 +55,7 @@ module Deeprails
55
55
  #
56
56
  # @param request_options [Deeprails::RequestOptions, Hash{Symbol=>Object}, nil]
57
57
  #
58
- # @return [Deeprails::Models::WorkflowEventResponse]
58
+ # @return [Deeprails::Models::WorkflowEventDetailResponse]
59
59
  #
60
60
  # @see Deeprails::Models::DefendRetrieveEventParams
61
61
  def retrieve_event(event_id, params)
@@ -67,28 +67,35 @@ module Deeprails
67
67
  @client.request(
68
68
  method: :get,
69
69
  path: ["defend/%1$s/events/%2$s", workflow_id, event_id],
70
- model: Deeprails::WorkflowEventResponse,
70
+ model: Deeprails::WorkflowEventDetailResponse,
71
71
  options: options
72
72
  )
73
73
  end
74
74
 
75
+ # Some parameter documentations has been truncated, see
76
+ # {Deeprails::Models::DefendRetrieveWorkflowParams} for more details.
77
+ #
75
78
  # Use this endpoint to retrieve the details for a specific defend workflow
76
79
  #
77
- # @overload retrieve_workflow(workflow_id, request_options: {})
80
+ # @overload retrieve_workflow(workflow_id, limit: nil, request_options: {})
78
81
  #
79
82
  # @param workflow_id [String] The ID of the workflow to retrieve.
80
83
  #
84
+ # @param limit [Integer] Limit the number of returned events associated with this workflow. Defaults to
85
+ #
81
86
  # @param request_options [Deeprails::RequestOptions, Hash{Symbol=>Object}, nil]
82
87
  #
83
88
  # @return [Deeprails::Models::DefendResponse]
84
89
  #
85
90
  # @see Deeprails::Models::DefendRetrieveWorkflowParams
86
91
  def retrieve_workflow(workflow_id, params = {})
92
+ parsed, options = Deeprails::DefendRetrieveWorkflowParams.dump_request(params)
87
93
  @client.request(
88
94
  method: :get,
89
95
  path: ["defend/%1$s", workflow_id],
96
+ query: parsed,
90
97
  model: Deeprails::DefendResponse,
91
- options: params[:request_options]
98
+ options: options
92
99
  )
93
100
  end
94
101
 
@@ -128,7 +135,7 @@ module Deeprails
128
135
  )
129
136
  end
130
137
 
131
- # Use this endpoint to update an existing guardrail workflow
138
+ # Use this endpoint to update an existing defend workflow
132
139
  #
133
140
  # @overload update_workflow(workflow_id, description: nil, name: nil, request_options: {})
134
141
  #
@@ -140,7 +147,7 @@ module Deeprails
140
147
  #
141
148
  # @param request_options [Deeprails::RequestOptions, Hash{Symbol=>Object}, nil]
142
149
  #
143
- # @return [Deeprails::Models::DefendResponse]
150
+ # @return [Deeprails::Models::DefendUpdateResponse]
144
151
  #
145
152
  # @see Deeprails::Models::DefendUpdateWorkflowParams
146
153
  def update_workflow(workflow_id, params = {})
@@ -149,7 +156,7 @@ module Deeprails
149
156
  method: :put,
150
157
  path: ["defend/%1$s", workflow_id],
151
158
  body: parsed,
152
- model: Deeprails::DefendResponse,
159
+ model: Deeprails::DefendUpdateResponse,
153
160
  options: options
154
161
  )
155
162
  end
@@ -7,7 +7,7 @@ module Deeprails
7
7
  #
8
8
  # @overload upload(file:, request_options: {})
9
9
  #
10
- # @param file [Pathname, StringIO, IO, String, Deeprails::FilePart] The contents of the file to upload.
10
+ # @param file [Array<String>] The contents of the file to upload.
11
11
  #
12
12
  # @param request_options [Deeprails::RequestOptions, Hash{Symbol=>Object}, nil]
13
13
  #
@@ -23,7 +23,7 @@ module Deeprails
23
23
  #
24
24
  # @param request_options [Deeprails::RequestOptions, Hash{Symbol=>Object}, nil]
25
25
  #
26
- # @return [Deeprails::Models::MonitorResponse]
26
+ # @return [Deeprails::Models::MonitorCreateResponse]
27
27
  #
28
28
  # @see Deeprails::Models::MonitorCreateParams
29
29
  def create(params)
@@ -32,11 +32,14 @@ module Deeprails
32
32
  method: :post,
33
33
  path: "monitor",
34
34
  body: parsed,
35
- model: Deeprails::MonitorResponse,
35
+ model: Deeprails::MonitorCreateResponse,
36
36
  options: options
37
37
  )
38
38
  end
39
39
 
40
+ # Some parameter documentations has been truncated, see
41
+ # {Deeprails::Models::MonitorRetrieveParams} for more details.
42
+ #
40
43
  # Use this endpoint to retrieve the details and evaluations associated with a
41
44
  # specific monitor
42
45
  #
@@ -44,7 +47,7 @@ module Deeprails
44
47
  #
45
48
  # @param monitor_id [String] The ID of the monitor to retrieve.
46
49
  #
47
- # @param limit [Integer] Limit the returned events associated with this monitor. Defaults to 10.
50
+ # @param limit [Integer] Limit the number of returned evaluations associated with this monitor. Defaults
48
51
  #
49
52
  # @param request_options [Deeprails::RequestOptions, Hash{Symbol=>Object}, nil]
50
53
  #
@@ -68,19 +71,19 @@ module Deeprails
68
71
  # Use this endpoint to update the name, description, or status of an existing
69
72
  # monitor
70
73
  #
71
- # @overload update(monitor_id, description: nil, monitor_status: nil, name: nil, request_options: {})
74
+ # @overload update(monitor_id, description: nil, name: nil, status: nil, request_options: {})
72
75
  #
73
76
  # @param monitor_id [String] The ID of the monitor to edit.
74
77
  #
75
78
  # @param description [String] Description of the monitor.
76
79
  #
77
- # @param monitor_status [Symbol, Deeprails::Models::MonitorUpdateParams::MonitorStatus] Status of the monitor. Can be `active` or `inactive`. Inactive monitors no lon
78
- #
79
80
  # @param name [String] Name of the monitor.
80
81
  #
82
+ # @param status [Symbol, Deeprails::Models::MonitorUpdateParams::Status] Status of the monitor. Can be `active` or `inactive`. Inactive monitors no lon
83
+ #
81
84
  # @param request_options [Deeprails::RequestOptions, Hash{Symbol=>Object}, nil]
82
85
  #
83
- # @return [Deeprails::Models::MonitorResponse]
86
+ # @return [Deeprails::Models::MonitorUpdateResponse]
84
87
  #
85
88
  # @see Deeprails::Models::MonitorUpdateParams
86
89
  def update(monitor_id, params = {})
@@ -89,7 +92,7 @@ module Deeprails
89
92
  method: :put,
90
93
  path: ["monitor/%1$s", monitor_id],
91
94
  body: parsed,
92
- model: Deeprails::MonitorResponse,
95
+ model: Deeprails::MonitorUpdateResponse,
93
96
  options: options
94
97
  )
95
98
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Deeprails
4
- VERSION = "0.11.0"
4
+ VERSION = "0.12.0"
5
5
  end
data/lib/deeprails.rb CHANGED
@@ -9,6 +9,7 @@ require "erb"
9
9
  require "etc"
10
10
  require "json"
11
11
  require "net/http"
12
+ require "openssl"
12
13
  require "pathname"
13
14
  require "rbconfig"
14
15
  require "securerandom"
@@ -50,21 +51,26 @@ require_relative "deeprails/errors"
50
51
  require_relative "deeprails/internal/transport/base_client"
51
52
  require_relative "deeprails/internal/transport/pooled_net_requester"
52
53
  require_relative "deeprails/client"
54
+ require_relative "deeprails/models/defend_create_response"
53
55
  require_relative "deeprails/models/defend_create_workflow_params"
54
56
  require_relative "deeprails/models/defend_response"
55
57
  require_relative "deeprails/models/defend_retrieve_event_params"
56
58
  require_relative "deeprails/models/defend_retrieve_workflow_params"
57
59
  require_relative "deeprails/models/defend_submit_event_params"
60
+ require_relative "deeprails/models/defend_update_response"
58
61
  require_relative "deeprails/models/defend_update_workflow_params"
59
62
  require_relative "deeprails/models/file_response"
60
63
  require_relative "deeprails/models/file_upload_params"
61
64
  require_relative "deeprails/models/monitor_create_params"
65
+ require_relative "deeprails/models/monitor_create_response"
62
66
  require_relative "deeprails/models/monitor_detail_response"
67
+ require_relative "deeprails/models/monitor_event_detail_response"
63
68
  require_relative "deeprails/models/monitor_event_response"
64
- require_relative "deeprails/models/monitor_response"
65
69
  require_relative "deeprails/models/monitor_retrieve_params"
66
70
  require_relative "deeprails/models/monitor_submit_event_params"
67
71
  require_relative "deeprails/models/monitor_update_params"
72
+ require_relative "deeprails/models/monitor_update_response"
73
+ require_relative "deeprails/models/workflow_event_detail_response"
68
74
  require_relative "deeprails/models/workflow_event_response"
69
75
  require_relative "deeprails/models"
70
76
  require_relative "deeprails/resources/defend"