Spaces:
Sleeping
Sleeping
File size: 1,425 Bytes
41d24d2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
from llmlib.base_llm import LLM, Message
from PIL import Image
from llmlib.rest_api.restapi_client import encode_as_png_in_base64
import pytest
from llmlib.openai.openai_completion import (
OpenAIModel,
extract_msgs,
)
from deepdiff import DeepDiff
from .helpers import (
assert_model_knows_capital_of_france,
assert_model_recognizes_pyramid_in_image,
is_ci,
)
def test_extract_msgs():
img = Image.new(mode="RGB", size=(1, 1))
msgs = [
Message(role="user", msg="Hi"),
Message(role="assistant", msg="Hi!"),
Message(role="user", msg="Describe:", img=img, img_name="img1"),
]
messages = extract_msgs(msgs)
expected_msgs = [
{"role": "user", "content": "Hi"},
{"role": "assistant", "content": "Hi!"},
{
"role": "user",
"content": [
{"type": "text", "text": "Describe:"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/png;base64,{encode_as_png_in_base64(img)}",
},
},
],
},
]
assert DeepDiff(messages, expected_msgs) == {}
@pytest.mark.skipif(condition=is_ci(), reason="Avoid costs")
def test_openai_vision():
model: LLM = OpenAIModel()
assert_model_knows_capital_of_france(model)
assert_model_recognizes_pyramid_in_image(model)
|