Spaces:
Running on Zero
Running on Zero
| from __future__ import annotations | |
| import unittest | |
| from models.model_catalog import load_model_catalog | |
| from models.transformers_text import TransformersTextConfig, TransformersTextService | |
| class TransformersTextServiceTest(unittest.TestCase): | |
| def test_status_reports_missing_package_or_installed_package(self) -> None: | |
| status = TransformersTextService.status() | |
| self.assertEqual(status.name, "transformers") | |
| self.assertIsInstance(status.available, bool) | |
| def test_unavailable_chat_does_not_download_weights(self) -> None: | |
| catalog = load_model_catalog("config/models.yaml") | |
| service = TransformersTextService(catalog["minicpm5_1b"]) | |
| response = service.chat("Be concise.", "Hello") | |
| if not TransformersTextService.status().available: | |
| self.assertIn("[Transformers unavailable]", response) | |
| def test_generation_kwargs_are_explicit(self) -> None: | |
| catalog = load_model_catalog("config/models.yaml") | |
| service = TransformersTextService( | |
| catalog["minicpm5_1b"], | |
| TransformersTextConfig(max_new_tokens=32, temperature=0.2, do_sample=False), | |
| ) | |
| self.assertEqual( | |
| service.generation_kwargs(), | |
| {"max_new_tokens": 32, "temperature": 0.2, "do_sample": False}, | |
| ) | |
| def test_fallback_chat_prompt_format(self) -> None: | |
| class PlainTokenizer: | |
| pass | |
| prompt = TransformersTextService._format_chat_prompt( | |
| PlainTokenizer(), | |
| "System", | |
| "User", | |
| ) | |
| self.assertIn("system: System", prompt) | |
| self.assertIn("user: User", prompt) | |
| self.assertTrue(prompt.endswith("assistant:")) | |
| if __name__ == "__main__": | |
| unittest.main() | |