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.
- checksums.yaml +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +18 -0
- data/README.md +273 -0
- data/SECURITY.md +27 -0
- data/lib/deeprails/client.rb +82 -0
- data/lib/deeprails/errors.rb +228 -0
- data/lib/deeprails/file_part.rb +58 -0
- data/lib/deeprails/internal/transport/base_client.rb +567 -0
- data/lib/deeprails/internal/transport/pooled_net_requester.rb +198 -0
- data/lib/deeprails/internal/type/array_of.rb +168 -0
- data/lib/deeprails/internal/type/base_model.rb +531 -0
- data/lib/deeprails/internal/type/base_page.rb +55 -0
- data/lib/deeprails/internal/type/boolean.rb +77 -0
- data/lib/deeprails/internal/type/converter.rb +327 -0
- data/lib/deeprails/internal/type/enum.rb +131 -0
- data/lib/deeprails/internal/type/file_input.rb +111 -0
- data/lib/deeprails/internal/type/hash_of.rb +188 -0
- data/lib/deeprails/internal/type/request_parameters.rb +42 -0
- data/lib/deeprails/internal/type/union.rb +237 -0
- data/lib/deeprails/internal/type/unknown.rb +81 -0
- data/lib/deeprails/internal/util.rb +915 -0
- data/lib/deeprails/internal.rb +20 -0
- data/lib/deeprails/models/api_response.rb +119 -0
- data/lib/deeprails/models/defend_create_workflow_params.rb +132 -0
- data/lib/deeprails/models/defend_response.rb +123 -0
- data/lib/deeprails/models/defend_retrieve_event_params.rb +20 -0
- data/lib/deeprails/models/defend_retrieve_workflow_params.rb +14 -0
- data/lib/deeprails/models/defend_submit_event_params.rb +98 -0
- data/lib/deeprails/models/defend_update_workflow_params.rb +49 -0
- data/lib/deeprails/models/evaluate_create_params.rb +123 -0
- data/lib/deeprails/models/evaluate_retrieve_params.rb +14 -0
- data/lib/deeprails/models/evaluation.rb +225 -0
- data/lib/deeprails/models/monitor_create_params.rb +30 -0
- data/lib/deeprails/models/monitor_retrieve_params.rb +22 -0
- data/lib/deeprails/models/monitor_retrieve_response.rb +186 -0
- data/lib/deeprails/models/monitor_submit_event_params.rb +124 -0
- data/lib/deeprails/models/monitor_submit_event_response.rb +77 -0
- data/lib/deeprails/models/monitor_update_params.rb +54 -0
- data/lib/deeprails/models/workflow_event_response.rb +57 -0
- data/lib/deeprails/models.rb +71 -0
- data/lib/deeprails/request_options.rb +77 -0
- data/lib/deeprails/resources/defend.rb +162 -0
- data/lib/deeprails/resources/evaluate.rb +70 -0
- data/lib/deeprails/resources/monitor.rb +130 -0
- data/lib/deeprails/version.rb +5 -0
- data/lib/deeprails.rb +73 -0
- data/manifest.yaml +15 -0
- data/rbi/deeprails/client.rbi +55 -0
- data/rbi/deeprails/errors.rbi +205 -0
- data/rbi/deeprails/file_part.rbi +37 -0
- data/rbi/deeprails/internal/transport/base_client.rbi +293 -0
- data/rbi/deeprails/internal/transport/pooled_net_requester.rbi +79 -0
- data/rbi/deeprails/internal/type/array_of.rbi +104 -0
- data/rbi/deeprails/internal/type/base_model.rbi +304 -0
- data/rbi/deeprails/internal/type/base_page.rbi +42 -0
- data/rbi/deeprails/internal/type/boolean.rbi +58 -0
- data/rbi/deeprails/internal/type/converter.rbi +216 -0
- data/rbi/deeprails/internal/type/enum.rbi +82 -0
- data/rbi/deeprails/internal/type/file_input.rbi +59 -0
- data/rbi/deeprails/internal/type/hash_of.rbi +104 -0
- data/rbi/deeprails/internal/type/request_parameters.rbi +29 -0
- data/rbi/deeprails/internal/type/union.rbi +128 -0
- data/rbi/deeprails/internal/type/unknown.rbi +58 -0
- data/rbi/deeprails/internal/util.rbi +487 -0
- data/rbi/deeprails/internal.rbi +18 -0
- data/rbi/deeprails/models/api_response.rbi +204 -0
- data/rbi/deeprails/models/defend_create_workflow_params.rbi +270 -0
- data/rbi/deeprails/models/defend_response.rbi +198 -0
- data/rbi/deeprails/models/defend_retrieve_event_params.rbi +38 -0
- data/rbi/deeprails/models/defend_retrieve_workflow_params.rbi +30 -0
- data/rbi/deeprails/models/defend_submit_event_params.rbi +170 -0
- data/rbi/deeprails/models/defend_update_workflow_params.rbi +107 -0
- data/rbi/deeprails/models/evaluate_create_params.rbi +253 -0
- data/rbi/deeprails/models/evaluate_retrieve_params.rbi +27 -0
- data/rbi/deeprails/models/evaluation.rbi +382 -0
- data/rbi/deeprails/models/monitor_create_params.rbi +54 -0
- data/rbi/deeprails/models/monitor_retrieve_params.rbi +43 -0
- data/rbi/deeprails/models/monitor_retrieve_response.rbi +336 -0
- data/rbi/deeprails/models/monitor_submit_event_params.rbi +264 -0
- data/rbi/deeprails/models/monitor_submit_event_response.rbi +134 -0
- data/rbi/deeprails/models/monitor_update_params.rbi +114 -0
- data/rbi/deeprails/models/workflow_event_response.rbi +85 -0
- data/rbi/deeprails/models.rbi +33 -0
- data/rbi/deeprails/request_options.rbi +59 -0
- data/rbi/deeprails/resources/defend.rbi +151 -0
- data/rbi/deeprails/resources/evaluate.rbi +66 -0
- data/rbi/deeprails/resources/monitor.rbi +114 -0
- data/rbi/deeprails/version.rbi +5 -0
- data/sig/deeprails/client.rbs +30 -0
- data/sig/deeprails/errors.rbs +117 -0
- data/sig/deeprails/file_part.rbs +21 -0
- data/sig/deeprails/internal/transport/base_client.rbs +131 -0
- data/sig/deeprails/internal/transport/pooled_net_requester.rbs +45 -0
- data/sig/deeprails/internal/type/array_of.rbs +48 -0
- data/sig/deeprails/internal/type/base_model.rbs +102 -0
- data/sig/deeprails/internal/type/base_page.rbs +24 -0
- data/sig/deeprails/internal/type/boolean.rbs +26 -0
- data/sig/deeprails/internal/type/converter.rbs +79 -0
- data/sig/deeprails/internal/type/enum.rbs +32 -0
- data/sig/deeprails/internal/type/file_input.rbs +25 -0
- data/sig/deeprails/internal/type/hash_of.rbs +48 -0
- data/sig/deeprails/internal/type/request_parameters.rbs +19 -0
- data/sig/deeprails/internal/type/union.rbs +52 -0
- data/sig/deeprails/internal/type/unknown.rbs +26 -0
- data/sig/deeprails/internal/util.rbs +185 -0
- data/sig/deeprails/internal.rbs +9 -0
- data/sig/deeprails/models/api_response.rbs +100 -0
- data/sig/deeprails/models/defend_create_workflow_params.rbs +98 -0
- data/sig/deeprails/models/defend_response.rbs +96 -0
- data/sig/deeprails/models/defend_retrieve_event_params.rbs +23 -0
- data/sig/deeprails/models/defend_retrieve_workflow_params.rbs +15 -0
- data/sig/deeprails/models/defend_submit_event_params.rbs +73 -0
- data/sig/deeprails/models/defend_update_workflow_params.rbs +55 -0
- data/sig/deeprails/models/evaluate_create_params.rbs +107 -0
- data/sig/deeprails/models/evaluate_retrieve_params.rbs +15 -0
- data/sig/deeprails/models/evaluation.rbs +189 -0
- data/sig/deeprails/models/monitor_create_params.rbs +30 -0
- data/sig/deeprails/models/monitor_retrieve_params.rbs +25 -0
- data/sig/deeprails/models/monitor_retrieve_response.rbs +167 -0
- data/sig/deeprails/models/monitor_submit_event_params.rbs +107 -0
- data/sig/deeprails/models/monitor_submit_event_response.rbs +70 -0
- data/sig/deeprails/models/monitor_update_params.rbs +55 -0
- data/sig/deeprails/models/workflow_event_response.rbs +46 -0
- data/sig/deeprails/models.rbs +31 -0
- data/sig/deeprails/request_options.rbs +34 -0
- data/sig/deeprails/resources/defend.rbs +47 -0
- data/sig/deeprails/resources/evaluate.rbs +22 -0
- data/sig/deeprails/resources/monitor.rbs +38 -0
- data/sig/deeprails/version.rbs +3 -0
- metadata +188 -0
@@ -0,0 +1,134 @@
|
|
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
|
+
# Response payload for monitor event operations.
|
19
|
+
sig do
|
20
|
+
returns(T.nilable(Deeprails::Models::MonitorSubmitEventResponse::Data))
|
21
|
+
end
|
22
|
+
attr_reader :data
|
23
|
+
|
24
|
+
sig do
|
25
|
+
params(
|
26
|
+
data: Deeprails::Models::MonitorSubmitEventResponse::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 MonitorEventResponse.
|
40
|
+
sig do
|
41
|
+
params(
|
42
|
+
success: T::Boolean,
|
43
|
+
data: Deeprails::Models::MonitorSubmitEventResponse::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
|
+
# Response payload for monitor event operations.
|
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::MonitorSubmitEventResponse::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::MonitorSubmitEventResponse::Data,
|
75
|
+
Deeprails::Internal::AnyHash
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
# A unique evaluation ID associated with this event.
|
80
|
+
sig { returns(String) }
|
81
|
+
attr_accessor :evaluation_id
|
82
|
+
|
83
|
+
# A unique monitor event ID.
|
84
|
+
sig { returns(String) }
|
85
|
+
attr_accessor :event_id
|
86
|
+
|
87
|
+
# Monitor ID associated with this event.
|
88
|
+
sig { returns(String) }
|
89
|
+
attr_accessor :monitor_id
|
90
|
+
|
91
|
+
# The time the monitor event was created in UTC.
|
92
|
+
sig { returns(T.nilable(Time)) }
|
93
|
+
attr_reader :created_at
|
94
|
+
|
95
|
+
sig { params(created_at: Time).void }
|
96
|
+
attr_writer :created_at
|
97
|
+
|
98
|
+
# Response payload for monitor event operations.
|
99
|
+
sig do
|
100
|
+
params(
|
101
|
+
evaluation_id: String,
|
102
|
+
event_id: String,
|
103
|
+
monitor_id: String,
|
104
|
+
created_at: Time
|
105
|
+
).returns(T.attached_class)
|
106
|
+
end
|
107
|
+
def self.new(
|
108
|
+
# A unique evaluation ID associated with this event.
|
109
|
+
evaluation_id:,
|
110
|
+
# A unique monitor event ID.
|
111
|
+
event_id:,
|
112
|
+
# Monitor ID associated with this event.
|
113
|
+
monitor_id:,
|
114
|
+
# The time the monitor event was created in UTC.
|
115
|
+
created_at: nil
|
116
|
+
)
|
117
|
+
end
|
118
|
+
|
119
|
+
sig do
|
120
|
+
override.returns(
|
121
|
+
{
|
122
|
+
evaluation_id: String,
|
123
|
+
event_id: String,
|
124
|
+
monitor_id: String,
|
125
|
+
created_at: Time
|
126
|
+
}
|
127
|
+
)
|
128
|
+
end
|
129
|
+
def to_hash
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Deeprails
|
4
|
+
module Models
|
5
|
+
class MonitorUpdateParams < 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::MonitorUpdateParams, Deeprails::Internal::AnyHash)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Description of the monitor.
|
15
|
+
sig { returns(T.nilable(String)) }
|
16
|
+
attr_reader :description
|
17
|
+
|
18
|
+
sig { params(description: String).void }
|
19
|
+
attr_writer :description
|
20
|
+
|
21
|
+
# Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
|
22
|
+
# longer record and evaluate events.
|
23
|
+
sig do
|
24
|
+
returns(
|
25
|
+
T.nilable(Deeprails::MonitorUpdateParams::MonitorStatus::OrSymbol)
|
26
|
+
)
|
27
|
+
end
|
28
|
+
attr_reader :monitor_status
|
29
|
+
|
30
|
+
sig do
|
31
|
+
params(
|
32
|
+
monitor_status:
|
33
|
+
Deeprails::MonitorUpdateParams::MonitorStatus::OrSymbol
|
34
|
+
).void
|
35
|
+
end
|
36
|
+
attr_writer :monitor_status
|
37
|
+
|
38
|
+
# Name of the monitor.
|
39
|
+
sig { returns(T.nilable(String)) }
|
40
|
+
attr_reader :name
|
41
|
+
|
42
|
+
sig { params(name: String).void }
|
43
|
+
attr_writer :name
|
44
|
+
|
45
|
+
sig do
|
46
|
+
params(
|
47
|
+
description: String,
|
48
|
+
monitor_status:
|
49
|
+
Deeprails::MonitorUpdateParams::MonitorStatus::OrSymbol,
|
50
|
+
name: String,
|
51
|
+
request_options: Deeprails::RequestOptions::OrHash
|
52
|
+
).returns(T.attached_class)
|
53
|
+
end
|
54
|
+
def self.new(
|
55
|
+
# Description of the monitor.
|
56
|
+
description: nil,
|
57
|
+
# Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
|
58
|
+
# longer record and evaluate events.
|
59
|
+
monitor_status: nil,
|
60
|
+
# Name of the monitor.
|
61
|
+
name: nil,
|
62
|
+
request_options: {}
|
63
|
+
)
|
64
|
+
end
|
65
|
+
|
66
|
+
sig do
|
67
|
+
override.returns(
|
68
|
+
{
|
69
|
+
description: String,
|
70
|
+
monitor_status:
|
71
|
+
Deeprails::MonitorUpdateParams::MonitorStatus::OrSymbol,
|
72
|
+
name: String,
|
73
|
+
request_options: Deeprails::RequestOptions
|
74
|
+
}
|
75
|
+
)
|
76
|
+
end
|
77
|
+
def to_hash
|
78
|
+
end
|
79
|
+
|
80
|
+
# Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
|
81
|
+
# longer record and evaluate events.
|
82
|
+
module MonitorStatus
|
83
|
+
extend Deeprails::Internal::Type::Enum
|
84
|
+
|
85
|
+
TaggedSymbol =
|
86
|
+
T.type_alias do
|
87
|
+
T.all(Symbol, Deeprails::MonitorUpdateParams::MonitorStatus)
|
88
|
+
end
|
89
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
90
|
+
|
91
|
+
ACTIVE =
|
92
|
+
T.let(
|
93
|
+
:active,
|
94
|
+
Deeprails::MonitorUpdateParams::MonitorStatus::TaggedSymbol
|
95
|
+
)
|
96
|
+
INACTIVE =
|
97
|
+
T.let(
|
98
|
+
:inactive,
|
99
|
+
Deeprails::MonitorUpdateParams::MonitorStatus::TaggedSymbol
|
100
|
+
)
|
101
|
+
|
102
|
+
sig do
|
103
|
+
override.returns(
|
104
|
+
T::Array[
|
105
|
+
Deeprails::MonitorUpdateParams::MonitorStatus::TaggedSymbol
|
106
|
+
]
|
107
|
+
)
|
108
|
+
end
|
109
|
+
def self.values
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Deeprails
|
4
|
+
module Models
|
5
|
+
class WorkflowEventResponse < Deeprails::Internal::Type::BaseModel
|
6
|
+
OrHash =
|
7
|
+
T.type_alias do
|
8
|
+
T.any(Deeprails::WorkflowEventResponse, Deeprails::Internal::AnyHash)
|
9
|
+
end
|
10
|
+
|
11
|
+
# A unique workflow event ID.
|
12
|
+
sig { returns(String) }
|
13
|
+
attr_accessor :event_id
|
14
|
+
|
15
|
+
# Workflow ID associated with the event.
|
16
|
+
sig { returns(String) }
|
17
|
+
attr_accessor :workflow_id
|
18
|
+
|
19
|
+
# Count of improvement attempts for the event. If greater than one then all
|
20
|
+
# previous improvement attempts failed.
|
21
|
+
sig { returns(T.nilable(Integer)) }
|
22
|
+
attr_reader :attempt_number
|
23
|
+
|
24
|
+
sig { params(attempt_number: Integer).void }
|
25
|
+
attr_writer :attempt_number
|
26
|
+
|
27
|
+
# A unique evaluation ID associated with this event. Every event has one or more
|
28
|
+
# evaluation attempts.
|
29
|
+
sig { returns(T.nilable(String)) }
|
30
|
+
attr_reader :evaluation_id
|
31
|
+
|
32
|
+
sig { params(evaluation_id: String).void }
|
33
|
+
attr_writer :evaluation_id
|
34
|
+
|
35
|
+
# `False` if evaluation passed all of the guardrail metrics, `True` if evaluation
|
36
|
+
# failed any of the guardrail metrics.
|
37
|
+
sig { returns(T.nilable(T::Boolean)) }
|
38
|
+
attr_reader :filtered
|
39
|
+
|
40
|
+
sig { params(filtered: T::Boolean).void }
|
41
|
+
attr_writer :filtered
|
42
|
+
|
43
|
+
# Response payload for workflow event operations.
|
44
|
+
sig do
|
45
|
+
params(
|
46
|
+
event_id: String,
|
47
|
+
workflow_id: String,
|
48
|
+
attempt_number: Integer,
|
49
|
+
evaluation_id: String,
|
50
|
+
filtered: T::Boolean
|
51
|
+
).returns(T.attached_class)
|
52
|
+
end
|
53
|
+
def self.new(
|
54
|
+
# A unique workflow event ID.
|
55
|
+
event_id:,
|
56
|
+
# Workflow ID associated with the event.
|
57
|
+
workflow_id:,
|
58
|
+
# Count of improvement attempts for the event. If greater than one then all
|
59
|
+
# previous improvement attempts failed.
|
60
|
+
attempt_number: nil,
|
61
|
+
# A unique evaluation ID associated with this event. Every event has one or more
|
62
|
+
# evaluation attempts.
|
63
|
+
evaluation_id: nil,
|
64
|
+
# `False` if evaluation passed all of the guardrail metrics, `True` if evaluation
|
65
|
+
# failed any of the guardrail metrics.
|
66
|
+
filtered: nil
|
67
|
+
)
|
68
|
+
end
|
69
|
+
|
70
|
+
sig do
|
71
|
+
override.returns(
|
72
|
+
{
|
73
|
+
event_id: String,
|
74
|
+
workflow_id: String,
|
75
|
+
attempt_number: Integer,
|
76
|
+
evaluation_id: String,
|
77
|
+
filtered: T::Boolean
|
78
|
+
}
|
79
|
+
)
|
80
|
+
end
|
81
|
+
def to_hash
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Deeprails
|
4
|
+
APIResponse = Deeprails::Models::APIResponse
|
5
|
+
|
6
|
+
DefendCreateWorkflowParams = Deeprails::Models::DefendCreateWorkflowParams
|
7
|
+
|
8
|
+
DefendResponse = Deeprails::Models::DefendResponse
|
9
|
+
|
10
|
+
DefendRetrieveEventParams = Deeprails::Models::DefendRetrieveEventParams
|
11
|
+
|
12
|
+
DefendRetrieveWorkflowParams = Deeprails::Models::DefendRetrieveWorkflowParams
|
13
|
+
|
14
|
+
DefendSubmitEventParams = Deeprails::Models::DefendSubmitEventParams
|
15
|
+
|
16
|
+
DefendUpdateWorkflowParams = Deeprails::Models::DefendUpdateWorkflowParams
|
17
|
+
|
18
|
+
EvaluateCreateParams = Deeprails::Models::EvaluateCreateParams
|
19
|
+
|
20
|
+
EvaluateRetrieveParams = Deeprails::Models::EvaluateRetrieveParams
|
21
|
+
|
22
|
+
Evaluation = Deeprails::Models::Evaluation
|
23
|
+
|
24
|
+
MonitorCreateParams = Deeprails::Models::MonitorCreateParams
|
25
|
+
|
26
|
+
MonitorRetrieveParams = Deeprails::Models::MonitorRetrieveParams
|
27
|
+
|
28
|
+
MonitorSubmitEventParams = Deeprails::Models::MonitorSubmitEventParams
|
29
|
+
|
30
|
+
MonitorUpdateParams = Deeprails::Models::MonitorUpdateParams
|
31
|
+
|
32
|
+
WorkflowEventResponse = Deeprails::Models::WorkflowEventResponse
|
33
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Deeprails
|
4
|
+
# Specify HTTP behaviour to use for a specific request. These options supplement
|
5
|
+
# or override those provided at the client level.
|
6
|
+
#
|
7
|
+
# When making a request, you can pass an actual {RequestOptions} instance, or
|
8
|
+
# simply pass a Hash with symbol keys matching the attributes on this class.
|
9
|
+
class RequestOptions < Deeprails::Internal::Type::BaseModel
|
10
|
+
OrHash =
|
11
|
+
T.type_alias do
|
12
|
+
T.any(Deeprails::RequestOptions, Deeprails::Internal::AnyHash)
|
13
|
+
end
|
14
|
+
|
15
|
+
# @api private
|
16
|
+
sig { params(opts: Deeprails::RequestOptions::OrHash).void }
|
17
|
+
def self.validate!(opts)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Idempotency key to send with request and all associated retries. Will only be
|
21
|
+
# sent for write requests.
|
22
|
+
sig { returns(T.nilable(String)) }
|
23
|
+
attr_accessor :idempotency_key
|
24
|
+
|
25
|
+
# Extra query params to send with the request. These are `.merge`’d into any
|
26
|
+
# `query` given at the client level.
|
27
|
+
sig do
|
28
|
+
returns(
|
29
|
+
T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))])
|
30
|
+
)
|
31
|
+
end
|
32
|
+
attr_accessor :extra_query
|
33
|
+
|
34
|
+
# Extra headers to send with the request. These are `.merged`’d into any
|
35
|
+
# `extra_headers` given at the client level.
|
36
|
+
sig { returns(T.nilable(T::Hash[String, T.nilable(String)])) }
|
37
|
+
attr_accessor :extra_headers
|
38
|
+
|
39
|
+
# Extra data to send with the request. These are deep merged into any data
|
40
|
+
# generated as part of the normal request.
|
41
|
+
sig { returns(T.nilable(T.anything)) }
|
42
|
+
attr_accessor :extra_body
|
43
|
+
|
44
|
+
# Maximum number of retries to attempt after a failed initial request.
|
45
|
+
sig { returns(T.nilable(Integer)) }
|
46
|
+
attr_accessor :max_retries
|
47
|
+
|
48
|
+
# Request timeout in seconds.
|
49
|
+
sig { returns(T.nilable(Float)) }
|
50
|
+
attr_accessor :timeout
|
51
|
+
|
52
|
+
# Returns a new instance of RequestOptions.
|
53
|
+
sig do
|
54
|
+
params(values: Deeprails::Internal::AnyHash).returns(T.attached_class)
|
55
|
+
end
|
56
|
+
def self.new(values = {})
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,151 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Deeprails
|
4
|
+
module Resources
|
5
|
+
class Defend
|
6
|
+
# Create a new guardrail workflow with optional guardrail thresholds and
|
7
|
+
# improvement actions.
|
8
|
+
sig do
|
9
|
+
params(
|
10
|
+
improvement_action:
|
11
|
+
T.nilable(
|
12
|
+
Deeprails::DefendCreateWorkflowParams::ImprovementAction::OrSymbol
|
13
|
+
),
|
14
|
+
metrics: T::Hash[Symbol, Float],
|
15
|
+
name: String,
|
16
|
+
type: Deeprails::DefendCreateWorkflowParams::Type::OrSymbol,
|
17
|
+
automatic_tolerance:
|
18
|
+
Deeprails::DefendCreateWorkflowParams::AutomaticTolerance::OrSymbol,
|
19
|
+
description: String,
|
20
|
+
max_retries: Integer,
|
21
|
+
request_options: Deeprails::RequestOptions::OrHash
|
22
|
+
).returns(Deeprails::DefendResponse)
|
23
|
+
end
|
24
|
+
def create_workflow(
|
25
|
+
# The action used to improve outputs that fail one or guardrail metrics for the
|
26
|
+
# workflow events. May be `regenerate`, `fixit`, or null which represents “do
|
27
|
+
# nothing”. ReGen runs the user's exact input prompt with minor induced variance.
|
28
|
+
# Fixit attempts to directly address the shortcomings of the output using the
|
29
|
+
# guardrail failure rationale. Do nothing does not attempt any improvement.
|
30
|
+
improvement_action:,
|
31
|
+
# Mapping of guardrail metrics to floating point threshold values. If the workflow
|
32
|
+
# type is automatic, only the metric names are used (`automatic_tolerance`
|
33
|
+
# determines thresholds). Possible metrics are `correctness`, `completeness`,
|
34
|
+
# `instruction_adherence`, `context_adherence`, `ground_truth_adherence`, or
|
35
|
+
# `comprehensive_safety`.
|
36
|
+
metrics:,
|
37
|
+
# Name of the workflow.
|
38
|
+
name:,
|
39
|
+
# Type of thresholds to use for the workflow, either `automatic` or `custom`.
|
40
|
+
# Automatic thresholds are assigned internally after the user specifies a
|
41
|
+
# qualitative tolerance for the metrics, whereas custom metrics allow the user to
|
42
|
+
# set the threshold for each metric as a floating point number between 0.0 and
|
43
|
+
# 1.0.
|
44
|
+
type:,
|
45
|
+
# Hallucination tolerance for automatic workflows; may be `low`, `medium`, or
|
46
|
+
# `high`. Ignored if `type` is `custom`.
|
47
|
+
automatic_tolerance: nil,
|
48
|
+
# Description for the workflow.
|
49
|
+
description: nil,
|
50
|
+
# Max. number of improvement action retries until a given event passes the
|
51
|
+
# guardrails. Defaults to 10.
|
52
|
+
max_retries: nil,
|
53
|
+
request_options: {}
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Retrieve a specific event of a guardrail workflow.
|
58
|
+
sig do
|
59
|
+
params(
|
60
|
+
event_id: String,
|
61
|
+
workflow_id: String,
|
62
|
+
request_options: Deeprails::RequestOptions::OrHash
|
63
|
+
).returns(Deeprails::WorkflowEventResponse)
|
64
|
+
end
|
65
|
+
def retrieve_event(
|
66
|
+
# The ID of the requested workflow event.
|
67
|
+
event_id,
|
68
|
+
# The ID of the workflow associated with the event.
|
69
|
+
workflow_id:,
|
70
|
+
request_options: {}
|
71
|
+
)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Retrieve the details for a specific guardrail workflow.
|
75
|
+
sig do
|
76
|
+
params(
|
77
|
+
workflow_id: String,
|
78
|
+
request_options: Deeprails::RequestOptions::OrHash
|
79
|
+
).returns(Deeprails::DefendResponse)
|
80
|
+
end
|
81
|
+
def retrieve_workflow(
|
82
|
+
# The ID of the workflow to retrieve.
|
83
|
+
workflow_id,
|
84
|
+
request_options: {}
|
85
|
+
)
|
86
|
+
end
|
87
|
+
|
88
|
+
# Submit a model input and output pair to a workflow for evaluation.
|
89
|
+
sig do
|
90
|
+
params(
|
91
|
+
workflow_id: String,
|
92
|
+
model_input: Deeprails::DefendSubmitEventParams::ModelInput::OrHash,
|
93
|
+
model_output: String,
|
94
|
+
model_used: String,
|
95
|
+
nametag: String,
|
96
|
+
run_mode: Deeprails::DefendSubmitEventParams::RunMode::OrSymbol,
|
97
|
+
request_options: Deeprails::RequestOptions::OrHash
|
98
|
+
).returns(Deeprails::WorkflowEventResponse)
|
99
|
+
end
|
100
|
+
def submit_event(
|
101
|
+
# Workflow ID associated with this event.
|
102
|
+
workflow_id,
|
103
|
+
# A dictionary of inputs sent to the LLM to generate output. This must contain a
|
104
|
+
# `user_prompt` field and an optional `context` field. Additional properties are
|
105
|
+
# allowed.
|
106
|
+
model_input:,
|
107
|
+
# Output generated by the LLM to be evaluated.
|
108
|
+
model_output:,
|
109
|
+
# Model ID used to generate the output, like `gpt-4o` or `o3`.
|
110
|
+
model_used:,
|
111
|
+
# An optional, user-defined tag for the event.
|
112
|
+
nametag:,
|
113
|
+
# Run mode for the workflow event. The run mode allows the user to optimize for
|
114
|
+
# speed, accuracy, and cost by determining which models are used to evaluate the
|
115
|
+
# event. Available run modes include `precision_plus`, `precision`, `smart`, and
|
116
|
+
# `economy`. Defaults to `smart`.
|
117
|
+
run_mode:,
|
118
|
+
request_options: {}
|
119
|
+
)
|
120
|
+
end
|
121
|
+
|
122
|
+
# Update an existing guardrail workflow.
|
123
|
+
sig do
|
124
|
+
params(
|
125
|
+
workflow_id: String,
|
126
|
+
description: String,
|
127
|
+
name: String,
|
128
|
+
type: Deeprails::DefendUpdateWorkflowParams::Type::OrSymbol,
|
129
|
+
request_options: Deeprails::RequestOptions::OrHash
|
130
|
+
).returns(Deeprails::DefendResponse)
|
131
|
+
end
|
132
|
+
def update_workflow(
|
133
|
+
# The ID of the workflow to edit.
|
134
|
+
workflow_id,
|
135
|
+
# Description for the workflow.
|
136
|
+
description: nil,
|
137
|
+
# Name of the workflow.
|
138
|
+
name: nil,
|
139
|
+
# Type of thresholds to use for the workflow, either `automatic` or `custom`.
|
140
|
+
type: nil,
|
141
|
+
request_options: {}
|
142
|
+
)
|
143
|
+
end
|
144
|
+
|
145
|
+
# @api private
|
146
|
+
sig { params(client: Deeprails::Client).returns(T.attached_class) }
|
147
|
+
def self.new(client:)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
@@ -0,0 +1,66 @@
|
|
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. This must contain a
|
24
|
+
# `user_prompt` field and an optional `context` field. Additional properties are
|
25
|
+
# allowed.
|
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
|
+
# 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
|