Merge pull request #5237 from marko1616/patch-1

Fix mllm api
This commit is contained in:
hoshi-hiyouga 2024-08-27 12:24:43 +08:00 committed by GitHub
commit dbe886ae5c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 5 additions and 2 deletions

View File

@ -16,9 +16,12 @@ import base64
import io import io
import json import json
import os import os
import re
import uuid import uuid
from typing import TYPE_CHECKING, AsyncGenerator, Dict, List, Optional, Tuple from typing import TYPE_CHECKING, AsyncGenerator, Dict, List, Optional, Tuple
import numpy as np
from ..data import Role as DataRole from ..data import Role as DataRole
from ..extras.logging import get_logger from ..extras.logging import get_logger
from ..extras.packages import is_fastapi_available, is_pillow_available, is_requests_available from ..extras.packages import is_fastapi_available, is_pillow_available, is_requests_available
@ -104,7 +107,7 @@ def _process_request(
input_messages.append({"role": ROLE_MAPPING[message.role], "content": input_item.text}) input_messages.append({"role": ROLE_MAPPING[message.role], "content": input_item.text})
else: else:
image_url = input_item.image_url.url image_url = input_item.image_url.url
if image_url.startswith("data:image"): # base64 image if re.match("^data:image\/(png|jpg|jpeg|gif|bmp);base64,(.+)$", image_url):
image_data = base64.b64decode(image_url.split(",", maxsplit=1)[1]) image_data = base64.b64decode(image_url.split(",", maxsplit=1)[1])
image_path = io.BytesIO(image_data) image_path = io.BytesIO(image_data)
elif os.path.isfile(image_url): # local file elif os.path.isfile(image_url): # local file
@ -112,7 +115,7 @@ def _process_request(
else: # web uri else: # web uri
image_path = requests.get(image_url, stream=True).raw image_path = requests.get(image_url, stream=True).raw
image = Image.open(image_path).convert("RGB") image = np.array(Image.open(image_path).convert("RGB"))
else: else:
input_messages.append({"role": ROLE_MAPPING[message.role], "content": message.content}) input_messages.append({"role": ROLE_MAPPING[message.role], "content": message.content})