deeprails 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +26 -40
  4. data/lib/deeprails/internal/transport/base_client.rb +7 -1
  5. data/lib/deeprails/internal/transport/pooled_net_requester.rb +6 -2
  6. data/lib/deeprails/internal/type/base_model.rb +5 -5
  7. data/lib/deeprails/models/defend_create_response.rb +51 -0
  8. data/lib/deeprails/models/defend_create_workflow_params.rb +19 -19
  9. data/lib/deeprails/models/defend_response.rb +278 -38
  10. data/lib/deeprails/models/defend_retrieve_workflow_params.rb +13 -1
  11. data/lib/deeprails/models/defend_update_response.rb +51 -0
  12. data/lib/deeprails/models/file_response.rb +6 -22
  13. data/lib/deeprails/models/file_upload_params.rb +3 -3
  14. data/lib/deeprails/models/monitor_create_params.rb +47 -1
  15. data/lib/deeprails/models/monitor_create_response.rb +51 -0
  16. data/lib/deeprails/models/monitor_detail_response.rb +69 -70
  17. data/lib/deeprails/models/monitor_event_detail_response.rb +182 -0
  18. data/lib/deeprails/models/monitor_event_response.rb +1 -9
  19. data/lib/deeprails/models/monitor_retrieve_params.rb +6 -2
  20. data/lib/deeprails/models/monitor_submit_event_params.rb +1 -35
  21. data/lib/deeprails/models/monitor_update_params.rb +11 -11
  22. data/lib/deeprails/models/monitor_update_response.rb +51 -0
  23. data/lib/deeprails/models/workflow_event_detail_response.rb +314 -0
  24. data/lib/deeprails/models/workflow_event_response.rb +29 -30
  25. data/lib/deeprails/models.rb +12 -2
  26. data/lib/deeprails/resources/defend.rb +20 -13
  27. data/lib/deeprails/resources/files.rb +1 -1
  28. data/lib/deeprails/resources/monitor.rb +22 -14
  29. data/lib/deeprails/version.rb +1 -1
  30. data/lib/deeprails.rb +7 -1
  31. data/manifest.yaml +1 -0
  32. data/rbi/deeprails/internal/transport/base_client.rbi +5 -0
  33. data/rbi/deeprails/internal/transport/pooled_net_requester.rbi +6 -2
  34. data/rbi/deeprails/internal/type/base_model.rbi +8 -4
  35. data/rbi/deeprails/models/defend_create_response.rbi +83 -0
  36. data/rbi/deeprails/models/defend_create_workflow_params.rbi +33 -27
  37. data/rbi/deeprails/models/defend_response.rbi +555 -72
  38. data/rbi/deeprails/models/defend_retrieve_workflow_params.rbi +23 -5
  39. data/rbi/deeprails/models/defend_update_response.rbi +83 -0
  40. data/rbi/deeprails/models/file_response.rbi +11 -39
  41. data/rbi/deeprails/models/file_upload_params.rbi +3 -6
  42. data/rbi/deeprails/models/monitor_create_params.rbi +97 -0
  43. data/rbi/deeprails/models/monitor_create_response.rbi +83 -0
  44. data/rbi/deeprails/models/monitor_detail_response.rbi +144 -104
  45. data/rbi/deeprails/models/monitor_event_detail_response.rbi +383 -0
  46. data/rbi/deeprails/models/monitor_event_response.rbi +4 -18
  47. data/rbi/deeprails/models/monitor_retrieve_params.rbi +4 -2
  48. data/rbi/deeprails/models/monitor_submit_event_params.rbi +0 -88
  49. data/rbi/deeprails/models/monitor_update_params.rbi +21 -38
  50. data/rbi/deeprails/models/monitor_update_response.rbi +83 -0
  51. data/rbi/deeprails/models/workflow_event_detail_response.rbi +685 -0
  52. data/rbi/deeprails/models/workflow_event_response.rbi +49 -42
  53. data/rbi/deeprails/models.rbi +12 -2
  54. data/rbi/deeprails/resources/defend.rbi +17 -12
  55. data/rbi/deeprails/resources/files.rbi +1 -1
  56. data/rbi/deeprails/resources/monitor.rbi +22 -20
  57. data/sig/deeprails/internal/transport/base_client.rbs +2 -0
  58. data/sig/deeprails/internal/transport/pooled_net_requester.rbs +4 -1
  59. data/sig/deeprails/models/defend_create_response.rbs +41 -0
  60. data/sig/deeprails/models/defend_create_workflow_params.rbs +7 -7
  61. data/sig/deeprails/models/defend_response.rbs +297 -28
  62. data/sig/deeprails/models/defend_retrieve_workflow_params.rbs +13 -3
  63. data/sig/deeprails/models/defend_update_response.rbs +41 -0
  64. data/sig/deeprails/models/file_response.rbs +5 -27
  65. data/sig/deeprails/models/file_upload_params.rbs +4 -5
  66. data/sig/deeprails/models/monitor_create_params.rbs +44 -1
  67. data/sig/deeprails/models/monitor_create_response.rbs +41 -0
  68. data/sig/deeprails/models/monitor_detail_response.rbs +72 -61
  69. data/sig/deeprails/models/monitor_event_detail_response.rbs +181 -0
  70. data/sig/deeprails/models/monitor_event_response.rbs +2 -15
  71. data/sig/deeprails/models/monitor_submit_event_params.rbs +0 -33
  72. data/sig/deeprails/models/monitor_update_params.rbs +13 -13
  73. data/sig/deeprails/models/monitor_update_response.rbs +41 -0
  74. data/sig/deeprails/models/workflow_event_detail_response.rbs +315 -0
  75. data/sig/deeprails/models/workflow_event_response.rbs +24 -24
  76. data/sig/deeprails/models.rbs +12 -2
  77. data/sig/deeprails/resources/defend.rbs +5 -4
  78. data/sig/deeprails/resources/files.rbs +1 -1
  79. data/sig/deeprails/resources/monitor.rbs +6 -5
  80. metadata +20 -5
  81. data/lib/deeprails/models/monitor_response.rb +0 -83
  82. data/rbi/deeprails/models/monitor_response.rbi +0 -142
  83. data/sig/deeprails/models/monitor_response.rbs +0 -73
@@ -14,15 +14,33 @@ module Deeprails
14
14
  )
15
15
  end
16
16
 
17
+ # Limit the number of returned events associated with this workflow. Defaults
18
+ # to 10.
19
+ sig { returns(T.nilable(Integer)) }
20
+ attr_reader :limit
21
+
22
+ sig { params(limit: Integer).void }
23
+ attr_writer :limit
24
+
17
25
  sig do
18
- params(request_options: Deeprails::RequestOptions::OrHash).returns(
19
- T.attached_class
20
- )
26
+ params(
27
+ limit: Integer,
28
+ request_options: Deeprails::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
21
30
  end
22
- def self.new(request_options: {})
31
+ def self.new(
32
+ # Limit the number of returned events associated with this workflow. Defaults
33
+ # to 10.
34
+ limit: nil,
35
+ request_options: {}
36
+ )
23
37
  end
24
38
 
25
- sig { override.returns({ request_options: Deeprails::RequestOptions }) }
39
+ sig do
40
+ override.returns(
41
+ { limit: Integer, request_options: Deeprails::RequestOptions }
42
+ )
43
+ end
26
44
  def to_hash
27
45
  end
28
46
  end
@@ -0,0 +1,83 @@
1
+ # typed: strong
2
+
3
+ module Deeprails
4
+ module Models
5
+ class DefendUpdateResponse < Deeprails::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Deeprails::DefendUpdateResponse, Deeprails::Internal::AnyHash)
9
+ end
10
+
11
+ # The time the workflow was last modified in UTC.
12
+ sig { returns(Time) }
13
+ attr_accessor :modified_at
14
+
15
+ # Status of the selected workflow. May be `inactive` or `active`. Inactive
16
+ # workflows will not accept events.
17
+ sig { returns(Deeprails::DefendUpdateResponse::Status::TaggedSymbol) }
18
+ attr_accessor :status
19
+
20
+ # A unique workflow ID.
21
+ sig { returns(String) }
22
+ attr_accessor :workflow_id
23
+
24
+ sig do
25
+ params(
26
+ modified_at: Time,
27
+ status: Deeprails::DefendUpdateResponse::Status::OrSymbol,
28
+ workflow_id: String
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(
32
+ # The time the workflow was last modified in UTC.
33
+ modified_at:,
34
+ # Status of the selected workflow. May be `inactive` or `active`. Inactive
35
+ # workflows will not accept events.
36
+ status:,
37
+ # A unique workflow ID.
38
+ workflow_id:
39
+ )
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ {
45
+ modified_at: Time,
46
+ status: Deeprails::DefendUpdateResponse::Status::TaggedSymbol,
47
+ workflow_id: String
48
+ }
49
+ )
50
+ end
51
+ def to_hash
52
+ end
53
+
54
+ # Status of the selected workflow. May be `inactive` or `active`. Inactive
55
+ # workflows will not accept events.
56
+ module Status
57
+ extend Deeprails::Internal::Type::Enum
58
+
59
+ TaggedSymbol =
60
+ T.type_alias do
61
+ T.all(Symbol, Deeprails::DefendUpdateResponse::Status)
62
+ end
63
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
64
+
65
+ INACTIVE =
66
+ T.let(
67
+ :inactive,
68
+ Deeprails::DefendUpdateResponse::Status::TaggedSymbol
69
+ )
70
+ ACTIVE =
71
+ T.let(:active, Deeprails::DefendUpdateResponse::Status::TaggedSymbol)
72
+
73
+ sig do
74
+ override.returns(
75
+ T::Array[Deeprails::DefendUpdateResponse::Status::TaggedSymbol]
76
+ )
77
+ end
78
+ def self.values
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -8,13 +8,6 @@ module Deeprails
8
8
  T.any(Deeprails::FileResponse, Deeprails::Internal::AnyHash)
9
9
  end
10
10
 
11
- # The time the file was created in UTC.
12
- sig { returns(T.nilable(Time)) }
13
- attr_reader :created_at
14
-
15
- sig { params(created_at: Time).void }
16
- attr_writer :created_at
17
-
18
11
  # A unique file ID.
19
12
  sig { returns(T.nilable(String)) }
20
13
  attr_reader :file_id
@@ -29,52 +22,31 @@ module Deeprails
29
22
  sig { params(file_name: String).void }
30
23
  attr_writer :file_name
31
24
 
32
- # Path to the s3 bucket where the file is stored.
33
- sig { returns(T.nilable(String)) }
34
- attr_reader :file_path
35
-
36
- sig { params(file_path: String).void }
37
- attr_writer :file_path
38
-
39
- # The most recent time the file was modified in UTC.
40
- sig { returns(T.nilable(Time)) }
41
- attr_reader :updated_at
25
+ # The size of the file in bytes.
26
+ sig { returns(T.nilable(Integer)) }
27
+ attr_reader :file_size
42
28
 
43
- sig { params(updated_at: Time).void }
44
- attr_writer :updated_at
29
+ sig { params(file_size: Integer).void }
30
+ attr_writer :file_size
45
31
 
46
32
  sig do
47
- params(
48
- created_at: Time,
49
- file_id: String,
50
- file_name: String,
51
- file_path: String,
52
- updated_at: Time
53
- ).returns(T.attached_class)
33
+ params(file_id: String, file_name: String, file_size: Integer).returns(
34
+ T.attached_class
35
+ )
54
36
  end
55
37
  def self.new(
56
- # The time the file was created in UTC.
57
- created_at: nil,
58
38
  # A unique file ID.
59
39
  file_id: nil,
60
40
  # Name of the file.
61
41
  file_name: nil,
62
- # Path to the s3 bucket where the file is stored.
63
- file_path: nil,
64
- # The most recent time the file was modified in UTC.
65
- updated_at: nil
42
+ # The size of the file in bytes.
43
+ file_size: nil
66
44
  )
67
45
  end
68
46
 
69
47
  sig do
70
48
  override.returns(
71
- {
72
- created_at: Time,
73
- file_id: String,
74
- file_name: String,
75
- file_path: String,
76
- updated_at: Time
77
- }
49
+ { file_id: String, file_name: String, file_size: Integer }
78
50
  )
79
51
  end
80
52
  def to_hash
@@ -12,12 +12,12 @@ module Deeprails
12
12
  end
13
13
 
14
14
  # The contents of the file to upload.
15
- sig { returns(Deeprails::Internal::FileInput) }
15
+ sig { returns(T::Array[String]) }
16
16
  attr_accessor :file
17
17
 
18
18
  sig do
19
19
  params(
20
- file: Deeprails::Internal::FileInput,
20
+ file: T::Array[String],
21
21
  request_options: Deeprails::RequestOptions::OrHash
22
22
  ).returns(T.attached_class)
23
23
  end
@@ -30,10 +30,7 @@ module Deeprails
30
30
 
31
31
  sig do
32
32
  override.returns(
33
- {
34
- file: Deeprails::Internal::FileInput,
35
- request_options: Deeprails::RequestOptions
36
- }
33
+ { file: T::Array[String], request_options: Deeprails::RequestOptions }
37
34
  )
38
35
  end
39
36
  def to_hash
@@ -11,6 +11,17 @@ module Deeprails
11
11
  T.any(Deeprails::MonitorCreateParams, Deeprails::Internal::AnyHash)
12
12
  end
13
13
 
14
+ # An array of guardrail metrics that the model input and output pair will be
15
+ # evaluated on. For non-enterprise users, these will be limited to `correctness`,
16
+ # `completeness`, `instruction_adherence`, `context_adherence`,
17
+ # `ground_truth_adherence`, and/or `comprehensive_safety`.
18
+ sig do
19
+ returns(
20
+ T::Array[Deeprails::MonitorCreateParams::GuardrailMetric::OrSymbol]
21
+ )
22
+ end
23
+ attr_accessor :guardrail_metrics
24
+
14
25
  # Name of the new monitor.
15
26
  sig { returns(String) }
16
27
  attr_accessor :name
@@ -22,18 +33,47 @@ module Deeprails
22
33
  sig { params(description: String).void }
23
34
  attr_writer :description
24
35
 
36
+ # An array of file IDs to search in the monitor's evaluations. Files must be
37
+ # uploaded via the DeepRails API first.
38
+ sig { returns(T.nilable(T::Array[String])) }
39
+ attr_reader :file_search
40
+
41
+ sig { params(file_search: T::Array[String]).void }
42
+ attr_writer :file_search
43
+
44
+ # Whether to enable web search for this monitor's evaluations. Defaults to false.
45
+ sig { returns(T.nilable(T::Boolean)) }
46
+ attr_reader :web_search
47
+
48
+ sig { params(web_search: T::Boolean).void }
49
+ attr_writer :web_search
50
+
25
51
  sig do
26
52
  params(
53
+ guardrail_metrics:
54
+ T::Array[Deeprails::MonitorCreateParams::GuardrailMetric::OrSymbol],
27
55
  name: String,
28
56
  description: String,
57
+ file_search: T::Array[String],
58
+ web_search: T::Boolean,
29
59
  request_options: Deeprails::RequestOptions::OrHash
30
60
  ).returns(T.attached_class)
31
61
  end
32
62
  def self.new(
63
+ # An array of guardrail metrics that the model input and output pair will be
64
+ # evaluated on. For non-enterprise users, these will be limited to `correctness`,
65
+ # `completeness`, `instruction_adherence`, `context_adherence`,
66
+ # `ground_truth_adherence`, and/or `comprehensive_safety`.
67
+ guardrail_metrics:,
33
68
  # Name of the new monitor.
34
69
  name:,
35
70
  # Description of the new monitor.
36
71
  description: nil,
72
+ # An array of file IDs to search in the monitor's evaluations. Files must be
73
+ # uploaded via the DeepRails API first.
74
+ file_search: nil,
75
+ # Whether to enable web search for this monitor's evaluations. Defaults to false.
76
+ web_search: nil,
37
77
  request_options: {}
38
78
  )
39
79
  end
@@ -41,14 +81,71 @@ module Deeprails
41
81
  sig do
42
82
  override.returns(
43
83
  {
84
+ guardrail_metrics:
85
+ T::Array[
86
+ Deeprails::MonitorCreateParams::GuardrailMetric::OrSymbol
87
+ ],
44
88
  name: String,
45
89
  description: String,
90
+ file_search: T::Array[String],
91
+ web_search: T::Boolean,
46
92
  request_options: Deeprails::RequestOptions
47
93
  }
48
94
  )
49
95
  end
50
96
  def to_hash
51
97
  end
98
+
99
+ module GuardrailMetric
100
+ extend Deeprails::Internal::Type::Enum
101
+
102
+ TaggedSymbol =
103
+ T.type_alias do
104
+ T.all(Symbol, Deeprails::MonitorCreateParams::GuardrailMetric)
105
+ end
106
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
107
+
108
+ CORRECTNESS =
109
+ T.let(
110
+ :correctness,
111
+ Deeprails::MonitorCreateParams::GuardrailMetric::TaggedSymbol
112
+ )
113
+ COMPLETENESS =
114
+ T.let(
115
+ :completeness,
116
+ Deeprails::MonitorCreateParams::GuardrailMetric::TaggedSymbol
117
+ )
118
+ INSTRUCTION_ADHERENCE =
119
+ T.let(
120
+ :instruction_adherence,
121
+ Deeprails::MonitorCreateParams::GuardrailMetric::TaggedSymbol
122
+ )
123
+ CONTEXT_ADHERENCE =
124
+ T.let(
125
+ :context_adherence,
126
+ Deeprails::MonitorCreateParams::GuardrailMetric::TaggedSymbol
127
+ )
128
+ GROUND_TRUTH_ADHERENCE =
129
+ T.let(
130
+ :ground_truth_adherence,
131
+ Deeprails::MonitorCreateParams::GuardrailMetric::TaggedSymbol
132
+ )
133
+ COMPREHENSIVE_SAFETY =
134
+ T.let(
135
+ :comprehensive_safety,
136
+ Deeprails::MonitorCreateParams::GuardrailMetric::TaggedSymbol
137
+ )
138
+
139
+ sig do
140
+ override.returns(
141
+ T::Array[
142
+ Deeprails::MonitorCreateParams::GuardrailMetric::TaggedSymbol
143
+ ]
144
+ )
145
+ end
146
+ def self.values
147
+ end
148
+ end
52
149
  end
53
150
  end
54
151
  end
@@ -0,0 +1,83 @@
1
+ # typed: strong
2
+
3
+ module Deeprails
4
+ module Models
5
+ class MonitorCreateResponse < Deeprails::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Deeprails::MonitorCreateResponse, Deeprails::Internal::AnyHash)
9
+ end
10
+
11
+ # The time the monitor was created in UTC.
12
+ sig { returns(Time) }
13
+ attr_accessor :created_at
14
+
15
+ # A unique monitor ID.
16
+ sig { returns(String) }
17
+ attr_accessor :monitor_id
18
+
19
+ # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
20
+ # longer record and evaluate events.
21
+ sig { returns(Deeprails::MonitorCreateResponse::Status::TaggedSymbol) }
22
+ attr_accessor :status
23
+
24
+ sig do
25
+ params(
26
+ created_at: Time,
27
+ monitor_id: String,
28
+ status: Deeprails::MonitorCreateResponse::Status::OrSymbol
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(
32
+ # The time the monitor was created in UTC.
33
+ created_at:,
34
+ # A unique monitor ID.
35
+ monitor_id:,
36
+ # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
37
+ # longer record and evaluate events.
38
+ status:
39
+ )
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ {
45
+ created_at: Time,
46
+ monitor_id: String,
47
+ status: Deeprails::MonitorCreateResponse::Status::TaggedSymbol
48
+ }
49
+ )
50
+ end
51
+ def to_hash
52
+ end
53
+
54
+ # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
55
+ # longer record and evaluate events.
56
+ module Status
57
+ extend Deeprails::Internal::Type::Enum
58
+
59
+ TaggedSymbol =
60
+ T.type_alias do
61
+ T.all(Symbol, Deeprails::MonitorCreateResponse::Status)
62
+ end
63
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
64
+
65
+ ACTIVE =
66
+ T.let(:active, Deeprails::MonitorCreateResponse::Status::TaggedSymbol)
67
+ INACTIVE =
68
+ T.let(
69
+ :inactive,
70
+ Deeprails::MonitorCreateResponse::Status::TaggedSymbol
71
+ )
72
+
73
+ sig do
74
+ override.returns(
75
+ T::Array[Deeprails::MonitorCreateResponse::Status::TaggedSymbol]
76
+ )
77
+ end
78
+ def self.values
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end