File tree Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -97,6 +97,7 @@ class BaseGenerateRequest(BaseStreamableRequest):
97
97
class Image (BaseModel ):
98
98
value : Union [FilePath , Base64Str , bytes ]
99
99
100
+ # This overloads the `model_dump` method and returns values depending on the type of the `value` field
100
101
@model_serializer
101
102
def serialize_model (self ):
102
103
if isinstance (self .value , Path ):
@@ -333,7 +334,7 @@ class ModelDetails(SubscriptableBaseModel):
333
334
334
335
335
336
class ListResponse (SubscriptableBaseModel ):
336
- class Model (BaseModel ):
337
+ class Model (SubscriptableBaseModel ):
337
338
modified_at : Optional [datetime ] = None
338
339
digest : Optional [str ] = None
339
340
size : Optional [ByteSize ] = None
@@ -394,7 +395,7 @@ class ShowResponse(SubscriptableBaseModel):
394
395
395
396
396
397
class ProcessResponse (SubscriptableBaseModel ):
397
- class Model (BaseModel ):
398
+ class Model (SubscriptableBaseModel ):
398
399
model : Optional [str ] = None
399
400
name : Optional [str ] = None
400
401
digest : Optional [str ] = None
Original file line number Diff line number Diff line change
1
+ from base64 import b64decode , b64encode
2
+
3
+ from ollama ._types import Image
4
+
5
+
6
+ def test_image_serialization ():
7
+ # Test bytes serialization
8
+ image_bytes = b'test image bytes'
9
+ img = Image (value = image_bytes )
10
+ assert img .model_dump () == b64encode (image_bytes ).decode ()
11
+
12
+ # Test base64 string serialization
13
+ b64_str = 'dGVzdCBiYXNlNjQgc3RyaW5n'
14
+ img = Image (value = b64_str )
15
+ assert img .model_dump () == b64decode (b64_str ).decode ()
You can’t perform that action at this time.
0 commit comments