circuit-breaker-labs 1.0.4__py3-none-any.whl → 1.0.6__py3-none-any.whl

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 (28) hide show
  1. circuit_breaker_labs/api/api_keys/monthly_quota_get.py +12 -12
  2. circuit_breaker_labs/api/evaluations/{evaluate_system_prompt_post.py → multi_turn_evaluate_system_prompt_post.py} +96 -39
  3. circuit_breaker_labs/api/evaluations/{evaluate_openai_fine_tune_post.py → multiturn_evaluate_openai_fine_tune_post.py} +96 -39
  4. circuit_breaker_labs/api/evaluations/single_turn_evaluate_openai_fine_tune_post.py +300 -0
  5. circuit_breaker_labs/api/evaluations/singleturn_evaluate_system_prompt_post.py +257 -0
  6. circuit_breaker_labs/models/__init__.py +36 -8
  7. circuit_breaker_labs/models/internal_server_error.py +73 -0
  8. circuit_breaker_labs/models/internal_server_error_response.py +69 -0
  9. circuit_breaker_labs/models/message.py +71 -0
  10. circuit_breaker_labs/models/multi_turn_evaluate_open_ai_finetune_request.py +119 -0
  11. circuit_breaker_labs/models/multi_turn_evaluate_system_prompt_request.py +128 -0
  12. circuit_breaker_labs/models/multi_turn_failed_test_result.py +85 -0
  13. circuit_breaker_labs/models/multi_turn_run_tests_response.py +92 -0
  14. circuit_breaker_labs/models/multi_turn_test_type.py +9 -0
  15. circuit_breaker_labs/models/not_found_error.py +73 -0
  16. circuit_breaker_labs/models/not_found_response.py +69 -0
  17. circuit_breaker_labs/models/quota_exceeded_response.py +69 -0
  18. circuit_breaker_labs/models/role.py +10 -0
  19. circuit_breaker_labs/models/{evaluate_open_ai_finetune_request.py → single_turn_evaluate_open_ai_finetune_request.py} +30 -5
  20. circuit_breaker_labs/models/{evaluate_system_prompt_request.py → single_turn_evaluate_system_prompt_request.py} +30 -5
  21. circuit_breaker_labs/models/{failed_test_result.py → single_turn_failed_test_result.py} +5 -5
  22. circuit_breaker_labs/models/{run_tests_response.py → single_turn_run_tests_response.py} +10 -10
  23. circuit_breaker_labs/models/test_case_pack.py +8 -0
  24. circuit_breaker_labs/models/unauthorized_response.py +69 -0
  25. {circuit_breaker_labs-1.0.4.dist-info → circuit_breaker_labs-1.0.6.dist-info}/METADATA +33 -21
  26. circuit_breaker_labs-1.0.6.dist-info/RECORD +47 -0
  27. {circuit_breaker_labs-1.0.4.dist-info → circuit_breaker_labs-1.0.6.dist-info}/WHEEL +1 -1
  28. circuit_breaker_labs-1.0.4.dist-info/RECORD +0 -31
@@ -7,7 +7,7 @@ from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
8
  from ...models.http_validation_error import HTTPValidationError
9
9
  from ...models.monthly_quota_response import MonthlyQuotaResponse
10
- from ...models.unauthorized_error import UnauthorizedError
10
+ from ...models.unauthorized_response import UnauthorizedResponse
11
11
  from ...types import Response
12
12
 
13
13
 
@@ -29,14 +29,14 @@ def _get_kwargs(
29
29
 
30
30
  def _parse_response(
31
31
  *, client: AuthenticatedClient | Client, response: httpx.Response
32
- ) -> HTTPValidationError | MonthlyQuotaResponse | UnauthorizedError | None:
32
+ ) -> HTTPValidationError | MonthlyQuotaResponse | UnauthorizedResponse | None:
33
33
  if response.status_code == 200:
34
34
  response_200 = MonthlyQuotaResponse.from_dict(response.json())
35
35
 
36
36
  return response_200
37
37
 
38
38
  if response.status_code == 401:
39
- response_401 = UnauthorizedError.from_dict(response.json())
39
+ response_401 = UnauthorizedResponse.from_dict(response.json())
40
40
 
41
41
  return response_401
42
42
 
@@ -53,7 +53,7 @@ def _parse_response(
53
53
 
54
54
  def _build_response(
55
55
  *, client: AuthenticatedClient | Client, response: httpx.Response
56
- ) -> Response[HTTPValidationError | MonthlyQuotaResponse | UnauthorizedError]:
56
+ ) -> Response[HTTPValidationError | MonthlyQuotaResponse | UnauthorizedResponse]:
57
57
  return Response(
58
58
  status_code=HTTPStatus(response.status_code),
59
59
  content=response.content,
@@ -66,7 +66,7 @@ def sync_detailed(
66
66
  *,
67
67
  client: AuthenticatedClient | Client,
68
68
  cbl_api_key: str,
69
- ) -> Response[HTTPValidationError | MonthlyQuotaResponse | UnauthorizedError]:
69
+ ) -> Response[HTTPValidationError | MonthlyQuotaResponse | UnauthorizedResponse]:
70
70
  """Monthly Quota
71
71
 
72
72
  Get the monthly usage statistics for the provided API key.
@@ -79,7 +79,7 @@ def sync_detailed(
79
79
  httpx.TimeoutException: If the request takes longer than Client.timeout.
80
80
 
81
81
  Returns:
82
- Response[HTTPValidationError | MonthlyQuotaResponse | UnauthorizedError]
82
+ Response[HTTPValidationError | MonthlyQuotaResponse | UnauthorizedResponse]
83
83
  """
84
84
 
85
85
  kwargs = _get_kwargs(
@@ -97,7 +97,7 @@ def sync(
97
97
  *,
98
98
  client: AuthenticatedClient | Client,
99
99
  cbl_api_key: str,
100
- ) -> HTTPValidationError | MonthlyQuotaResponse | UnauthorizedError | None:
100
+ ) -> HTTPValidationError | MonthlyQuotaResponse | UnauthorizedResponse | None:
101
101
  """Monthly Quota
102
102
 
103
103
  Get the monthly usage statistics for the provided API key.
@@ -110,7 +110,7 @@ def sync(
110
110
  httpx.TimeoutException: If the request takes longer than Client.timeout.
111
111
 
112
112
  Returns:
113
- HTTPValidationError | MonthlyQuotaResponse | UnauthorizedError
113
+ HTTPValidationError | MonthlyQuotaResponse | UnauthorizedResponse
114
114
  """
115
115
 
116
116
  return sync_detailed(
@@ -123,7 +123,7 @@ async def asyncio_detailed(
123
123
  *,
124
124
  client: AuthenticatedClient | Client,
125
125
  cbl_api_key: str,
126
- ) -> Response[HTTPValidationError | MonthlyQuotaResponse | UnauthorizedError]:
126
+ ) -> Response[HTTPValidationError | MonthlyQuotaResponse | UnauthorizedResponse]:
127
127
  """Monthly Quota
128
128
 
129
129
  Get the monthly usage statistics for the provided API key.
@@ -136,7 +136,7 @@ async def asyncio_detailed(
136
136
  httpx.TimeoutException: If the request takes longer than Client.timeout.
137
137
 
138
138
  Returns:
139
- Response[HTTPValidationError | MonthlyQuotaResponse | UnauthorizedError]
139
+ Response[HTTPValidationError | MonthlyQuotaResponse | UnauthorizedResponse]
140
140
  """
141
141
 
142
142
  kwargs = _get_kwargs(
@@ -152,7 +152,7 @@ async def asyncio(
152
152
  *,
153
153
  client: AuthenticatedClient | Client,
154
154
  cbl_api_key: str,
155
- ) -> HTTPValidationError | MonthlyQuotaResponse | UnauthorizedError | None:
155
+ ) -> HTTPValidationError | MonthlyQuotaResponse | UnauthorizedResponse | None:
156
156
  """Monthly Quota
157
157
 
158
158
  Get the monthly usage statistics for the provided API key.
@@ -165,7 +165,7 @@ async def asyncio(
165
165
  httpx.TimeoutException: If the request takes longer than Client.timeout.
166
166
 
167
167
  Returns:
168
- HTTPValidationError | MonthlyQuotaResponse | UnauthorizedError
168
+ HTTPValidationError | MonthlyQuotaResponse | UnauthorizedResponse
169
169
  """
170
170
 
171
171
  return (
@@ -5,17 +5,19 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.evaluate_system_prompt_request import EvaluateSystemPromptRequest
9
8
  from ...models.http_validation_error import HTTPValidationError
10
- from ...models.quota_exceeded_error import QuotaExceededError
11
- from ...models.run_tests_response import RunTestsResponse
12
- from ...models.unauthorized_error import UnauthorizedError
9
+ from ...models.internal_server_error_response import InternalServerErrorResponse
10
+ from ...models.multi_turn_evaluate_system_prompt_request import MultiTurnEvaluateSystemPromptRequest
11
+ from ...models.multi_turn_run_tests_response import MultiTurnRunTestsResponse
12
+ from ...models.not_found_response import NotFoundResponse
13
+ from ...models.quota_exceeded_response import QuotaExceededResponse
14
+ from ...models.unauthorized_response import UnauthorizedResponse
13
15
  from ...types import Response
14
16
 
15
17
 
16
18
  def _get_kwargs(
17
19
  *,
18
- body: EvaluateSystemPromptRequest,
20
+ body: MultiTurnEvaluateSystemPromptRequest,
19
21
  cbl_api_key: str,
20
22
  ) -> dict[str, Any]:
21
23
  headers: dict[str, Any] = {}
@@ -23,7 +25,7 @@ def _get_kwargs(
23
25
 
24
26
  _kwargs: dict[str, Any] = {
25
27
  "method": "post",
26
- "url": "/evaluate_system_prompt",
28
+ "url": "/multiturn_evaluate_system_prompt",
27
29
  }
28
30
 
29
31
  _kwargs["json"] = body.to_dict()
@@ -36,27 +38,45 @@ def _get_kwargs(
36
38
 
37
39
  def _parse_response(
38
40
  *, client: AuthenticatedClient | Client, response: httpx.Response
39
- ) -> HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError | None:
41
+ ) -> (
42
+ HTTPValidationError
43
+ | InternalServerErrorResponse
44
+ | MultiTurnRunTestsResponse
45
+ | NotFoundResponse
46
+ | QuotaExceededResponse
47
+ | UnauthorizedResponse
48
+ | None
49
+ ):
40
50
  if response.status_code == 200:
41
- response_200 = RunTestsResponse.from_dict(response.json())
51
+ response_200 = MultiTurnRunTestsResponse.from_dict(response.json())
42
52
 
43
53
  return response_200
44
54
 
45
55
  if response.status_code == 401:
46
- response_401 = UnauthorizedError.from_dict(response.json())
56
+ response_401 = UnauthorizedResponse.from_dict(response.json())
47
57
 
48
58
  return response_401
49
59
 
50
60
  if response.status_code == 403:
51
- response_403 = QuotaExceededError.from_dict(response.json())
61
+ response_403 = QuotaExceededResponse.from_dict(response.json())
52
62
 
53
63
  return response_403
54
64
 
65
+ if response.status_code == 404:
66
+ response_404 = NotFoundResponse.from_dict(response.json())
67
+
68
+ return response_404
69
+
55
70
  if response.status_code == 422:
56
71
  response_422 = HTTPValidationError.from_dict(response.json())
57
72
 
58
73
  return response_422
59
74
 
75
+ if response.status_code == 500:
76
+ response_500 = InternalServerErrorResponse.from_dict(response.json())
77
+
78
+ return response_500
79
+
60
80
  if client.raise_on_unexpected_status:
61
81
  raise errors.UnexpectedStatus(response.status_code, response.content)
62
82
  else:
@@ -65,7 +85,14 @@ def _parse_response(
65
85
 
66
86
  def _build_response(
67
87
  *, client: AuthenticatedClient | Client, response: httpx.Response
68
- ) -> Response[HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError]:
88
+ ) -> Response[
89
+ HTTPValidationError
90
+ | InternalServerErrorResponse
91
+ | MultiTurnRunTestsResponse
92
+ | NotFoundResponse
93
+ | QuotaExceededResponse
94
+ | UnauthorizedResponse
95
+ ]:
69
96
  return Response(
70
97
  status_code=HTTPStatus(response.status_code),
71
98
  content=response.content,
@@ -77,23 +104,30 @@ def _build_response(
77
104
  def sync_detailed(
78
105
  *,
79
106
  client: AuthenticatedClient | Client,
80
- body: EvaluateSystemPromptRequest,
107
+ body: MultiTurnEvaluateSystemPromptRequest,
81
108
  cbl_api_key: str,
82
- ) -> Response[HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError]:
83
- """Evaluate System Prompt
84
-
85
- Run agentic safety tests aginst a system prompt.
109
+ ) -> Response[
110
+ HTTPValidationError
111
+ | InternalServerErrorResponse
112
+ | MultiTurnRunTestsResponse
113
+ | NotFoundResponse
114
+ | QuotaExceededResponse
115
+ | UnauthorizedResponse
116
+ ]:
117
+ """Multi-turn Evaluate System Prompt
118
+
119
+ Run multi-turn safety tests against a system prompt.
86
120
 
87
121
  Args:
88
122
  cbl_api_key (str): Circuit Breaker Labs API Key
89
- body (EvaluateSystemPromptRequest):
123
+ body (MultiTurnEvaluateSystemPromptRequest):
90
124
 
91
125
  Raises:
92
126
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
93
127
  httpx.TimeoutException: If the request takes longer than Client.timeout.
94
128
 
95
129
  Returns:
96
- Response[HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError]
130
+ Response[HTTPValidationError | InternalServerErrorResponse | MultiTurnRunTestsResponse | NotFoundResponse | QuotaExceededResponse | UnauthorizedResponse]
97
131
  """
98
132
 
99
133
  kwargs = _get_kwargs(
@@ -111,23 +145,31 @@ def sync_detailed(
111
145
  def sync(
112
146
  *,
113
147
  client: AuthenticatedClient | Client,
114
- body: EvaluateSystemPromptRequest,
148
+ body: MultiTurnEvaluateSystemPromptRequest,
115
149
  cbl_api_key: str,
116
- ) -> HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError | None:
117
- """Evaluate System Prompt
118
-
119
- Run agentic safety tests aginst a system prompt.
150
+ ) -> (
151
+ HTTPValidationError
152
+ | InternalServerErrorResponse
153
+ | MultiTurnRunTestsResponse
154
+ | NotFoundResponse
155
+ | QuotaExceededResponse
156
+ | UnauthorizedResponse
157
+ | None
158
+ ):
159
+ """Multi-turn Evaluate System Prompt
160
+
161
+ Run multi-turn safety tests against a system prompt.
120
162
 
121
163
  Args:
122
164
  cbl_api_key (str): Circuit Breaker Labs API Key
123
- body (EvaluateSystemPromptRequest):
165
+ body (MultiTurnEvaluateSystemPromptRequest):
124
166
 
125
167
  Raises:
126
168
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
127
169
  httpx.TimeoutException: If the request takes longer than Client.timeout.
128
170
 
129
171
  Returns:
130
- HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError
172
+ HTTPValidationError | InternalServerErrorResponse | MultiTurnRunTestsResponse | NotFoundResponse | QuotaExceededResponse | UnauthorizedResponse
131
173
  """
132
174
 
133
175
  return sync_detailed(
@@ -140,23 +182,30 @@ def sync(
140
182
  async def asyncio_detailed(
141
183
  *,
142
184
  client: AuthenticatedClient | Client,
143
- body: EvaluateSystemPromptRequest,
185
+ body: MultiTurnEvaluateSystemPromptRequest,
144
186
  cbl_api_key: str,
145
- ) -> Response[HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError]:
146
- """Evaluate System Prompt
147
-
148
- Run agentic safety tests aginst a system prompt.
187
+ ) -> Response[
188
+ HTTPValidationError
189
+ | InternalServerErrorResponse
190
+ | MultiTurnRunTestsResponse
191
+ | NotFoundResponse
192
+ | QuotaExceededResponse
193
+ | UnauthorizedResponse
194
+ ]:
195
+ """Multi-turn Evaluate System Prompt
196
+
197
+ Run multi-turn safety tests against a system prompt.
149
198
 
150
199
  Args:
151
200
  cbl_api_key (str): Circuit Breaker Labs API Key
152
- body (EvaluateSystemPromptRequest):
201
+ body (MultiTurnEvaluateSystemPromptRequest):
153
202
 
154
203
  Raises:
155
204
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
156
205
  httpx.TimeoutException: If the request takes longer than Client.timeout.
157
206
 
158
207
  Returns:
159
- Response[HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError]
208
+ Response[HTTPValidationError | InternalServerErrorResponse | MultiTurnRunTestsResponse | NotFoundResponse | QuotaExceededResponse | UnauthorizedResponse]
160
209
  """
161
210
 
162
211
  kwargs = _get_kwargs(
@@ -172,23 +221,31 @@ async def asyncio_detailed(
172
221
  async def asyncio(
173
222
  *,
174
223
  client: AuthenticatedClient | Client,
175
- body: EvaluateSystemPromptRequest,
224
+ body: MultiTurnEvaluateSystemPromptRequest,
176
225
  cbl_api_key: str,
177
- ) -> HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError | None:
178
- """Evaluate System Prompt
179
-
180
- Run agentic safety tests aginst a system prompt.
226
+ ) -> (
227
+ HTTPValidationError
228
+ | InternalServerErrorResponse
229
+ | MultiTurnRunTestsResponse
230
+ | NotFoundResponse
231
+ | QuotaExceededResponse
232
+ | UnauthorizedResponse
233
+ | None
234
+ ):
235
+ """Multi-turn Evaluate System Prompt
236
+
237
+ Run multi-turn safety tests against a system prompt.
181
238
 
182
239
  Args:
183
240
  cbl_api_key (str): Circuit Breaker Labs API Key
184
- body (EvaluateSystemPromptRequest):
241
+ body (MultiTurnEvaluateSystemPromptRequest):
185
242
 
186
243
  Raises:
187
244
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
188
245
  httpx.TimeoutException: If the request takes longer than Client.timeout.
189
246
 
190
247
  Returns:
191
- HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError
248
+ HTTPValidationError | InternalServerErrorResponse | MultiTurnRunTestsResponse | NotFoundResponse | QuotaExceededResponse | UnauthorizedResponse
192
249
  """
193
250
 
194
251
  return (
@@ -5,17 +5,19 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.evaluate_open_ai_finetune_request import EvaluateOpenAiFinetuneRequest
9
8
  from ...models.http_validation_error import HTTPValidationError
10
- from ...models.quota_exceeded_error import QuotaExceededError
11
- from ...models.run_tests_response import RunTestsResponse
12
- from ...models.unauthorized_error import UnauthorizedError
9
+ from ...models.internal_server_error_response import InternalServerErrorResponse
10
+ from ...models.multi_turn_evaluate_open_ai_finetune_request import MultiTurnEvaluateOpenAiFinetuneRequest
11
+ from ...models.multi_turn_run_tests_response import MultiTurnRunTestsResponse
12
+ from ...models.not_found_response import NotFoundResponse
13
+ from ...models.quota_exceeded_response import QuotaExceededResponse
14
+ from ...models.unauthorized_response import UnauthorizedResponse
13
15
  from ...types import Response
14
16
 
15
17
 
16
18
  def _get_kwargs(
17
19
  *,
18
- body: EvaluateOpenAiFinetuneRequest,
20
+ body: MultiTurnEvaluateOpenAiFinetuneRequest,
19
21
  cbl_api_key: str,
20
22
  openai_api_key: str,
21
23
  ) -> dict[str, Any]:
@@ -26,7 +28,7 @@ def _get_kwargs(
26
28
 
27
29
  _kwargs: dict[str, Any] = {
28
30
  "method": "post",
29
- "url": "/evaluate_openai_finetune",
31
+ "url": "/multiturn_evaluate_openai_finetune",
30
32
  }
31
33
 
32
34
  _kwargs["json"] = body.to_dict()
@@ -39,27 +41,45 @@ def _get_kwargs(
39
41
 
40
42
  def _parse_response(
41
43
  *, client: AuthenticatedClient | Client, response: httpx.Response
42
- ) -> HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError | None:
44
+ ) -> (
45
+ HTTPValidationError
46
+ | InternalServerErrorResponse
47
+ | MultiTurnRunTestsResponse
48
+ | NotFoundResponse
49
+ | QuotaExceededResponse
50
+ | UnauthorizedResponse
51
+ | None
52
+ ):
43
53
  if response.status_code == 200:
44
- response_200 = RunTestsResponse.from_dict(response.json())
54
+ response_200 = MultiTurnRunTestsResponse.from_dict(response.json())
45
55
 
46
56
  return response_200
47
57
 
48
58
  if response.status_code == 401:
49
- response_401 = UnauthorizedError.from_dict(response.json())
59
+ response_401 = UnauthorizedResponse.from_dict(response.json())
50
60
 
51
61
  return response_401
52
62
 
53
63
  if response.status_code == 403:
54
- response_403 = QuotaExceededError.from_dict(response.json())
64
+ response_403 = QuotaExceededResponse.from_dict(response.json())
55
65
 
56
66
  return response_403
57
67
 
68
+ if response.status_code == 404:
69
+ response_404 = NotFoundResponse.from_dict(response.json())
70
+
71
+ return response_404
72
+
58
73
  if response.status_code == 422:
59
74
  response_422 = HTTPValidationError.from_dict(response.json())
60
75
 
61
76
  return response_422
62
77
 
78
+ if response.status_code == 500:
79
+ response_500 = InternalServerErrorResponse.from_dict(response.json())
80
+
81
+ return response_500
82
+
63
83
  if client.raise_on_unexpected_status:
64
84
  raise errors.UnexpectedStatus(response.status_code, response.content)
65
85
  else:
@@ -68,7 +88,14 @@ def _parse_response(
68
88
 
69
89
  def _build_response(
70
90
  *, client: AuthenticatedClient | Client, response: httpx.Response
71
- ) -> Response[HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError]:
91
+ ) -> Response[
92
+ HTTPValidationError
93
+ | InternalServerErrorResponse
94
+ | MultiTurnRunTestsResponse
95
+ | NotFoundResponse
96
+ | QuotaExceededResponse
97
+ | UnauthorizedResponse
98
+ ]:
72
99
  return Response(
73
100
  status_code=HTTPStatus(response.status_code),
74
101
  content=response.content,
@@ -80,13 +107,20 @@ def _build_response(
80
107
  def sync_detailed(
81
108
  *,
82
109
  client: AuthenticatedClient | Client,
83
- body: EvaluateOpenAiFinetuneRequest,
110
+ body: MultiTurnEvaluateOpenAiFinetuneRequest,
84
111
  cbl_api_key: str,
85
112
  openai_api_key: str,
86
- ) -> Response[HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError]:
87
- """Evaluate OpenAI Fine Tune
88
-
89
- Run agentic safety tests against an OpenAI fine-tuned model.
113
+ ) -> Response[
114
+ HTTPValidationError
115
+ | InternalServerErrorResponse
116
+ | MultiTurnRunTestsResponse
117
+ | NotFoundResponse
118
+ | QuotaExceededResponse
119
+ | UnauthorizedResponse
120
+ ]:
121
+ """Multi-turn Evaluate OpenAI Fine Tune
122
+
123
+ Run multi-turn safety tests against an OpenAI fine-tuned model.
90
124
 
91
125
  Args:
92
126
  cbl_api_key (str): Circuit Breaker Labs API Key
@@ -98,14 +132,14 @@ def sync_detailed(
98
132
  You can create a new API key associated with a service account and project
99
133
  [here](https://platform.openai.com/api-keys).
100
134
 
101
- body (EvaluateOpenAiFinetuneRequest):
135
+ body (MultiTurnEvaluateOpenAiFinetuneRequest):
102
136
 
103
137
  Raises:
104
138
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
105
139
  httpx.TimeoutException: If the request takes longer than Client.timeout.
106
140
 
107
141
  Returns:
108
- Response[HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError]
142
+ Response[HTTPValidationError | InternalServerErrorResponse | MultiTurnRunTestsResponse | NotFoundResponse | QuotaExceededResponse | UnauthorizedResponse]
109
143
  """
110
144
 
111
145
  kwargs = _get_kwargs(
@@ -124,13 +158,21 @@ def sync_detailed(
124
158
  def sync(
125
159
  *,
126
160
  client: AuthenticatedClient | Client,
127
- body: EvaluateOpenAiFinetuneRequest,
161
+ body: MultiTurnEvaluateOpenAiFinetuneRequest,
128
162
  cbl_api_key: str,
129
163
  openai_api_key: str,
130
- ) -> HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError | None:
131
- """Evaluate OpenAI Fine Tune
132
-
133
- Run agentic safety tests against an OpenAI fine-tuned model.
164
+ ) -> (
165
+ HTTPValidationError
166
+ | InternalServerErrorResponse
167
+ | MultiTurnRunTestsResponse
168
+ | NotFoundResponse
169
+ | QuotaExceededResponse
170
+ | UnauthorizedResponse
171
+ | None
172
+ ):
173
+ """Multi-turn Evaluate OpenAI Fine Tune
174
+
175
+ Run multi-turn safety tests against an OpenAI fine-tuned model.
134
176
 
135
177
  Args:
136
178
  cbl_api_key (str): Circuit Breaker Labs API Key
@@ -142,14 +184,14 @@ def sync(
142
184
  You can create a new API key associated with a service account and project
143
185
  [here](https://platform.openai.com/api-keys).
144
186
 
145
- body (EvaluateOpenAiFinetuneRequest):
187
+ body (MultiTurnEvaluateOpenAiFinetuneRequest):
146
188
 
147
189
  Raises:
148
190
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
149
191
  httpx.TimeoutException: If the request takes longer than Client.timeout.
150
192
 
151
193
  Returns:
152
- HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError
194
+ HTTPValidationError | InternalServerErrorResponse | MultiTurnRunTestsResponse | NotFoundResponse | QuotaExceededResponse | UnauthorizedResponse
153
195
  """
154
196
 
155
197
  return sync_detailed(
@@ -163,13 +205,20 @@ def sync(
163
205
  async def asyncio_detailed(
164
206
  *,
165
207
  client: AuthenticatedClient | Client,
166
- body: EvaluateOpenAiFinetuneRequest,
208
+ body: MultiTurnEvaluateOpenAiFinetuneRequest,
167
209
  cbl_api_key: str,
168
210
  openai_api_key: str,
169
- ) -> Response[HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError]:
170
- """Evaluate OpenAI Fine Tune
171
-
172
- Run agentic safety tests against an OpenAI fine-tuned model.
211
+ ) -> Response[
212
+ HTTPValidationError
213
+ | InternalServerErrorResponse
214
+ | MultiTurnRunTestsResponse
215
+ | NotFoundResponse
216
+ | QuotaExceededResponse
217
+ | UnauthorizedResponse
218
+ ]:
219
+ """Multi-turn Evaluate OpenAI Fine Tune
220
+
221
+ Run multi-turn safety tests against an OpenAI fine-tuned model.
173
222
 
174
223
  Args:
175
224
  cbl_api_key (str): Circuit Breaker Labs API Key
@@ -181,14 +230,14 @@ async def asyncio_detailed(
181
230
  You can create a new API key associated with a service account and project
182
231
  [here](https://platform.openai.com/api-keys).
183
232
 
184
- body (EvaluateOpenAiFinetuneRequest):
233
+ body (MultiTurnEvaluateOpenAiFinetuneRequest):
185
234
 
186
235
  Raises:
187
236
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
188
237
  httpx.TimeoutException: If the request takes longer than Client.timeout.
189
238
 
190
239
  Returns:
191
- Response[HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError]
240
+ Response[HTTPValidationError | InternalServerErrorResponse | MultiTurnRunTestsResponse | NotFoundResponse | QuotaExceededResponse | UnauthorizedResponse]
192
241
  """
193
242
 
194
243
  kwargs = _get_kwargs(
@@ -205,13 +254,21 @@ async def asyncio_detailed(
205
254
  async def asyncio(
206
255
  *,
207
256
  client: AuthenticatedClient | Client,
208
- body: EvaluateOpenAiFinetuneRequest,
257
+ body: MultiTurnEvaluateOpenAiFinetuneRequest,
209
258
  cbl_api_key: str,
210
259
  openai_api_key: str,
211
- ) -> HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError | None:
212
- """Evaluate OpenAI Fine Tune
213
-
214
- Run agentic safety tests against an OpenAI fine-tuned model.
260
+ ) -> (
261
+ HTTPValidationError
262
+ | InternalServerErrorResponse
263
+ | MultiTurnRunTestsResponse
264
+ | NotFoundResponse
265
+ | QuotaExceededResponse
266
+ | UnauthorizedResponse
267
+ | None
268
+ ):
269
+ """Multi-turn Evaluate OpenAI Fine Tune
270
+
271
+ Run multi-turn safety tests against an OpenAI fine-tuned model.
215
272
 
216
273
  Args:
217
274
  cbl_api_key (str): Circuit Breaker Labs API Key
@@ -223,14 +280,14 @@ async def asyncio(
223
280
  You can create a new API key associated with a service account and project
224
281
  [here](https://platform.openai.com/api-keys).
225
282
 
226
- body (EvaluateOpenAiFinetuneRequest):
283
+ body (MultiTurnEvaluateOpenAiFinetuneRequest):
227
284
 
228
285
  Raises:
229
286
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
230
287
  httpx.TimeoutException: If the request takes longer than Client.timeout.
231
288
 
232
289
  Returns:
233
- HTTPValidationError | QuotaExceededError | RunTestsResponse | UnauthorizedError
290
+ HTTPValidationError | InternalServerErrorResponse | MultiTurnRunTestsResponse | NotFoundResponse | QuotaExceededResponse | UnauthorizedResponse
234
291
  """
235
292
 
236
293
  return (