Support MetaX and Vastai tokenizer compatibility images
Some checks failed
Build and verify Qwen2.5 compatibility engines / docker (push) Failing after 3m32s

This commit is contained in:
2026-09-30 12:16:08 +08:00
parent f8937cc505
commit fb5a163d07
6 changed files with 156 additions and 35 deletions

View File

@@ -84,6 +84,47 @@ class EngineCompatTests(unittest.TestCase):
)
self.assertIsNone(prepare_model(source, work_root=root))
def test_explicit_tokenizer_directory_gets_qwen_template(self):
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
model = self._model(root, {"eos_token": "<|im_end|>"})
tokenizer = root / "vendor-tokenizer"
tokenizer.mkdir()
(tokenizer / "tokenizer_config.json").write_text(
json.dumps(
{
"eos_token": "<|im_end|>",
"extra_special_tokens": ["<|im_start|>"],
"tokenizer_class": "TokenizersBackend",
}
),
encoding="utf-8",
)
(tokenizer / "tokenizer.json").write_text("{}", encoding="utf-8")
view = Path(prepare_model(model, tokenizer_dir=tokenizer, work_root=root))
fixed = json.loads((view / "tokenizer_config.json").read_text("utf-8"))
self.assertEqual(fixed["chat_template"], QWEN_CHAT_TEMPLATE)
self.assertEqual(fixed["additional_special_tokens"], ["<|im_start|>"])
self.assertEqual(fixed["tokenizer_class"], "PreTrainedTokenizerFast")
self.assertEqual((model / "model.safetensors").read_bytes(), b"sample-weights")
self.assertFalse((view / "model.safetensors").exists())
self.assertEqual((view / "tokenizer.json").read_text("utf-8"), "{}")
def test_explicit_tokenizer_directory_preserves_model_standalone_template(self):
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
model = self._model(root, {"eos_token": "<|im_end|>"})
(model / "chat_template.jinja").write_text("{{ messages }}", encoding="utf-8")
tokenizer = root / "vendor-tokenizer"
tokenizer.mkdir()
(tokenizer / "tokenizer_config.json").write_text(
json.dumps({"eos_token": "<|im_end|>"}), encoding="utf-8"
)
view = Path(prepare_model(model, tokenizer_dir=tokenizer, work_root=root))
fixed = json.loads((view / "tokenizer_config.json").read_text("utf-8"))
self.assertNotIn("chat_template", fixed)
self.assertEqual((view / "chat_template.jinja").read_text("utf-8"), "{{ messages }}")
if __name__ == "__main__":
unittest.main()