adaptive_sdk.external

class RewardClient:
RewardClient( base_url: str, max_connections: int = 32, timeout: float | None = None)
base_url
use_websocket
async def connect_websocket(self):
async def score( self, req: Request) -> Response:
async def batch_score( self, requests: list[Request]) -> list[Response]:
async def validate_metadata(self, metadata: dict[typing.Any, typing.Any]):
async def batch_validate_metadata( self, list_of_metadata: list[dict[typing.Any, typing.Any]]) -> adaptive_sdk.external.reward_types.BatchedMetadataValidationResponse:
async def info(self) -> ServerInfo:
def blocking_info(self) -> ServerInfo:
def blocking_batch_score( self, requests: list[Request]) -> list[Response]:
class RewardServer(abc.ABC, typing.Generic[~META]):

Helper class that provides a standard way to create an ABC using inheritance.

requests_journal
request_timeout_s
metadata_cls
verbose
def cleanup(self):
@abstractmethod
async def score( self, request: ValidatedRequest[TypeVar]) -> Response:
async def batch_score( self, requests: adaptive_sdk.external.reward_types.ValidatedBatchedRequest[TypeVar]) -> BatchedResponse:
def get_medata_schema(self) -> starlette.responses.JSONResponse:
@abstractmethod
async def info(self) -> ServerInfo:
class EmptyMetadata(adaptive_sdk.external.reward_types.BaseModel):

Usage docs: https://docs.pydantic.dev/2.10/concepts/models/

A base class for creating Pydantic models.

Attributes:
  • __class_vars__: The names of the class variables defined on the model.
  • __private_attributes__: Metadata about the private attributes of the model.
  • __signature__: The synthesized __init__ [Signature][inspect.Signature] of the model.
  • __pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
  • __pydantic_core_schema__: The core schema of the model.
  • __pydantic_custom_init__: Whether the model has a custom __init__ function.
  • __pydantic_decorators__: Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.
  • __pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
  • __pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
  • __pydantic_post_init__: The name of the post-init method for the model, if defined.
  • __pydantic_root_model__: Whether the model is a [RootModel][pydantic.root_model.RootModel].
  • __pydantic_serializer__: The pydantic-core SchemaSerializer used to dump instances of the model.
  • __pydantic_validator__: The pydantic-core SchemaValidator used to validate instances of the model.
  • __pydantic_fields__: A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
  • __pydantic_computed_fields__: A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
  • __pydantic_extra__: A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
  • __pydantic_fields_set__: The names of fields explicitly set during instantiation.
  • __pydantic_private__: Values of private attributes set on the model instance.
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ValidatedRequest(adaptive_sdk.external.reward_types.BaseModel, typing.Generic[~MetadataType]):

turns: list[Turn]
metadata: ~MetadataType
id: int | None
@model_validator(mode='before')
@classmethod
def intercept_none_metadata(cls, data: Any) -> Any:
class Request(adaptive_sdk.external.reward_types.BaseModel):

turns: list[Turn]
metadata: dict[str, typing.Any] | None
id: int | None
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class Response(adaptive_sdk.external.reward_types.BaseModel):

reward: float
metadata: dict[str, typing.Any]
id: int | None
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class BatchedRequest(adaptive_sdk.external.reward_types.BaseModel):

requests: list[Request]
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class BatchedResponse(adaptive_sdk.external.reward_types.BaseModel):

responses: list[Response]
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ServerInfo(adaptive_sdk.external.reward_types.BaseModel):

version: str
name: str
description: str
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class Turn(adaptive_sdk.external.reward_types.BaseModel):

role: str
content: str
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].