about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are here HEAD master
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.py45
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")