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