51 lines
No EOL
1.8 KiB
Python
51 lines
No EOL
1.8 KiB
Python
from marshmallow import Schema, fields
|
|
|
|
class DocumentMetadataSchemaV1(Schema):
|
|
user_id = fields.Str(required=True)
|
|
memory_id = fields.Str(required=True)
|
|
ltm_memory_id = fields.Str(required=True)
|
|
st_memory_id = fields.Str(required=True)
|
|
buffer_id = fields.Str(required=True)
|
|
version = fields.Str(missing="")
|
|
agreement_id = fields.Str(missing="")
|
|
privacy_policy = fields.Str(missing="")
|
|
terms_of_service = fields.Str(missing="")
|
|
format = fields.Str(missing="")
|
|
schema_version = fields.Str(missing="")
|
|
checksum = fields.Str(missing="")
|
|
owner = fields.Str(missing="")
|
|
license = fields.Str(missing="")
|
|
validity_start = fields.Str(missing="")
|
|
validity_end = fields.Str(missing="")
|
|
|
|
class DocumentMetadataSchemaV2(Schema):
|
|
user_id = fields.Str(required=True)
|
|
memory_id = fields.Str(required=True)
|
|
ltm_memory_id = fields.Str(required=True)
|
|
st_memory_id = fields.Str(required=True)
|
|
buffer_id = fields.Str(required=True)
|
|
version = fields.Str(missing="")
|
|
agreement_id = fields.Str(missing="")
|
|
privacy_policy = fields.Str(missing="")
|
|
terms_of_service = fields.Str(missing="")
|
|
format = fields.Str(missing="")
|
|
schema_version = fields.Str(missing="")
|
|
checksum = fields.Str(missing="")
|
|
owner = fields.Str(missing="")
|
|
license = fields.Str(missing="")
|
|
validity_start = fields.Str(missing="")
|
|
validity_end = fields.Str(missing="")
|
|
random = fields.Str(missing="")
|
|
|
|
class DocumentSchema(Schema):
|
|
metadata = fields.Nested(DocumentMetadataSchemaV1, required=True)
|
|
page_content = fields.Str(required=True)
|
|
|
|
|
|
SCHEMA_VERSIONS = {
|
|
"1.0": DocumentMetadataSchemaV1,
|
|
"2.0": DocumentMetadataSchemaV2
|
|
}
|
|
|
|
def get_schema_version(version):
|
|
return SCHEMA_VERSIONS.get(version, DocumentMetadataSchemaV1) |