Spaces:
Running on Zero
Running on Zero
| #!/usr/bin/env python | |
| import pytest | |
| # ensure grandparent path is in sys.path | |
| from pathlib import Path | |
| import sys | |
| from unit.test_tool_call import TEST_TOOL | |
| path = Path(__file__).resolve().parents[1] | |
| sys.path.insert(0, str(path)) | |
| import datetime | |
| from utils import * | |
| from typing import Literal | |
| server: ServerProcess | |
| def create_server(): | |
| global server | |
| server = ServerPreset.tinyllama2() | |
| server.model_alias = "tinyllama-2" | |
| server.n_slots = 1 | |
| def test_reasoning(template_name: str, reasoning: Literal['on', 'off', 'auto'] | None, expected_end: str, tools: list[dict]): | |
| global server | |
| server.jinja = True | |
| server.reasoning = reasoning | |
| server.chat_template_file = f'../../../models/templates/{template_name}.jinja' | |
| server.start() | |
| res = server.make_request("POST", "/apply-template", data={ | |
| "messages": [ | |
| {"role": "user", "content": "What is today?"}, | |
| ], | |
| "tools": tools, | |
| }) | |
| assert res.status_code == 200 | |
| prompt = res.body["prompt"] | |
| assert prompt.endswith(expected_end), f"Expected prompt to end with '{expected_end}', got '{prompt}'" | |
| def test_date_inside_prompt(template_name: str, format: str, tools: list[dict]): | |
| global server | |
| server.jinja = True | |
| server.chat_template_file = f'../../../models/templates/{template_name}.jinja' | |
| server.start() | |
| res = server.make_request("POST", "/apply-template", data={ | |
| "messages": [ | |
| {"role": "user", "content": "What is today?"}, | |
| ], | |
| "tools": tools, | |
| }) | |
| assert res.status_code == 200 | |
| prompt = res.body["prompt"] | |
| today_str = datetime.date.today().strftime(format) | |
| assert today_str in prompt, f"Expected today's date ({today_str}) in content ({prompt})" | |
| def test_add_generation_prompt(template_name: str, expected_generation_prompt: str, add_generation_prompt: bool): | |
| global server | |
| server.jinja = True | |
| server.chat_template_file = f'../../../models/templates/{template_name}.jinja' | |
| server.start() | |
| res = server.make_request("POST", "/apply-template", data={ | |
| "messages": [ | |
| {"role": "user", "content": "What is today?"}, | |
| ], | |
| "add_generation_prompt": add_generation_prompt, | |
| }) | |
| assert res.status_code == 200 | |
| prompt = res.body["prompt"] | |
| if add_generation_prompt: | |
| assert expected_generation_prompt in prompt, f"Expected generation prompt ({expected_generation_prompt}) in content ({prompt})" | |
| else: | |
| assert expected_generation_prompt not in prompt, f"Did not expect generation prompt ({expected_generation_prompt}) in content ({prompt})" | |