diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py new file mode 100644 index 00000000..5cf21395 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py @@ -0,0 +1,45 @@ +from typing import Union + +import httpx + +from litellm.llms.base_llm.chat.transformation import BaseLLMException + + +class OllamaError(BaseLLMException): + def __init__( + self, status_code: int, message: str, headers: Union[dict, httpx.Headers] + ): + super().__init__(status_code=status_code, message=message, headers=headers) + + +def _convert_image(image): + """ + Convert image to base64 encoded image if not already in base64 format + + If image is already in base64 format AND is a jpeg/png, return it + + If image is not JPEG/PNG, convert it to JPEG base64 format + """ + import base64 + import io + + try: + from PIL import Image + except Exception: + raise Exception( + "ollama image conversion failed please run `pip install Pillow`" + ) + + orig = image + if image.startswith("data:"): + image = image.split(",")[-1] + try: + image_data = Image.open(io.BytesIO(base64.b64decode(image))) + if image_data.format in ["JPEG", "PNG"]: + return image + except Exception: + return orig + jpeg_image = io.BytesIO() + image_data.convert("RGB").save(jpeg_image, "JPEG") + jpeg_image.seek(0) + return base64.b64encode(jpeg_image.getvalue()).decode("utf-8") |