11from typing import List , Optional , Dict , Union
22from urllib .parse import urlparse , unquote
3- from dataclasses import dataclass
4- from dataclasses import field
5- from pydantic import Field
3+ from dataclasses import dataclass , field
64from enum import Enum
75import mimetypes
86import base64
1513class MLLMImage :
1614 url : str
1715 local : Optional [bool ] = None
18- filename : Optional [str ] = Field (default = None , init = False , repr = False )
19- mime_type : Optional [str ] = Field (default = None , init = False , repr = False , alias = "mimeType" )
20- data_base64 : Optional [str ] = Field (default = None , init = False , repr = False , alias = "dataBase64" )
16+ filename : Optional [str ] = field (default = None , init = False , repr = False )
17+ mimeType : Optional [str ] = field (default = None , init = False , repr = False )
18+ dataBase64 : Optional [str ] = field (default = None , init = False , repr = False )
2119
2220 def __post_init__ (self ):
2321 is_local = self .is_local_path (self .url )
@@ -30,14 +28,14 @@ def __post_init__(self):
3028 if self .local :
3129 path = self .process_url (self .url )
3230 self .filename = os .path .basename (path )
33- self .mime_type = mimetypes .guess_type (path )[0 ] or "application/octet-stream"
31+ self .mimeType = mimetypes .guess_type (path )[0 ] or "application/octet-stream"
3432 with open (path , "rb" ) as f :
3533 raw = f .read ()
36- self .data_base64 = base64 .b64encode (raw ).decode ("ascii" )
34+ self .dataBase64 = base64 .b64encode (raw ).decode ("ascii" )
3735 else :
3836 self .filename = None
39- self .mime_type = None
40- self .data_base64 = None
37+ self .mimeType = None
38+ self .dataBase64 = None
4139
4240 @staticmethod
4341 def process_url (url : str ) -> str :
0 commit comments