[CI] Mirror external test assets in vLLM S3 (#52064)
Signed-off-by: khluu <khluu000@gmail.com> Co-authored-by: OpenAI Codex <noreply@openai.com>
Kevin H. Luu committed
Aug 12, 2026 at 19:08 UTC
8eb35c5217ef98ab06c88f42ef4e41737dd2d1f3
5 files changed
+30
-41
tests/entrypoints/multimodal/openai/chat_completion/test_video.py
+4
-3
@@ -8,6 +8,7 @@ import pytest
8
import pytest_asyncio
9
10
from tests.utils import RemoteOpenAIServer
11
+from vllm.assets.base import VLLM_S3_BUCKET_URL
12
from vllm.multimodal.utils import encode_video_url, fetch_video
13
from vllm.platforms import current_platform
14
@@ -15,9 +16,9 @@ MODEL_NAME = "llava-hf/llava-onevision-qwen2-0.5b-ov-hf"
16
MAXIMUM_VIDEOS = 3
17
18
TEST_VIDEO_URLS = [
18
- "https://www.bogotobogo.com/python/OpenCV_Python/images/mean_shift_tracking/slow_traffic_small.mp4",
19
- "https://github.com/opencv/opencv/raw/refs/tags/4.12.0/samples/data/vtest.avi",
20
- "https://github.com/opencv/opencv/raw/refs/tags/4.12.0/samples/data/Megamind.avi",
19
+ f"{VLLM_S3_BUCKET_URL}/multimodal_asset/slow_traffic_small.mp4",
20
+ f"{VLLM_S3_BUCKET_URL}/multimodal_asset/vtest.avi",
21
+ f"{VLLM_S3_BUCKET_URL}/multimodal_asset/Megamind.avi",
22
]
23
24
tests/entrypoints/pooling/classify/test_online_vision.py
+3
-2
@@ -6,6 +6,7 @@ import pytest
6
import requests
7
8
from tests.utils import RemoteOpenAIServer
9
+from vllm.assets.base import VLLM_S3_BUCKET_URL
10
from vllm.entrypoints.pooling.classify.protocol import ClassificationResponse
11
from vllm.multimodal.utils import encode_image_url, fetch_image
12
@@ -14,9 +15,9 @@ MAXIMUM_VIDEOS = 1
15
16
HF_OVERRIDES = {"architectures": ["Qwen2_5_VLForSequenceClassification"]}
17
input_text = "This product was excellent and exceeded my expectations"
17
-image_url = "https://vllm-public-assets.s3.us-west-2.amazonaws.com/multimodal_asset/cat_snow.jpg"
18
+image_url = f"{VLLM_S3_BUCKET_URL}/multimodal_asset/cat_snow.jpg"
19
image_base64 = {"url": encode_image_url(fetch_image(image_url))}
19
-video_url = "https://www.bogotobogo.com/python/OpenCV_Python/images/mean_shift_tracking/slow_traffic_small.mp4"
20
+video_url = f"{VLLM_S3_BUCKET_URL}/multimodal_asset/slow_traffic_small.mp4"
21
22
23
@pytest.fixture(scope="module")
tests/evals/gsm8k/gsm8k_eval.py
+4
-2
@@ -20,6 +20,8 @@ import regex as re
20
import requests
21
from tqdm.asyncio import tqdm
22
23
+from vllm.assets.base import VLLM_S3_BUCKET_URL
24
+
25
INVALID = -9999999
26
27
@@ -44,8 +46,8 @@ def download_and_cache_file(url: str, filename: str | None = None) -> str:
46
47
def load_gsm8k_data() -> tuple[list[dict], list[dict]]:
48
"""Load GSM8K train and test data"""
47
- train_url = "https://raw.githubusercontent.com/openai/grade-school-math/master/grade_school_math/data/train.jsonl"
48
- test_url = "https://raw.githubusercontent.com/openai/grade-school-math/master/grade_school_math/data/test.jsonl"
49
+ train_url = f"{VLLM_S3_BUCKET_URL}/ci-datasets/gsm8k/train.jsonl"
50
+ test_url = f"{VLLM_S3_BUCKET_URL}/ci-datasets/gsm8k/test.jsonl"
51
52
train_file = download_and_cache_file(train_url)
53
test_file = download_and_cache_file(test_url)
tests/models/multimodal/pooling/test_jinavl_reranker.py
+14
-28
@@ -6,6 +6,7 @@ import transformers
6
from packaging import version
7
from transformers import AutoModel
8
9
+from vllm.assets.base import VLLM_S3_BUCKET_URL
10
from vllm.entrypoints.chat_utils import (
11
ChatCompletionContentPartImageEmbedsParam,
12
ChatCompletionContentPartImageParam,
@@ -34,6 +35,11 @@ CHECKPOINT_TO_HF_MAPPER = {
35
"model.": "model.language_model.",
36
}
37
38
+HANDELSBLATT_IMAGE_URL = (
39
+ f"{VLLM_S3_BUCKET_URL}/multimodal_asset/jinavl-handelsblatt-preview.png"
40
+)
41
+PAPER_IMAGE_URL = f"{VLLM_S3_BUCKET_URL}/multimodal_asset/jinavl-paper-11.png"
42
+
43
# Shared long text for test data
44
LONG_TEXT_DOC = """We present ReaderLM-v2, a compact 1.5 billion parameter language model designed for efficient
45
web content extraction. Our model processes documents up to 512K tokens, transforming messy HTML
@@ -50,12 +56,8 @@ lower computational requirements.""" # noqa: E501
56
TEXT_IMAGE_TEST_DATA = {
57
"query": [{"text": "slm markdown"}],
58
"documents": [
53
- {
54
- "image": "https://raw.githubusercontent.com/jina-ai/multimodal-reranker-test/main/handelsblatt-preview.png"
55
- },
56
- {
57
- "image": "https://raw.githubusercontent.com/jina-ai/multimodal-reranker-test/main/paper-11.png"
58
- },
59
+ {"image": HANDELSBLATT_IMAGE_URL},
60
+ {"image": PAPER_IMAGE_URL},
61
],
62
}
63
@@ -68,11 +70,7 @@ TEXT_TEXT_TEST_DATA = {
70
}
71
72
IMAGE_TEXT_TEST_DATA = {
71
- "query": [
72
- {
73
- "image": "https://raw.githubusercontent.com/jina-ai/multimodal-reranker-test/main/paper-11.png"
74
- }
75
- ],
73
+ "query": [{"image": PAPER_IMAGE_URL}],
74
"documents": [
75
{"text": LONG_TEXT_DOC},
76
{"text": "数据提取么?为什么不用正则啊,你用正则不就全解决了么?"},
@@ -80,18 +78,10 @@ IMAGE_TEXT_TEST_DATA = {
78
}
79
80
IMAGE_IMAGE_TEST_DATA = {
83
- "query": [
84
- {
85
- "image": "https://raw.githubusercontent.com/jina-ai/multimodal-reranker-test/main/paper-11.png"
86
- }
87
- ],
81
+ "query": [{"image": PAPER_IMAGE_URL}],
82
"documents": [
89
- {
90
- "image": "https://raw.githubusercontent.com/jina-ai/multimodal-reranker-test/main/handelsblatt-preview.png"
91
- },
92
- {
93
- "image": "https://raw.githubusercontent.com/jina-ai/multimodal-reranker-test/main/paper-11.png"
94
- },
83
+ {"image": HANDELSBLATT_IMAGE_URL},
84
+ {"image": PAPER_IMAGE_URL},
85
],
86
}
87
@@ -99,13 +89,9 @@ TEXT_MIXED_DOCS_TEST_DATA = {
89
"query": [{"text": "slm markdown"}],
90
"documents": [
91
{"text": LONG_TEXT_DOC},
102
- {
103
- "image": "https://raw.githubusercontent.com/jina-ai/multimodal-reranker-test/main/paper-11.png"
104
- },
92
+ {"image": PAPER_IMAGE_URL},
93
{"text": "数据提取么?为什么不用正则啊,你用正则不就全解决了么?"},
106
- {
107
- "image": "https://raw.githubusercontent.com/jina-ai/multimodal-reranker-test/main/handelsblatt-preview.png"
108
- },
94
+ {"image": HANDELSBLATT_IMAGE_URL},
95
],
96
}
97
tests/multimodal/media/test_connector.py
+5
-6
@@ -17,6 +17,7 @@ import requests
17
import torch
18
from PIL import Image, ImageChops
19
20
+from vllm.assets.base import VLLM_S3_BUCKET_URL
21
from vllm.multimodal.image import convert_image_mode
22
from vllm.multimodal.inputs import PlaceholderRange
23
from vllm.multimodal.media import MediaConnector
@@ -30,8 +31,8 @@ TEST_IMAGE_ASSETS = [
31
]
32
33
TEST_VIDEO_URLS = [
33
- "https://www.bogotobogo.com/python/OpenCV_Python/images/mean_shift_tracking/slow_traffic_small.mp4",
34
- "https://github.com/opencv/opencv/raw/refs/tags/4.12.0/samples/data/vtest.avi",
34
+ f"{VLLM_S3_BUCKET_URL}/multimodal_asset/slow_traffic_small.mp4",
35
+ f"{VLLM_S3_BUCKET_URL}/multimodal_asset/vtest.avi",
36
]
37
38
@@ -76,8 +77,7 @@ async def test_fetch_image_base64(
77
connector = MediaConnector(
78
# Domain restriction should not apply to data URLs.
79
allowed_media_domains=[
79
- "www.bogotobogo.com",
80
- "github.com",
80
+ VLLM_S3_BUCKET_URL.removeprefix("https://"),
81
]
82
)
83
url_image = url_images[raw_image_url]
@@ -390,8 +390,7 @@ async def test_allowed_media_domains(video_url: str, num_frames: int):
390
}
391
},
392
allowed_media_domains=[
393
- "www.bogotobogo.com",
394
- "github.com",
393
+ VLLM_S3_BUCKET_URL.removeprefix("https://"),
394
],
395
)
396