fix: disambiguate multimodal prefix cache keys (#36708)

Signed-off-by: tianshu.yu <tianshuyu.formal@gmail.com>
This commit is contained in:
tianshu-Michael-yu
2026-03-19 19:33:20 -07:00
committed by GitHub
parent e5a77a5015
commit 269bf46d99
3 changed files with 29 additions and 16 deletions

View File

@@ -1570,20 +1570,24 @@ def test_mm_prefix_caching():
block_hashes = req0.block_hashes
assert len(block_hashes) == 3
assert block_hashes[0] == sha256(
(kv_cache_utils.NONE_HASH, tuple(all_token_ids[:block_size]), ("aaa",))
(
kv_cache_utils.NONE_HASH,
tuple(all_token_ids[:block_size]),
(("aaa", 11),),
)
)
assert block_hashes[1] == sha256(
(
block_hashes[0],
tuple(all_token_ids[block_size : block_size * 2]),
("aaa", "bbb"),
(("aaa", -5), ("bbb", 14)),
)
)
assert block_hashes[2] == sha256(
(
block_hashes[1],
tuple(all_token_ids[block_size * 2 : block_size * 3]),
("bbb",),
(("bbb", -2),),
)
)
@@ -1603,7 +1607,11 @@ def test_mm_prefix_caching():
assert new_blocks is not None and len(new_blocks.blocks[0]) == 0
assert len(block_hashes) == 4
assert block_hashes[3] == sha256(
(block_hashes[2], tuple(all_token_ids[3 * block_size :] + [8] * 5), ("ccc",))
(
block_hashes[2],
tuple(all_token_ids[3 * block_size :] + [8] * 5),
(("ccc", 0),),
)
)
# Cache hit.