|
|
|
|
@ -1,8 +1,8 @@
|
|
|
|
|
# standard import
|
|
|
|
|
import base64
|
|
|
|
|
import io
|
|
|
|
|
import json
|
|
|
|
|
import logging
|
|
|
|
|
import mimetypes
|
|
|
|
|
from collections.abc import Generator
|
|
|
|
|
from typing import Optional, Union, cast
|
|
|
|
|
|
|
|
|
|
@ -17,7 +17,6 @@ from botocore.exceptions import (
|
|
|
|
|
ServiceNotInRegionError,
|
|
|
|
|
UnknownServiceError,
|
|
|
|
|
)
|
|
|
|
|
from PIL.Image import Image
|
|
|
|
|
|
|
|
|
|
# local import
|
|
|
|
|
from core.model_runtime.callbacks.base_callback import Callback
|
|
|
|
|
@ -443,8 +442,9 @@ class BedrockLargeLanguageModel(LargeLanguageModel):
|
|
|
|
|
try:
|
|
|
|
|
url = message_content.data
|
|
|
|
|
image_content = requests.get(url).content
|
|
|
|
|
with Image.open(io.BytesIO(image_content)) as img:
|
|
|
|
|
mime_type = f"image/{img.format.lower()}"
|
|
|
|
|
if "?" in url:
|
|
|
|
|
url = url.split("?")[0]
|
|
|
|
|
mime_type, _ = mimetypes.guess_type(url)
|
|
|
|
|
base64_data = base64.b64encode(image_content).decode("utf-8")
|
|
|
|
|
except Exception as ex:
|
|
|
|
|
raise ValueError(f"Failed to fetch image data from url {message_content.data}, {ex}")
|
|
|
|
|
|