Skip to content

Commit 7f71f8b

Browse files
committed
removed custom scorers
1 parent 9f4b49d commit 7f71f8b

15 files changed

Lines changed: 8 additions & 336 deletions

src/runloop_api_client/resources/scenarios/scorers.py

Lines changed: 1 addition & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,11 @@
1616
)
1717
from ...pagination import SyncScenarioScorersCursorIDPage, AsyncScenarioScorersCursorIDPage
1818
from ..._base_client import AsyncPaginator, make_request_options
19-
from ...types.scenarios import scorer_list_params, scorer_create_params, scorer_update_params, scorer_validate_params
20-
from ...types.scenario_environment_param import ScenarioEnvironmentParam
19+
from ...types.scenarios import scorer_list_params, scorer_create_params, scorer_update_params
2120
from ...types.scenarios.scorer_list_response import ScorerListResponse
2221
from ...types.scenarios.scorer_create_response import ScorerCreateResponse
2322
from ...types.scenarios.scorer_update_response import ScorerUpdateResponse
2423
from ...types.scenarios.scorer_retrieve_response import ScorerRetrieveResponse
25-
from ...types.scenarios.scorer_validate_response import ScorerValidateResponse
2624

2725
__all__ = ["ScorersResource", "AsyncScorersResource"]
2826

@@ -232,59 +230,6 @@ def list(
232230
model=ScorerListResponse,
233231
)
234232

235-
def validate(
236-
self,
237-
id: str,
238-
*,
239-
scoring_context: object,
240-
environment_parameters: ScenarioEnvironmentParam | Omit = omit,
241-
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
242-
# The extra values given here take precedence over values defined on the client or passed to this method.
243-
extra_headers: Headers | None = None,
244-
extra_query: Query | None = None,
245-
extra_body: Body | None = None,
246-
timeout: float | httpx.Timeout | None | NotGiven = not_given,
247-
idempotency_key: str | None = None,
248-
) -> ScorerValidateResponse:
249-
"""
250-
Validate a scenario scorer.
251-
252-
Args:
253-
scoring_context: Json context that gets passed to the custom scorer
254-
255-
environment_parameters: The Environment in which the Scenario will run.
256-
257-
extra_headers: Send extra headers
258-
259-
extra_query: Add additional query parameters to the request
260-
261-
extra_body: Add additional JSON properties to the request
262-
263-
timeout: Override the client-level default timeout for this request, in seconds
264-
265-
idempotency_key: Specify a custom idempotency key for this request
266-
"""
267-
if not id:
268-
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
269-
return self._post(
270-
f"/v1/scenarios/scorers/{id}/validate",
271-
body=maybe_transform(
272-
{
273-
"scoring_context": scoring_context,
274-
"environment_parameters": environment_parameters,
275-
},
276-
scorer_validate_params.ScorerValidateParams,
277-
),
278-
options=make_request_options(
279-
extra_headers=extra_headers,
280-
extra_query=extra_query,
281-
extra_body=extra_body,
282-
timeout=timeout,
283-
idempotency_key=idempotency_key,
284-
),
285-
cast_to=ScorerValidateResponse,
286-
)
287-
288233

289234
class AsyncScorersResource(AsyncAPIResource):
290235
@cached_property
@@ -491,59 +436,6 @@ def list(
491436
model=ScorerListResponse,
492437
)
493438

494-
async def validate(
495-
self,
496-
id: str,
497-
*,
498-
scoring_context: object,
499-
environment_parameters: ScenarioEnvironmentParam | Omit = omit,
500-
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
501-
# The extra values given here take precedence over values defined on the client or passed to this method.
502-
extra_headers: Headers | None = None,
503-
extra_query: Query | None = None,
504-
extra_body: Body | None = None,
505-
timeout: float | httpx.Timeout | None | NotGiven = not_given,
506-
idempotency_key: str | None = None,
507-
) -> ScorerValidateResponse:
508-
"""
509-
Validate a scenario scorer.
510-
511-
Args:
512-
scoring_context: Json context that gets passed to the custom scorer
513-
514-
environment_parameters: The Environment in which the Scenario will run.
515-
516-
extra_headers: Send extra headers
517-
518-
extra_query: Add additional query parameters to the request
519-
520-
extra_body: Add additional JSON properties to the request
521-
522-
timeout: Override the client-level default timeout for this request, in seconds
523-
524-
idempotency_key: Specify a custom idempotency key for this request
525-
"""
526-
if not id:
527-
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
528-
return await self._post(
529-
f"/v1/scenarios/scorers/{id}/validate",
530-
body=await async_maybe_transform(
531-
{
532-
"scoring_context": scoring_context,
533-
"environment_parameters": environment_parameters,
534-
},
535-
scorer_validate_params.ScorerValidateParams,
536-
),
537-
options=make_request_options(
538-
extra_headers=extra_headers,
539-
extra_query=extra_query,
540-
extra_body=extra_body,
541-
timeout=timeout,
542-
idempotency_key=idempotency_key,
543-
),
544-
cast_to=ScorerValidateResponse,
545-
)
546-
547439

548440
class ScorersResourceWithRawResponse:
549441
def __init__(self, scorers: ScorersResource) -> None:
@@ -561,9 +453,6 @@ def __init__(self, scorers: ScorersResource) -> None:
561453
self.list = to_raw_response_wrapper(
562454
scorers.list,
563455
)
564-
self.validate = to_raw_response_wrapper(
565-
scorers.validate,
566-
)
567456

568457

569458
class AsyncScorersResourceWithRawResponse:
@@ -582,9 +471,6 @@ def __init__(self, scorers: AsyncScorersResource) -> None:
582471
self.list = async_to_raw_response_wrapper(
583472
scorers.list,
584473
)
585-
self.validate = async_to_raw_response_wrapper(
586-
scorers.validate,
587-
)
588474

589475

590476
class ScorersResourceWithStreamingResponse:
@@ -603,9 +489,6 @@ def __init__(self, scorers: ScorersResource) -> None:
603489
self.list = to_streamed_response_wrapper(
604490
scorers.list,
605491
)
606-
self.validate = to_streamed_response_wrapper(
607-
scorers.validate,
608-
)
609492

610493

611494
class AsyncScorersResourceWithStreamingResponse:
@@ -624,6 +507,3 @@ def __init__(self, scorers: AsyncScorersResource) -> None:
624507
self.list = async_to_streamed_response_wrapper(
625508
scorers.list,
626509
)
627-
self.validate = async_to_streamed_response_wrapper(
628-
scorers.validate,
629-
)

src/runloop_api_client/sdk/_types.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
from .._types import Body, Query, Headers, Timeout, NotGiven
3838
from ..lib.polling import PollingConfig
3939
from ..types.devboxes import DiskSnapshotListParams, DiskSnapshotUpdateParams
40-
from ..types.scenarios import ScorerListParams, ScorerCreateParams, ScorerUpdateParams, ScorerValidateParams
40+
from ..types.scenarios import ScorerListParams, ScorerCreateParams, ScorerUpdateParams
4141
from ..types.devbox_create_params import DevboxBaseCreateParams
4242
from ..types.scenario_start_run_params import ScenarioStartRunBaseParams
4343
from ..types.benchmark_start_run_params import BenchmarkSelfStartRunParams
@@ -181,10 +181,6 @@ class SDKScorerUpdateParams(ScorerUpdateParams, LongRequestOptions):
181181
pass
182182

183183

184-
class SDKScorerValidateParams(ScorerValidateParams, LongRequestOptions):
185-
pass
186-
187-
188184
class SDKAgentCreateParams(AgentCreateParams, LongRequestOptions):
189185
pass
190186

src/runloop_api_client/sdk/async_scenario_builder.py

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from ..types.scoring_function_param import (
1515
Scorer,
1616
ScoringFunctionParam,
17-
ScorerCustomScoringFunction,
1817
ScorerAstGrepScoringFunction,
1918
ScorerCommandScoringFunction,
2019
ScorerTestBasedScoringFunction,
@@ -304,35 +303,6 @@ def add_ast_grep_scorer(
304303
scorer["lang"] = lang
305304
return self._add_scorer(name, weight, scorer)
306305

307-
def add_custom_scorer(
308-
self,
309-
name: str,
310-
*,
311-
custom_scorer_type: str,
312-
weight: float = 1.0,
313-
scorer_params: Optional[object] = None,
314-
) -> Self:
315-
"""Add a custom scorer registered with Runloop.
316-
317-
:param name: Name of the scoring function
318-
:type name: str
319-
:param custom_scorer_type: Type identifier registered with Runloop
320-
:type custom_scorer_type: str
321-
:param weight: Weight for this scorer (normalized automatically)
322-
:type weight: float
323-
:param scorer_params: Additional JSON parameters for the scorer
324-
:type scorer_params: Optional[object]
325-
:return: Self for method chaining
326-
:rtype: Self
327-
"""
328-
scorer: ScorerCustomScoringFunction = {
329-
"type": "custom_scorer",
330-
"custom_scorer_type": custom_scorer_type,
331-
}
332-
if scorer_params:
333-
scorer["scorer_params"] = scorer_params
334-
return self._add_scorer(name, weight, scorer)
335-
336306
def with_metadata(self, metadata: Dict[str, str]) -> Self:
337307
"""Set metadata for the scenario.
338308

src/runloop_api_client/sdk/async_scorer.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,20 @@
77
from ._types import (
88
BaseRequestOptions,
99
SDKScorerUpdateParams,
10-
SDKScorerValidateParams,
1110
)
1211
from .._client import AsyncRunloop
13-
from ..types.scenarios import ScorerUpdateResponse, ScorerRetrieveResponse, ScorerValidateResponse
12+
from ..types.scenarios import ScorerUpdateResponse, ScorerRetrieveResponse
1413

1514

1615
class AsyncScorer:
17-
"""A custom scorer for evaluating scenario outputs (async).
16+
"""A scorer for evaluating scenario outputs (async).
1817
1918
Scorers define bash scripts that produce a score in the range [0.0, 1.0] for scenario runs.
2019
Obtain instances via ``runloop.scorer.create()`` or ``runloop.scorer.from_id()``.
2120
2221
Example:
2322
>>> runloop = AsyncRunloopSDK()
2423
>>> scorer = await runloop.scorer.create(type="my_scorer", bash_script="echo 'score=1.0'")
25-
>>> await scorer.validate(scoring_context={"output": "test"})
2624
"""
2725

2826
def __init__(self, client: AsyncRunloop, scorer_id: str) -> None:
@@ -66,12 +64,3 @@ async def update(self, **params: Unpack[SDKScorerUpdateParams]) -> ScorerUpdateR
6664
:rtype: ScorerUpdateResponse
6765
"""
6866
return await self._client.scenarios.scorers.update(self._id, **params)
69-
70-
async def validate(self, **params: Unpack[SDKScorerValidateParams]) -> ScorerValidateResponse:
71-
"""Run the scorer against the provided context and return the result.
72-
73-
:param params: See :typeddict:`~runloop_api_client.sdk._types.SDKScorerValidateParams` for available parameters
74-
:return: Validation result with score
75-
:rtype: ScorerValidateResponse
76-
"""
77-
return await self._client.scenarios.scorers.validate(self._id, **params)

src/runloop_api_client/sdk/scenario_builder.py

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from ..types.scoring_function_param import (
1515
Scorer,
1616
ScoringFunctionParam,
17-
ScorerCustomScoringFunction,
1817
ScorerAstGrepScoringFunction,
1918
ScorerCommandScoringFunction,
2019
ScorerTestBasedScoringFunction,
@@ -304,35 +303,6 @@ def add_ast_grep_scorer(
304303
scorer["lang"] = lang
305304
return self._add_scorer(name, weight, scorer)
306305

307-
def add_custom_scorer(
308-
self,
309-
name: str,
310-
*,
311-
custom_scorer_type: str,
312-
weight: float = 1.0,
313-
scorer_params: Optional[object] = None,
314-
) -> Self:
315-
"""Add a custom scorer registered with Runloop.
316-
317-
:param name: Name of the scoring function
318-
:type name: str
319-
:param custom_scorer_type: Type identifier registered with Runloop
320-
:type custom_scorer_type: str
321-
:param weight: Weight for this scorer (normalized automatically)
322-
:type weight: float
323-
:param scorer_params: Additional JSON parameters for the scorer
324-
:type scorer_params: Optional[object]
325-
:return: Self for method chaining
326-
:rtype: Self
327-
"""
328-
scorer: ScorerCustomScoringFunction = {
329-
"type": "custom_scorer",
330-
"custom_scorer_type": custom_scorer_type,
331-
}
332-
if scorer_params:
333-
scorer["scorer_params"] = scorer_params
334-
return self._add_scorer(name, weight, scorer)
335-
336306
def with_metadata(self, metadata: Dict[str, str]) -> Self:
337307
"""Set metadata for the scenario.
338308

src/runloop_api_client/sdk/scorer.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,20 @@
77
from ._types import (
88
BaseRequestOptions,
99
SDKScorerUpdateParams,
10-
SDKScorerValidateParams,
1110
)
1211
from .._client import Runloop
13-
from ..types.scenarios import ScorerUpdateResponse, ScorerRetrieveResponse, ScorerValidateResponse
12+
from ..types.scenarios import ScorerUpdateResponse, ScorerRetrieveResponse
1413

1514

1615
class Scorer:
17-
"""A custom scorer for evaluating scenario outputs.
16+
"""A scorer for evaluating scenario outputs.
1817
1918
Scorers define bash scripts that produce a score in the range [0.0, 1.0] for scenario runs.
2019
Obtain instances via ``runloop.scorer.create()`` or ``runloop.scorer.from_id()``.
2120
2221
Example:
2322
>>> runloop = RunloopSDK()
2423
>>> scorer = runloop.scorer.create(type="my_scorer", bash_script="echo 'score=1.0'")
25-
>>> scorer.validate(scoring_context={"output": "test"})
2624
"""
2725

2826
def __init__(self, client: Runloop, scorer_id: str) -> None:
@@ -66,12 +64,3 @@ def update(self, **params: Unpack[SDKScorerUpdateParams]) -> ScorerUpdateRespons
6664
:rtype: ScorerUpdateResponse
6765
"""
6866
return self._client.scenarios.scorers.update(self._id, **params)
69-
70-
def validate(self, **params: Unpack[SDKScorerValidateParams]) -> ScorerValidateResponse:
71-
"""Run the scorer against the provided context and return the result.
72-
73-
:param params: See :typeddict:`~runloop_api_client.sdk._types.SDKScorerValidateParams` for available parameters
74-
:return: Validation result with score
75-
:rtype: ScorerValidateResponse
76-
"""
77-
return self._client.scenarios.scorers.validate(self._id, **params)

src/runloop_api_client/types/scenarios/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,4 @@
99
from .scorer_update_params import ScorerUpdateParams as ScorerUpdateParams
1010
from .scorer_create_response import ScorerCreateResponse as ScorerCreateResponse
1111
from .scorer_update_response import ScorerUpdateResponse as ScorerUpdateResponse
12-
from .scorer_validate_params import ScorerValidateParams as ScorerValidateParams
1312
from .scorer_retrieve_response import ScorerRetrieveResponse as ScorerRetrieveResponse
14-
from .scorer_validate_response import ScorerValidateResponse as ScorerValidateResponse

src/runloop_api_client/types/scenarios/scorer_validate_params.py

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)