From edf2e51bbc3cc39386ed8014fa7348404994b931 Mon Sep 17 00:00:00 2001 From: marko1616 <45327989+marko1616@users.noreply.github.com> Date: Thu, 22 Aug 2024 12:14:34 +0800 Subject: [PATCH 1/5] Update chat.py Former-commit-id: edf6dc1995daa6c3635c3fda1052b340693a04f5 --- src/llamafactory/api/chat.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/llamafactory/api/chat.py b/src/llamafactory/api/chat.py index 72b2ae50..1010aab1 100644 --- a/src/llamafactory/api/chat.py +++ b/src/llamafactory/api/chat.py @@ -17,6 +17,7 @@ import io import json import os import uuid +import numpy from typing import TYPE_CHECKING, AsyncGenerator, Dict, List, Optional, Tuple from ..data import Role as DataRole @@ -112,7 +113,7 @@ def _process_request( else: # web uri image_path = requests.get(image_url, stream=True).raw - image = Image.open(image_path).convert("RGB") + image = numpy.array(Image.open(image_path).convert("RGB")) else: input_messages.append({"role": ROLE_MAPPING[message.role], "content": message.content}) From 2674b42b593e483eec9f7c8ad292d945c85150fb Mon Sep 17 00:00:00 2001 From: marko1616 <45327989+marko1616@users.noreply.github.com> Date: Thu, 22 Aug 2024 12:24:34 +0800 Subject: [PATCH 2/5] Update chat.py Former-commit-id: 206a16c17d253956afb96daea6f24478e17334fc --- src/llamafactory/api/chat.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/llamafactory/api/chat.py b/src/llamafactory/api/chat.py index 1010aab1..5bad1af2 100644 --- a/src/llamafactory/api/chat.py +++ b/src/llamafactory/api/chat.py @@ -17,7 +17,7 @@ import io import json import os import uuid -import numpy +import numpy as np from typing import TYPE_CHECKING, AsyncGenerator, Dict, List, Optional, Tuple from ..data import Role as DataRole @@ -113,7 +113,7 @@ def _process_request( else: # web uri image_path = requests.get(image_url, stream=True).raw - image = numpy.array(Image.open(image_path).convert("RGB")) + image = np.array(Image.open(image_path).convert("RGB")) else: input_messages.append({"role": ROLE_MAPPING[message.role], "content": message.content}) From 097d0310668f746b0ed0ab9aee3934ed13678d16 Mon Sep 17 00:00:00 2001 From: marko1616 <45327989+marko1616@users.noreply.github.com> Date: Fri, 23 Aug 2024 14:43:18 +0800 Subject: [PATCH 3/5] Force re check. Former-commit-id: 5f04452f7d65e535d0af08944f7b9e29e85f51d7 --- src/llamafactory/api/chat.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/llamafactory/api/chat.py b/src/llamafactory/api/chat.py index 5bad1af2..1f0c1e95 100644 --- a/src/llamafactory/api/chat.py +++ b/src/llamafactory/api/chat.py @@ -14,6 +14,7 @@ import base64 import io +import re import json import os import uuid @@ -105,7 +106,7 @@ def _process_request( input_messages.append({"role": ROLE_MAPPING[message.role], "content": input_item.text}) else: 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,(.+)$", data_url): image_data = base64.b64decode(image_url.split(",", maxsplit=1)[1]) image_path = io.BytesIO(image_data) elif os.path.isfile(image_url): # local file From bd0f3b405014254c9c8131c96625fe7b6a84ffa4 Mon Sep 17 00:00:00 2001 From: marko1616 <45327989+marko1616@users.noreply.github.com> Date: Tue, 27 Aug 2024 11:27:56 +0800 Subject: [PATCH 4/5] Update chat.py Former-commit-id: 4e5893a5c4a47ff3cb989bbef0841effc713fc08 --- src/llamafactory/api/chat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llamafactory/api/chat.py b/src/llamafactory/api/chat.py index 1f0c1e95..74b56f73 100644 --- a/src/llamafactory/api/chat.py +++ b/src/llamafactory/api/chat.py @@ -106,7 +106,7 @@ def _process_request( input_messages.append({"role": ROLE_MAPPING[message.role], "content": input_item.text}) else: image_url = input_item.image_url.url - if re.match("^data:image\/(png|jpg|jpeg|gif|bmp);base64,(.+)$", data_url): + if re.match("^data:image\/(png|jpg|jpeg|gif|bmp);base64,(.+)$", image_url): image_data = base64.b64decode(image_url.split(",", maxsplit=1)[1]) image_path = io.BytesIO(image_data) elif os.path.isfile(image_url): # local file From 3a9171e2757292fd41595fcc77db1df85ff369a8 Mon Sep 17 00:00:00 2001 From: marko1616 Date: Tue, 27 Aug 2024 11:30:16 +0800 Subject: [PATCH 5/5] ruff pass. Former-commit-id: c2f817772f8e7d947dca04f546befc70001abe64 --- src/llamafactory/api/chat.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/llamafactory/api/chat.py b/src/llamafactory/api/chat.py index 74b56f73..7f5bf8c4 100644 --- a/src/llamafactory/api/chat.py +++ b/src/llamafactory/api/chat.py @@ -14,13 +14,14 @@ import base64 import io -import re import json import os +import re import uuid -import numpy as np from typing import TYPE_CHECKING, AsyncGenerator, Dict, List, Optional, Tuple +import numpy as np + from ..data import Role as DataRole from ..extras.logging import get_logger from ..extras.packages import is_fastapi_available, is_pillow_available, is_requests_available