mirror of
https://git.datalinker.icu/vllm-project/vllm.git
synced 2026-05-11 22:13:42 +08:00
Move to a faster base64 implementation (#19984)
Signed-off-by: h-avsha <avshalom.manevich@hcompany.ai>
This commit is contained in:
parent
2273ec322c
commit
3443aaf8dd
@ -44,3 +44,4 @@ watchfiles # required for http server to monitor the updates of TLS files
|
|||||||
python-json-logger # Used by logging as per examples/others/logging_configuration.md
|
python-json-logger # Used by logging as per examples/others/logging_configuration.md
|
||||||
scipy # Required for phi-4-multimodal-instruct
|
scipy # Required for phi-4-multimodal-instruct
|
||||||
ninja # Required for xgrammar, rocm, tpu, xpu
|
ninja # Required for xgrammar, rocm, tpu, xpu
|
||||||
|
pybase64 # fast base64 implementation
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||||
|
|
||||||
import base64
|
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pybase64
|
||||||
import torch
|
import torch
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ class ImageMediaIO(MediaIO[Image.Image]):
|
|||||||
return convert_image_mode(image, self.image_mode)
|
return convert_image_mode(image, self.image_mode)
|
||||||
|
|
||||||
def load_base64(self, media_type: str, data: str) -> Image.Image:
|
def load_base64(self, media_type: str, data: str) -> Image.Image:
|
||||||
return self.load_bytes(base64.b64decode(data))
|
return self.load_bytes(pybase64.b64decode(data, validate=True))
|
||||||
|
|
||||||
def load_file(self, filepath: Path) -> Image.Image:
|
def load_file(self, filepath: Path) -> Image.Image:
|
||||||
image = Image.open(filepath)
|
image = Image.open(filepath)
|
||||||
@ -75,7 +75,7 @@ class ImageMediaIO(MediaIO[Image.Image]):
|
|||||||
image.save(buffer, image_format)
|
image.save(buffer, image_format)
|
||||||
data = buffer.getvalue()
|
data = buffer.getvalue()
|
||||||
|
|
||||||
return base64.b64encode(data).decode('utf-8')
|
return pybase64.b64encode(data).decode('utf-8')
|
||||||
|
|
||||||
|
|
||||||
class ImageEmbeddingMediaIO(MediaIO[torch.Tensor]):
|
class ImageEmbeddingMediaIO(MediaIO[torch.Tensor]):
|
||||||
@ -88,10 +88,10 @@ class ImageEmbeddingMediaIO(MediaIO[torch.Tensor]):
|
|||||||
return torch.load(buffer, weights_only=True)
|
return torch.load(buffer, weights_only=True)
|
||||||
|
|
||||||
def load_base64(self, media_type: str, data: str) -> torch.Tensor:
|
def load_base64(self, media_type: str, data: str) -> torch.Tensor:
|
||||||
return self.load_bytes(base64.b64decode(data))
|
return self.load_bytes(pybase64.b64decode(data, validate=True))
|
||||||
|
|
||||||
def load_file(self, filepath: Path) -> torch.Tensor:
|
def load_file(self, filepath: Path) -> torch.Tensor:
|
||||||
return torch.load(filepath, weights_only=True)
|
return torch.load(filepath, weights_only=True)
|
||||||
|
|
||||||
def encode_base64(self, media: torch.Tensor) -> str:
|
def encode_base64(self, media: torch.Tensor) -> str:
|
||||||
return base64.b64encode(media.numpy()).decode('utf-8')
|
return pybase64.b64encode(media.numpy()).decode('utf-8')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user