From 7f6d267e989a7186da76ef275e110465cf1acc88 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: a4f1de9d82743bfd35a6dbc1027242533b22ed5f --- 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 95500687ddb0000182cbff16d4f73d0f93b7bc7d 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: 8eb20929217feed91097f60460802f6c6ba7b92b --- 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 f3778f65f8995a45c842b6c4003b2c0fd28f4afe 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: 3a285217107f3042a4d6b7a60eedcdd07f73627d --- 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 53a2b16c386c81a778469574752c5424d7ff2853 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: 1545684c3f176a95554afa64f313f00b53a32a77 --- 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 388c3e4e47f7711c48213dfd76d0cbf2f8649299 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: df8d5b6985bb209e841347ee51fc6787d9bcd069 --- 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