deeprails 0.7.0 → 0.9.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/deeprails/client.rb +0 -4
  5. data/lib/deeprails/internal/transport/pooled_net_requester.rb +30 -24
  6. data/lib/deeprails/models/defend_create_workflow_params.rb +4 -4
  7. data/lib/deeprails/models/defend_response.rb +4 -4
  8. data/lib/deeprails/models/defend_submit_event_params.rb +4 -4
  9. data/lib/deeprails/models/monitor_detail_response.rb +378 -0
  10. data/lib/deeprails/models/monitor_event_response.rb +41 -0
  11. data/lib/deeprails/models/monitor_response.rb +83 -0
  12. data/lib/deeprails/models/monitor_submit_event_params.rb +2 -2
  13. data/lib/deeprails/models.rb +4 -6
  14. data/lib/deeprails/resources/defend.rb +2 -2
  15. data/lib/deeprails/resources/monitor.rb +8 -8
  16. data/lib/deeprails/version.rb +1 -1
  17. data/lib/deeprails.rb +3 -7
  18. data/rbi/deeprails/client.rbi +0 -3
  19. data/rbi/deeprails/models/defend_create_workflow_params.rbi +6 -6
  20. data/rbi/deeprails/models/defend_response.rbi +6 -6
  21. data/rbi/deeprails/models/defend_submit_event_params.rbi +5 -5
  22. data/rbi/deeprails/models/monitor_detail_response.rbi +730 -0
  23. data/rbi/deeprails/models/monitor_event_response.rbi +64 -0
  24. data/rbi/deeprails/models/monitor_response.rbi +142 -0
  25. data/rbi/deeprails/models/monitor_submit_event_params.rbi +3 -3
  26. data/rbi/deeprails/models.rbi +4 -6
  27. data/rbi/deeprails/resources/defend.rbi +3 -3
  28. data/rbi/deeprails/resources/monitor.rbi +5 -5
  29. data/sig/deeprails/client.rbs +0 -2
  30. data/sig/deeprails/models/defend_create_workflow_params.rbs +5 -5
  31. data/sig/deeprails/models/defend_response.rbs +5 -5
  32. data/sig/deeprails/models/monitor_detail_response.rbs +335 -0
  33. data/sig/deeprails/models/monitor_event_response.rbs +37 -0
  34. data/sig/deeprails/models/monitor_response.rbs +73 -0
  35. data/sig/deeprails/models.rbs +4 -6
  36. data/sig/deeprails/resources/defend.rbs +1 -1
  37. data/sig/deeprails/resources/monitor.rbs +4 -4
  38. metadata +11 -23
  39. data/lib/deeprails/models/api_response.rb +0 -116
  40. data/lib/deeprails/models/evaluate_create_params.rb +0 -134
  41. data/lib/deeprails/models/evaluate_retrieve_params.rb +0 -14
  42. data/lib/deeprails/models/evaluation.rb +0 -233
  43. data/lib/deeprails/models/monitor_retrieve_response.rb +0 -183
  44. data/lib/deeprails/models/monitor_submit_event_response.rb +0 -74
  45. data/lib/deeprails/resources/evaluate.rb +0 -70
  46. data/rbi/deeprails/models/api_response.rbi +0 -201
  47. data/rbi/deeprails/models/evaluate_create_params.rbi +0 -280
  48. data/rbi/deeprails/models/evaluate_retrieve_params.rbi +0 -27
  49. data/rbi/deeprails/models/evaluation.rbi +0 -402
  50. data/rbi/deeprails/models/monitor_retrieve_response.rbi +0 -333
  51. data/rbi/deeprails/models/monitor_submit_event_response.rbi +0 -131
  52. data/rbi/deeprails/resources/evaluate.rbi +0 -66
  53. data/sig/deeprails/models/api_response.rbs +0 -100
  54. data/sig/deeprails/models/evaluate_create_params.rbs +0 -122
  55. data/sig/deeprails/models/evaluate_retrieve_params.rbs +0 -15
  56. data/sig/deeprails/models/evaluation.rbs +0 -204
  57. data/sig/deeprails/models/monitor_retrieve_response.rbs +0 -167
  58. data/sig/deeprails/models/monitor_submit_event_response.rbs +0 -70
  59. data/sig/deeprails/resources/evaluate.rbs +0 -22
@@ -1,333 +0,0 @@
1
- # typed: strong
2
-
3
- module Deeprails
4
- module Models
5
- class MonitorRetrieveResponse < Deeprails::Internal::Type::BaseModel
6
- OrHash =
7
- T.type_alias do
8
- T.any(
9
- Deeprails::Models::MonitorRetrieveResponse,
10
- Deeprails::Internal::AnyHash
11
- )
12
- end
13
-
14
- # Represents whether the request was completed successfully.
15
- sig { returns(T::Boolean) }
16
- attr_accessor :success
17
-
18
- sig do
19
- returns(T.nilable(Deeprails::Models::MonitorRetrieveResponse::Data))
20
- end
21
- attr_reader :data
22
-
23
- sig do
24
- params(
25
- data: Deeprails::Models::MonitorRetrieveResponse::Data::OrHash
26
- ).void
27
- end
28
- attr_writer :data
29
-
30
- # The accompanying message for the request. Includes error details when
31
- # applicable.
32
- sig { returns(T.nilable(String)) }
33
- attr_reader :message
34
-
35
- sig { params(message: String).void }
36
- attr_writer :message
37
-
38
- # Response wrapper for operations returning a MonitorDetailResponse.
39
- sig do
40
- params(
41
- success: T::Boolean,
42
- data: Deeprails::Models::MonitorRetrieveResponse::Data::OrHash,
43
- message: String
44
- ).returns(T.attached_class)
45
- end
46
- def self.new(
47
- # Represents whether the request was completed successfully.
48
- success:,
49
- data: nil,
50
- # The accompanying message for the request. Includes error details when
51
- # applicable.
52
- message: nil
53
- )
54
- end
55
-
56
- sig do
57
- override.returns(
58
- {
59
- success: T::Boolean,
60
- data: Deeprails::Models::MonitorRetrieveResponse::Data,
61
- message: String
62
- }
63
- )
64
- end
65
- def to_hash
66
- end
67
-
68
- class Data < Deeprails::Internal::Type::BaseModel
69
- OrHash =
70
- T.type_alias do
71
- T.any(
72
- Deeprails::Models::MonitorRetrieveResponse::Data,
73
- Deeprails::Internal::AnyHash
74
- )
75
- end
76
-
77
- # A unique monitor ID.
78
- sig { returns(String) }
79
- attr_accessor :monitor_id
80
-
81
- # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
82
- # longer record and evaluate events.
83
- sig do
84
- returns(
85
- Deeprails::Models::MonitorRetrieveResponse::Data::MonitorStatus::TaggedSymbol
86
- )
87
- end
88
- attr_accessor :monitor_status
89
-
90
- # Name of this monitor.
91
- sig { returns(String) }
92
- attr_accessor :name
93
-
94
- # The time the monitor was created in UTC.
95
- sig { returns(T.nilable(Time)) }
96
- attr_reader :created_at
97
-
98
- sig { params(created_at: Time).void }
99
- attr_writer :created_at
100
-
101
- # Description of this monitor.
102
- sig { returns(T.nilable(String)) }
103
- attr_reader :description
104
-
105
- sig { params(description: String).void }
106
- attr_writer :description
107
-
108
- # An array of all evaluations performed by this monitor. Each one corresponds to a
109
- # separate monitor event.
110
- sig { returns(T.nilable(T::Array[Deeprails::Evaluation])) }
111
- attr_reader :evaluations
112
-
113
- sig do
114
- params(evaluations: T::Array[Deeprails::Evaluation::OrHash]).void
115
- end
116
- attr_writer :evaluations
117
-
118
- # Contains five fields used for stats of this monitor: total evaluations,
119
- # completed evaluations, failed evaluations, queued evaluations, and in progress
120
- # evaluations.
121
- sig do
122
- returns(
123
- T.nilable(Deeprails::Models::MonitorRetrieveResponse::Data::Stats)
124
- )
125
- end
126
- attr_reader :stats
127
-
128
- sig do
129
- params(
130
- stats:
131
- Deeprails::Models::MonitorRetrieveResponse::Data::Stats::OrHash
132
- ).void
133
- end
134
- attr_writer :stats
135
-
136
- # The most recent time the monitor was modified in UTC.
137
- sig { returns(T.nilable(Time)) }
138
- attr_reader :updated_at
139
-
140
- sig { params(updated_at: Time).void }
141
- attr_writer :updated_at
142
-
143
- # User ID of the user who created the monitor.
144
- sig { returns(T.nilable(String)) }
145
- attr_reader :user_id
146
-
147
- sig { params(user_id: String).void }
148
- attr_writer :user_id
149
-
150
- sig do
151
- params(
152
- monitor_id: String,
153
- monitor_status:
154
- Deeprails::Models::MonitorRetrieveResponse::Data::MonitorStatus::OrSymbol,
155
- name: String,
156
- created_at: Time,
157
- description: String,
158
- evaluations: T::Array[Deeprails::Evaluation::OrHash],
159
- stats:
160
- Deeprails::Models::MonitorRetrieveResponse::Data::Stats::OrHash,
161
- updated_at: Time,
162
- user_id: String
163
- ).returns(T.attached_class)
164
- end
165
- def self.new(
166
- # A unique monitor ID.
167
- monitor_id:,
168
- # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
169
- # longer record and evaluate events.
170
- monitor_status:,
171
- # Name of this monitor.
172
- name:,
173
- # The time the monitor was created in UTC.
174
- created_at: nil,
175
- # Description of this monitor.
176
- description: nil,
177
- # An array of all evaluations performed by this monitor. Each one corresponds to a
178
- # separate monitor event.
179
- evaluations: nil,
180
- # Contains five fields used for stats of this monitor: total evaluations,
181
- # completed evaluations, failed evaluations, queued evaluations, and in progress
182
- # evaluations.
183
- stats: nil,
184
- # The most recent time the monitor was modified in UTC.
185
- updated_at: nil,
186
- # User ID of the user who created the monitor.
187
- user_id: nil
188
- )
189
- end
190
-
191
- sig do
192
- override.returns(
193
- {
194
- monitor_id: String,
195
- monitor_status:
196
- Deeprails::Models::MonitorRetrieveResponse::Data::MonitorStatus::TaggedSymbol,
197
- name: String,
198
- created_at: Time,
199
- description: String,
200
- evaluations: T::Array[Deeprails::Evaluation],
201
- stats: Deeprails::Models::MonitorRetrieveResponse::Data::Stats,
202
- updated_at: Time,
203
- user_id: String
204
- }
205
- )
206
- end
207
- def to_hash
208
- end
209
-
210
- # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
211
- # longer record and evaluate events.
212
- module MonitorStatus
213
- extend Deeprails::Internal::Type::Enum
214
-
215
- TaggedSymbol =
216
- T.type_alias do
217
- T.all(
218
- Symbol,
219
- Deeprails::Models::MonitorRetrieveResponse::Data::MonitorStatus
220
- )
221
- end
222
- OrSymbol = T.type_alias { T.any(Symbol, String) }
223
-
224
- ACTIVE =
225
- T.let(
226
- :active,
227
- Deeprails::Models::MonitorRetrieveResponse::Data::MonitorStatus::TaggedSymbol
228
- )
229
- INACTIVE =
230
- T.let(
231
- :inactive,
232
- Deeprails::Models::MonitorRetrieveResponse::Data::MonitorStatus::TaggedSymbol
233
- )
234
-
235
- sig do
236
- override.returns(
237
- T::Array[
238
- Deeprails::Models::MonitorRetrieveResponse::Data::MonitorStatus::TaggedSymbol
239
- ]
240
- )
241
- end
242
- def self.values
243
- end
244
- end
245
-
246
- class Stats < Deeprails::Internal::Type::BaseModel
247
- OrHash =
248
- T.type_alias do
249
- T.any(
250
- Deeprails::Models::MonitorRetrieveResponse::Data::Stats,
251
- Deeprails::Internal::AnyHash
252
- )
253
- end
254
-
255
- # Number of evaluations that completed successfully.
256
- sig { returns(T.nilable(Integer)) }
257
- attr_reader :completed_evaluations
258
-
259
- sig { params(completed_evaluations: Integer).void }
260
- attr_writer :completed_evaluations
261
-
262
- # Number of evaluations that failed.
263
- sig { returns(T.nilable(Integer)) }
264
- attr_reader :failed_evaluations
265
-
266
- sig { params(failed_evaluations: Integer).void }
267
- attr_writer :failed_evaluations
268
-
269
- # Number of evaluations currently in progress.
270
- sig { returns(T.nilable(Integer)) }
271
- attr_reader :in_progress_evaluations
272
-
273
- sig { params(in_progress_evaluations: Integer).void }
274
- attr_writer :in_progress_evaluations
275
-
276
- # Number of evaluations currently queued.
277
- sig { returns(T.nilable(Integer)) }
278
- attr_reader :queued_evaluations
279
-
280
- sig { params(queued_evaluations: Integer).void }
281
- attr_writer :queued_evaluations
282
-
283
- # Total number of evaluations performed by this monitor.
284
- sig { returns(T.nilable(Integer)) }
285
- attr_reader :total_evaluations
286
-
287
- sig { params(total_evaluations: Integer).void }
288
- attr_writer :total_evaluations
289
-
290
- # Contains five fields used for stats of this monitor: total evaluations,
291
- # completed evaluations, failed evaluations, queued evaluations, and in progress
292
- # evaluations.
293
- sig do
294
- params(
295
- completed_evaluations: Integer,
296
- failed_evaluations: Integer,
297
- in_progress_evaluations: Integer,
298
- queued_evaluations: Integer,
299
- total_evaluations: Integer
300
- ).returns(T.attached_class)
301
- end
302
- def self.new(
303
- # Number of evaluations that completed successfully.
304
- completed_evaluations: nil,
305
- # Number of evaluations that failed.
306
- failed_evaluations: nil,
307
- # Number of evaluations currently in progress.
308
- in_progress_evaluations: nil,
309
- # Number of evaluations currently queued.
310
- queued_evaluations: nil,
311
- # Total number of evaluations performed by this monitor.
312
- total_evaluations: nil
313
- )
314
- end
315
-
316
- sig do
317
- override.returns(
318
- {
319
- completed_evaluations: Integer,
320
- failed_evaluations: Integer,
321
- in_progress_evaluations: Integer,
322
- queued_evaluations: Integer,
323
- total_evaluations: Integer
324
- }
325
- )
326
- end
327
- def to_hash
328
- end
329
- end
330
- end
331
- end
332
- end
333
- end
@@ -1,131 +0,0 @@
1
- # typed: strong
2
-
3
- module Deeprails
4
- module Models
5
- class MonitorSubmitEventResponse < Deeprails::Internal::Type::BaseModel
6
- OrHash =
7
- T.type_alias do
8
- T.any(
9
- Deeprails::Models::MonitorSubmitEventResponse,
10
- Deeprails::Internal::AnyHash
11
- )
12
- end
13
-
14
- # Represents whether the request was completed successfully.
15
- sig { returns(T::Boolean) }
16
- attr_accessor :success
17
-
18
- sig do
19
- returns(T.nilable(Deeprails::Models::MonitorSubmitEventResponse::Data))
20
- end
21
- attr_reader :data
22
-
23
- sig do
24
- params(
25
- data: Deeprails::Models::MonitorSubmitEventResponse::Data::OrHash
26
- ).void
27
- end
28
- attr_writer :data
29
-
30
- # The accompanying message for the request. Includes error details when
31
- # applicable.
32
- sig { returns(T.nilable(String)) }
33
- attr_reader :message
34
-
35
- sig { params(message: String).void }
36
- attr_writer :message
37
-
38
- # Response wrapper for operations returning a MonitorEventResponse.
39
- sig do
40
- params(
41
- success: T::Boolean,
42
- data: Deeprails::Models::MonitorSubmitEventResponse::Data::OrHash,
43
- message: String
44
- ).returns(T.attached_class)
45
- end
46
- def self.new(
47
- # Represents whether the request was completed successfully.
48
- success:,
49
- data: nil,
50
- # The accompanying message for the request. Includes error details when
51
- # applicable.
52
- message: nil
53
- )
54
- end
55
-
56
- sig do
57
- override.returns(
58
- {
59
- success: T::Boolean,
60
- data: Deeprails::Models::MonitorSubmitEventResponse::Data,
61
- message: String
62
- }
63
- )
64
- end
65
- def to_hash
66
- end
67
-
68
- class Data < Deeprails::Internal::Type::BaseModel
69
- OrHash =
70
- T.type_alias do
71
- T.any(
72
- Deeprails::Models::MonitorSubmitEventResponse::Data,
73
- Deeprails::Internal::AnyHash
74
- )
75
- end
76
-
77
- # A unique evaluation ID associated with this event.
78
- sig { returns(String) }
79
- attr_accessor :evaluation_id
80
-
81
- # A unique monitor event ID.
82
- sig { returns(String) }
83
- attr_accessor :event_id
84
-
85
- # Monitor ID associated with this event.
86
- sig { returns(String) }
87
- attr_accessor :monitor_id
88
-
89
- # The time the monitor event was created in UTC.
90
- sig { returns(T.nilable(Time)) }
91
- attr_reader :created_at
92
-
93
- sig { params(created_at: Time).void }
94
- attr_writer :created_at
95
-
96
- sig do
97
- params(
98
- evaluation_id: String,
99
- event_id: String,
100
- monitor_id: String,
101
- created_at: Time
102
- ).returns(T.attached_class)
103
- end
104
- def self.new(
105
- # A unique evaluation ID associated with this event.
106
- evaluation_id:,
107
- # A unique monitor event ID.
108
- event_id:,
109
- # Monitor ID associated with this event.
110
- monitor_id:,
111
- # The time the monitor event was created in UTC.
112
- created_at: nil
113
- )
114
- end
115
-
116
- sig do
117
- override.returns(
118
- {
119
- evaluation_id: String,
120
- event_id: String,
121
- monitor_id: String,
122
- created_at: Time
123
- }
124
- )
125
- end
126
- def to_hash
127
- end
128
- end
129
- end
130
- end
131
- end
@@ -1,66 +0,0 @@
1
- # typed: strong
2
-
3
- module Deeprails
4
- module Resources
5
- class Evaluate
6
- # Use this endpoint to evaluate a model's input and output pair against selected
7
- # guardrail metrics
8
- sig do
9
- params(
10
- model_input: Deeprails::EvaluateCreateParams::ModelInput::OrHash,
11
- model_output: String,
12
- run_mode: Deeprails::EvaluateCreateParams::RunMode::OrSymbol,
13
- guardrail_metrics:
14
- T::Array[
15
- Deeprails::EvaluateCreateParams::GuardrailMetric::OrSymbol
16
- ],
17
- model_used: String,
18
- nametag: String,
19
- request_options: Deeprails::RequestOptions::OrHash
20
- ).returns(Deeprails::Evaluation)
21
- end
22
- def create(
23
- # A dictionary of inputs sent to the LLM to generate output. The dictionary must
24
- # contain at least `user_prompt` or `system_prompt` field. For
25
- # ground_truth_adherence guardrail metric, `ground_truth` should be provided.
26
- model_input:,
27
- # Output generated by the LLM to be evaluated.
28
- model_output:,
29
- # Run mode for the evaluation. The run mode allows the user to optimize for speed,
30
- # accuracy, and cost by determining which models are used to evaluate the event.
31
- # Available run modes include `precision_plus`, `precision`, `smart`, and
32
- # `economy`. Defaults to `smart`.
33
- run_mode:,
34
- # An array of guardrail metrics that the model input and output pair will be
35
- # evaluated on. For non-enterprise users, these will be limited to the allowed
36
- # guardrail metrics.
37
- guardrail_metrics: nil,
38
- # Model ID used to generate the output, like `gpt-4o` or `o3`.
39
- model_used: nil,
40
- # An optional, user-defined tag for the evaluation.
41
- nametag: nil,
42
- request_options: {}
43
- )
44
- end
45
-
46
- # Use this endpoint to retrieve the evaluation record for a given evaluation ID
47
- sig do
48
- params(
49
- eval_id: String,
50
- request_options: Deeprails::RequestOptions::OrHash
51
- ).returns(Deeprails::Evaluation)
52
- end
53
- def retrieve(
54
- # The ID of the evaluation to retrieve.
55
- eval_id,
56
- request_options: {}
57
- )
58
- end
59
-
60
- # @api private
61
- sig { params(client: Deeprails::Client).returns(T.attached_class) }
62
- def self.new(client:)
63
- end
64
- end
65
- end
66
- end
@@ -1,100 +0,0 @@
1
- module Deeprails
2
- module Models
3
- type api_response =
4
- { success: bool, data: Deeprails::APIResponse::Data, message: String }
5
-
6
- class APIResponse < Deeprails::Internal::Type::BaseModel
7
- attr_accessor success: bool
8
-
9
- attr_reader data: Deeprails::APIResponse::Data?
10
-
11
- def data=: (Deeprails::APIResponse::Data) -> Deeprails::APIResponse::Data
12
-
13
- attr_reader message: String?
14
-
15
- def message=: (String) -> String
16
-
17
- def initialize: (
18
- success: bool,
19
- ?data: Deeprails::APIResponse::Data,
20
- ?message: String
21
- ) -> void
22
-
23
- def to_hash: -> {
24
- success: bool,
25
- data: Deeprails::APIResponse::Data,
26
- message: String
27
- }
28
-
29
- type data =
30
- {
31
- monitor_id: String,
32
- name: String,
33
- created_at: Time,
34
- description: String,
35
- monitor_status: Deeprails::Models::APIResponse::Data::monitor_status,
36
- updated_at: Time,
37
- user_id: String
38
- }
39
-
40
- class Data < Deeprails::Internal::Type::BaseModel
41
- attr_accessor monitor_id: String
42
-
43
- attr_accessor name: String
44
-
45
- attr_reader created_at: Time?
46
-
47
- def created_at=: (Time) -> Time
48
-
49
- attr_reader description: String?
50
-
51
- def description=: (String) -> String
52
-
53
- attr_reader monitor_status: Deeprails::Models::APIResponse::Data::monitor_status?
54
-
55
- def monitor_status=: (
56
- Deeprails::Models::APIResponse::Data::monitor_status
57
- ) -> Deeprails::Models::APIResponse::Data::monitor_status
58
-
59
- attr_reader updated_at: Time?
60
-
61
- def updated_at=: (Time) -> Time
62
-
63
- attr_reader user_id: String?
64
-
65
- def user_id=: (String) -> String
66
-
67
- def initialize: (
68
- monitor_id: String,
69
- name: String,
70
- ?created_at: Time,
71
- ?description: String,
72
- ?monitor_status: Deeprails::Models::APIResponse::Data::monitor_status,
73
- ?updated_at: Time,
74
- ?user_id: String
75
- ) -> void
76
-
77
- def to_hash: -> {
78
- monitor_id: String,
79
- name: String,
80
- created_at: Time,
81
- description: String,
82
- monitor_status: Deeprails::Models::APIResponse::Data::monitor_status,
83
- updated_at: Time,
84
- user_id: String
85
- }
86
-
87
- type monitor_status = :active | :inactive
88
-
89
- module MonitorStatus
90
- extend Deeprails::Internal::Type::Enum
91
-
92
- ACTIVE: :active
93
- INACTIVE: :inactive
94
-
95
- def self?.values: -> ::Array[Deeprails::Models::APIResponse::Data::monitor_status]
96
- end
97
- end
98
- end
99
- end
100
- end