mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-26 11:14:04 +00:00
* fix(generic_api_callback.py): remove requests lib usage * fix(budget_manager.py): remove requests lib usgae * fix(main.py): cleanup requests lib usage * fix(utils.py): remove requests lib usage * fix(argilla.py): fix argilla test * fix(athina.py): replace 'requests' lib usage with litellm module * fix(greenscale.py): replace 'requests' lib usage with httpx * fix: remove unused 'requests' lib import + replace usage in some places * fix(prompt_layer.py): remove 'requests' lib usage from prompt layer * fix(ollama_chat.py): remove 'requests' lib usage * fix(baseten.py): replace 'requests' lib usage * fix(codestral/): replace 'requests' lib usage * fix(predibase/): replace 'requests' lib usage * refactor: cleanup unused 'requests' lib imports * fix(oobabooga.py): cleanup 'requests' lib usage * fix(invoke_handler.py): remove unused 'requests' lib usage * refactor: cleanup unused 'requests' lib import * fix: fix linting errors * refactor(ollama/): move ollama to using base llm http handler removes 'requests' lib dep for ollama integration * fix(ollama_chat.py): fix linting errors * fix(ollama/completion/transformation.py): convert non-jpeg/png image to jpeg/png before passing to ollama
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
from typing import Union
|
|
|
|
import httpx
|
|
|
|
from litellm.llms.base_llm.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")
|