Spaces:
Running
Running
| """ | |
| compute_tool_append_suffix 集成测试(需 instruct 模型权重)。 | |
| 运行: python -m unittest backend.tests.test_compute_tool_append_suffix | |
| """ | |
| from __future__ import annotations | |
| import unittest | |
| from backend.core.completion_generator import ( | |
| _ASSISTANT_PLACEHOLDER, | |
| _IM_END, | |
| compute_tool_append_suffix, | |
| ) | |
| from backend.models.model_manager import ModelSlot | |
| def _model_available() -> bool: | |
| try: | |
| compute_tool_append_suffix("{}", slot=ModelSlot.INSTRUCT) | |
| return True | |
| except Exception: | |
| return False | |
| class TestComputeToolAppendSuffix(unittest.TestCase): | |
| TOOL_NAME = "get_current_temperature" | |
| TOOL_CONTENT = '{"temperature": 22, "unit": "celsius"}' | |
| def test_suffix_excludes_placeholder_and_im_end_prefix(self): | |
| suffix = compute_tool_append_suffix( | |
| self.TOOL_CONTENT, | |
| tool_name=self.TOOL_NAME, | |
| slot=ModelSlot.INSTRUCT, | |
| ) | |
| self.assertNotIn(_ASSISTANT_PLACEHOLDER, suffix) | |
| self.assertFalse(suffix.startswith(_IM_END)) | |
| def test_suffix_varies_with_tool_content(self): | |
| a = compute_tool_append_suffix( | |
| self.TOOL_CONTENT, | |
| tool_name=self.TOOL_NAME, | |
| slot=ModelSlot.INSTRUCT, | |
| ) | |
| b = compute_tool_append_suffix( | |
| '{"temperature": 99}', | |
| tool_name=self.TOOL_NAME, | |
| slot=ModelSlot.INSTRUCT, | |
| ) | |
| self.assertNotEqual(a, b) | |
| def test_suffix_stable_for_same_inputs(self): | |
| kwargs = dict( | |
| tool_content=self.TOOL_CONTENT, | |
| tool_name=self.TOOL_NAME, | |
| enable_thinking=False, | |
| slot=ModelSlot.INSTRUCT, | |
| ) | |
| self.assertEqual( | |
| compute_tool_append_suffix(**kwargs), | |
| compute_tool_append_suffix(**kwargs), | |
| ) | |
| def test_suffix_contains_tool_content(self): | |
| suffix = compute_tool_append_suffix( | |
| self.TOOL_CONTENT, | |
| tool_name=self.TOOL_NAME, | |
| slot=ModelSlot.INSTRUCT, | |
| ) | |
| self.assertIn(self.TOOL_CONTENT, suffix) | |
| if __name__ == "__main__": | |
| unittest.main() | |