evalstone/evalscope/tests/models/test_generation_config_extra_validation.py
sora 13274243a0 Bump vendored EvalScope and add K3-ready DPV4 configs.
Keep K3 suite selection and report-schema scoring in bash, merge K3/vision dataset_args into dpv4 yamls, and pin EvalScope at 735d920ee911 with local patches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 07:30:48 +00:00

36 lines
1.4 KiB
Python

from evalscope.api.messages import ChatMessage
from evalscope.api.model import GenerateConfig, Model, ModelAPI, ModelOutput
from evalscope.api.tool import ToolChoice, ToolInfo
class _TextAPI(ModelAPI):
def generate(self, input: list[ChatMessage], tools: list[ToolInfo], tool_choice: ToolChoice,
config: GenerateConfig) -> ModelOutput:
return ModelOutput.from_content(model=self.model_name, content='ok')
def test_model_preserves_extra_generation_config_fields() -> None:
class _ExtraAPI(_TextAPI):
def generate(self, input: list[ChatMessage], tools: list[ToolInfo], tool_choice: ToolChoice,
config: GenerateConfig) -> ModelOutput:
assert config.model_extra == {'base_extra': 'base', 'call_extra': 'call'}
return ModelOutput.from_content(model=self.model_name, content='ok')
model = Model(_ExtraAPI('test'), GenerateConfig(base_extra='base'))
assert model.generate('hello', config=GenerateConfig(call_extra='call')).message.content == 'ok'
def test_text_model_allows_provider_extra_body() -> None:
model = Model(_TextAPI('test'), GenerateConfig(extra_body={'enable_thinking': True}))
assert model.generate('hello').message.content == 'ok'
def test_text_model_keeps_extra_generation_config_fields() -> None:
model = Model(_TextAPI('test'), GenerateConfig(custom_provider_option='fast'))
assert model.generate('hello').message.content == 'ok'