diff --git a/langfuse/api/resources/commons/types/dataset.py b/langfuse/api/resources/commons/types/dataset.py index be59a951a..116bff135 100644 --- a/langfuse/api/resources/commons/types/dataset.py +++ b/langfuse/api/resources/commons/types/dataset.py @@ -12,6 +12,20 @@ class Dataset(pydantic_v1.BaseModel): name: str description: typing.Optional[str] = None metadata: typing.Optional[typing.Any] = None + input_schema: typing.Optional[typing.Any] = pydantic_v1.Field( + alias="inputSchema", default=None + ) + """ + JSON Schema for validating dataset item inputs + """ + + expected_output_schema: typing.Optional[typing.Any] = pydantic_v1.Field( + alias="expectedOutputSchema", default=None + ) + """ + JSON Schema for validating dataset item expected outputs + """ + project_id: str = pydantic_v1.Field(alias="projectId") created_at: dt.datetime = pydantic_v1.Field(alias="createdAt") updated_at: dt.datetime = pydantic_v1.Field(alias="updatedAt") diff --git a/langfuse/api/resources/datasets/types/create_dataset_request.py b/langfuse/api/resources/datasets/types/create_dataset_request.py index 023cb4c12..228527909 100644 --- a/langfuse/api/resources/datasets/types/create_dataset_request.py +++ b/langfuse/api/resources/datasets/types/create_dataset_request.py @@ -11,6 +11,19 @@ class CreateDatasetRequest(pydantic_v1.BaseModel): name: str description: typing.Optional[str] = None metadata: typing.Optional[typing.Any] = None + input_schema: typing.Optional[typing.Any] = pydantic_v1.Field( + alias="inputSchema", default=None + ) + """ + JSON Schema for validating dataset item inputs. When set, all new and existing dataset items will be validated against this schema. + """ + + expected_output_schema: typing.Optional[typing.Any] = pydantic_v1.Field( + alias="expectedOutputSchema", default=None + ) + """ + JSON Schema for validating dataset item expected outputs. When set, all new and existing dataset items will be validated against this schema. + """ def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = { @@ -40,5 +53,7 @@ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: class Config: frozen = True smart_union = True + allow_population_by_field_name = True + populate_by_name = True extra = pydantic_v1.Extra.allow json_encoders = {dt.datetime: serialize_datetime} diff --git a/langfuse/api/resources/score/types/create_score_request.py b/langfuse/api/resources/score/types/create_score_request.py index 36b0774ee..1f79f4a64 100644 --- a/langfuse/api/resources/score/types/create_score_request.py +++ b/langfuse/api/resources/score/types/create_score_request.py @@ -40,7 +40,7 @@ class CreateScoreRequest(pydantic_v1.BaseModel): """ comment: typing.Optional[str] = None - metadata: typing.Optional[typing.Any] = None + metadata: typing.Optional[typing.Dict[str, typing.Any]] = None environment: typing.Optional[str] = pydantic_v1.Field(default=None) """ The environment of the score. Can be any lowercase alphanumeric string with hyphens and underscores that does not start with 'langfuse'.