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,107 @@
1
+ # typed: strong
2
+
3
+ module Deeprails
4
+ module Models
5
+ class DefendUpdateWorkflowParams < 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::DefendUpdateWorkflowParams,
13
+ Deeprails::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Description for the workflow.
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :description
20
+
21
+ sig { params(description: String).void }
22
+ attr_writer :description
23
+
24
+ # Name of the workflow.
25
+ sig { returns(T.nilable(String)) }
26
+ attr_reader :name
27
+
28
+ sig { params(name: String).void }
29
+ attr_writer :name
30
+
31
+ # Type of thresholds to use for the workflow, either `automatic` or `custom`.
32
+ sig do
33
+ returns(
34
+ T.nilable(Deeprails::DefendUpdateWorkflowParams::Type::OrSymbol)
35
+ )
36
+ end
37
+ attr_reader :type
38
+
39
+ sig do
40
+ params(type: Deeprails::DefendUpdateWorkflowParams::Type::OrSymbol).void
41
+ end
42
+ attr_writer :type
43
+
44
+ sig do
45
+ params(
46
+ description: String,
47
+ name: String,
48
+ type: Deeprails::DefendUpdateWorkflowParams::Type::OrSymbol,
49
+ request_options: Deeprails::RequestOptions::OrHash
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ # Description for the workflow.
54
+ description: nil,
55
+ # Name of the workflow.
56
+ name: nil,
57
+ # Type of thresholds to use for the workflow, either `automatic` or `custom`.
58
+ type: nil,
59
+ request_options: {}
60
+ )
61
+ end
62
+
63
+ sig do
64
+ override.returns(
65
+ {
66
+ description: String,
67
+ name: String,
68
+ type: Deeprails::DefendUpdateWorkflowParams::Type::OrSymbol,
69
+ request_options: Deeprails::RequestOptions
70
+ }
71
+ )
72
+ end
73
+ def to_hash
74
+ end
75
+
76
+ # Type of thresholds to use for the workflow, either `automatic` or `custom`.
77
+ module Type
78
+ extend Deeprails::Internal::Type::Enum
79
+
80
+ TaggedSymbol =
81
+ T.type_alias do
82
+ T.all(Symbol, Deeprails::DefendUpdateWorkflowParams::Type)
83
+ end
84
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
85
+
86
+ AUTOMATIC =
87
+ T.let(
88
+ :automatic,
89
+ Deeprails::DefendUpdateWorkflowParams::Type::TaggedSymbol
90
+ )
91
+ CUSTOM =
92
+ T.let(
93
+ :custom,
94
+ Deeprails::DefendUpdateWorkflowParams::Type::TaggedSymbol
95
+ )
96
+
97
+ sig do
98
+ override.returns(
99
+ T::Array[Deeprails::DefendUpdateWorkflowParams::Type::TaggedSymbol]
100
+ )
101
+ end
102
+ def self.values
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,253 @@
1
+ # typed: strong
2
+
3
+ module Deeprails
4
+ module Models
5
+ class EvaluateCreateParams < 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(Deeprails::EvaluateCreateParams, Deeprails::Internal::AnyHash)
12
+ end
13
+
14
+ # A dictionary of inputs sent to the LLM to generate output. This must contain a
15
+ # `user_prompt` field and an optional `context` field. Additional properties are
16
+ # allowed.
17
+ sig { returns(Deeprails::EvaluateCreateParams::ModelInput) }
18
+ attr_reader :model_input
19
+
20
+ sig do
21
+ params(
22
+ model_input: Deeprails::EvaluateCreateParams::ModelInput::OrHash
23
+ ).void
24
+ end
25
+ attr_writer :model_input
26
+
27
+ # Output generated by the LLM to be evaluated.
28
+ sig { returns(String) }
29
+ attr_accessor :model_output
30
+
31
+ # Run mode for the evaluation. The run mode allows the user to optimize for speed,
32
+ # accuracy, and cost by determining which models are used to evaluate the event.
33
+ # Available run modes include `precision_plus`, `precision`, `smart`, and
34
+ # `economy`. Defaults to `smart`.
35
+ sig { returns(Deeprails::EvaluateCreateParams::RunMode::OrSymbol) }
36
+ attr_accessor :run_mode
37
+
38
+ # An array of guardrail metrics that the model input and output pair will be
39
+ # evaluated on. For non-enterprise users, these will be limited to the allowed
40
+ # guardrail metrics.
41
+ sig do
42
+ returns(
43
+ T.nilable(
44
+ T::Array[Deeprails::EvaluateCreateParams::GuardrailMetric::OrSymbol]
45
+ )
46
+ )
47
+ end
48
+ attr_reader :guardrail_metrics
49
+
50
+ sig do
51
+ params(
52
+ guardrail_metrics:
53
+ T::Array[Deeprails::EvaluateCreateParams::GuardrailMetric::OrSymbol]
54
+ ).void
55
+ end
56
+ attr_writer :guardrail_metrics
57
+
58
+ # Model ID used to generate the output, like `gpt-4o` or `o3`.
59
+ sig { returns(T.nilable(String)) }
60
+ attr_reader :model_used
61
+
62
+ sig { params(model_used: String).void }
63
+ attr_writer :model_used
64
+
65
+ # An optional, user-defined tag for the evaluation.
66
+ sig { returns(T.nilable(String)) }
67
+ attr_reader :nametag
68
+
69
+ sig { params(nametag: String).void }
70
+ attr_writer :nametag
71
+
72
+ sig do
73
+ params(
74
+ model_input: Deeprails::EvaluateCreateParams::ModelInput::OrHash,
75
+ model_output: String,
76
+ run_mode: Deeprails::EvaluateCreateParams::RunMode::OrSymbol,
77
+ guardrail_metrics:
78
+ T::Array[
79
+ Deeprails::EvaluateCreateParams::GuardrailMetric::OrSymbol
80
+ ],
81
+ model_used: String,
82
+ nametag: String,
83
+ request_options: Deeprails::RequestOptions::OrHash
84
+ ).returns(T.attached_class)
85
+ end
86
+ def self.new(
87
+ # A dictionary of inputs sent to the LLM to generate output. This must contain a
88
+ # `user_prompt` field and an optional `context` field. Additional properties are
89
+ # allowed.
90
+ model_input:,
91
+ # Output generated by the LLM to be evaluated.
92
+ model_output:,
93
+ # Run mode for the evaluation. The run mode allows the user to optimize for speed,
94
+ # accuracy, and cost by determining which models are used to evaluate the event.
95
+ # Available run modes include `precision_plus`, `precision`, `smart`, and
96
+ # `economy`. Defaults to `smart`.
97
+ run_mode:,
98
+ # An array of guardrail metrics that the model input and output pair will be
99
+ # evaluated on. For non-enterprise users, these will be limited to the allowed
100
+ # guardrail metrics.
101
+ guardrail_metrics: nil,
102
+ # Model ID used to generate the output, like `gpt-4o` or `o3`.
103
+ model_used: nil,
104
+ # An optional, user-defined tag for the evaluation.
105
+ nametag: nil,
106
+ request_options: {}
107
+ )
108
+ end
109
+
110
+ sig do
111
+ override.returns(
112
+ {
113
+ model_input: Deeprails::EvaluateCreateParams::ModelInput,
114
+ model_output: String,
115
+ run_mode: Deeprails::EvaluateCreateParams::RunMode::OrSymbol,
116
+ guardrail_metrics:
117
+ T::Array[
118
+ Deeprails::EvaluateCreateParams::GuardrailMetric::OrSymbol
119
+ ],
120
+ model_used: String,
121
+ nametag: String,
122
+ request_options: Deeprails::RequestOptions
123
+ }
124
+ )
125
+ end
126
+ def to_hash
127
+ end
128
+
129
+ class ModelInput < Deeprails::Internal::Type::BaseModel
130
+ OrHash =
131
+ T.type_alias do
132
+ T.any(
133
+ Deeprails::EvaluateCreateParams::ModelInput,
134
+ Deeprails::Internal::AnyHash
135
+ )
136
+ end
137
+
138
+ sig { returns(String) }
139
+ attr_accessor :user_prompt
140
+
141
+ sig { returns(T.nilable(String)) }
142
+ attr_reader :context
143
+
144
+ sig { params(context: String).void }
145
+ attr_writer :context
146
+
147
+ # A dictionary of inputs sent to the LLM to generate output. This must contain a
148
+ # `user_prompt` field and an optional `context` field. Additional properties are
149
+ # allowed.
150
+ sig do
151
+ params(user_prompt: String, context: String).returns(T.attached_class)
152
+ end
153
+ def self.new(user_prompt:, context: nil)
154
+ end
155
+
156
+ sig { override.returns({ user_prompt: String, context: String }) }
157
+ def to_hash
158
+ end
159
+ end
160
+
161
+ # Run mode for the evaluation. The run mode allows the user to optimize for speed,
162
+ # accuracy, and cost by determining which models are used to evaluate the event.
163
+ # Available run modes include `precision_plus`, `precision`, `smart`, and
164
+ # `economy`. Defaults to `smart`.
165
+ module RunMode
166
+ extend Deeprails::Internal::Type::Enum
167
+
168
+ TaggedSymbol =
169
+ T.type_alias do
170
+ T.all(Symbol, Deeprails::EvaluateCreateParams::RunMode)
171
+ end
172
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
173
+
174
+ PRECISION_PLUS =
175
+ T.let(
176
+ :precision_plus,
177
+ Deeprails::EvaluateCreateParams::RunMode::TaggedSymbol
178
+ )
179
+ PRECISION =
180
+ T.let(
181
+ :precision,
182
+ Deeprails::EvaluateCreateParams::RunMode::TaggedSymbol
183
+ )
184
+ SMART =
185
+ T.let(:smart, Deeprails::EvaluateCreateParams::RunMode::TaggedSymbol)
186
+ ECONOMY =
187
+ T.let(
188
+ :economy,
189
+ Deeprails::EvaluateCreateParams::RunMode::TaggedSymbol
190
+ )
191
+
192
+ sig do
193
+ override.returns(
194
+ T::Array[Deeprails::EvaluateCreateParams::RunMode::TaggedSymbol]
195
+ )
196
+ end
197
+ def self.values
198
+ end
199
+ end
200
+
201
+ module GuardrailMetric
202
+ extend Deeprails::Internal::Type::Enum
203
+
204
+ TaggedSymbol =
205
+ T.type_alias do
206
+ T.all(Symbol, Deeprails::EvaluateCreateParams::GuardrailMetric)
207
+ end
208
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
209
+
210
+ CORRECTNESS =
211
+ T.let(
212
+ :correctness,
213
+ Deeprails::EvaluateCreateParams::GuardrailMetric::TaggedSymbol
214
+ )
215
+ COMPLETENESS =
216
+ T.let(
217
+ :completeness,
218
+ Deeprails::EvaluateCreateParams::GuardrailMetric::TaggedSymbol
219
+ )
220
+ INSTRUCTION_ADHERENCE =
221
+ T.let(
222
+ :instruction_adherence,
223
+ Deeprails::EvaluateCreateParams::GuardrailMetric::TaggedSymbol
224
+ )
225
+ CONTEXT_ADHERENCE =
226
+ T.let(
227
+ :context_adherence,
228
+ Deeprails::EvaluateCreateParams::GuardrailMetric::TaggedSymbol
229
+ )
230
+ GROUND_TRUTH_ADHERENCE =
231
+ T.let(
232
+ :ground_truth_adherence,
233
+ Deeprails::EvaluateCreateParams::GuardrailMetric::TaggedSymbol
234
+ )
235
+ COMPREHENSIVE_SAFETY =
236
+ T.let(
237
+ :comprehensive_safety,
238
+ Deeprails::EvaluateCreateParams::GuardrailMetric::TaggedSymbol
239
+ )
240
+
241
+ sig do
242
+ override.returns(
243
+ T::Array[
244
+ Deeprails::EvaluateCreateParams::GuardrailMetric::TaggedSymbol
245
+ ]
246
+ )
247
+ end
248
+ def self.values
249
+ end
250
+ end
251
+ end
252
+ end
253
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Deeprails
4
+ module Models
5
+ class EvaluateRetrieveParams < 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(Deeprails::EvaluateRetrieveParams, Deeprails::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: Deeprails::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: Deeprails::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end