# Test configuration dataclassfrom dataclasses import fieldsprint("Available models:")model_field =next(f for f in fields(VoxtralHFPluginConfig) if f.name =="model_id")for model in model_field.metadata.get(SCHEMA_ENUM, []):print(f" - {model}")
Available models:
- mistralai/Voxtral-Mini-3B-2507
- mistralai/Voxtral-Small-24B-2507
# Test configuration validationtest_configs = [ ({"model_id": "mistralai/Voxtral-Mini-3B-2507"}, "Valid config"), ({"model_id": "invalid_model"}, "Invalid model"), ({"model_id": "mistralai/Voxtral-Mini-3B-2507", "temperature": 2.5}, "Temperature out of range"),]for config, description in test_configs:try: test_cfg = dict_to_config(VoxtralHFPluginConfig, config, validate=True)print(f"{description}: Valid=True")exceptValueErroras e:print(f"{description}: Valid=False")print(f" Error: {str(e)[:100]}")
Valid config: Valid=True
Invalid model: Valid=False
Error: model_id: 'invalid_model' is not one of ['mistralai/Voxtral-Mini-3B-2507', 'mistralai/Voxtral-Small-
Temperature out of range: Valid=False
Error: temperature: 2.5 is greater than maximum 2.0
# Test initialization and get_current_config (returns dict now)plugin.initialize({"model_id": "mistralai/Voxtral-Mini-3B-2507", "device": "cpu"})current_config = plugin.get_current_config()print(f"Current config (dict): model_id={current_config['model_id']}")
Current config (dict): model_id=mistralai/Voxtral-Mini-3B-2507
# Test get_config_schema for UI generationimport jsonschema = plugin.get_config_schema()print("JSON Schema for VoxtralHFPluginConfig:")print(f" Name: {schema['name']}")print(f" Properties count: {len(schema['properties'])}")print(f" Model field enum: {schema['properties']['model_id'].get('enum', [])}")print(f"\nSample properties:")print(json.dumps({k: v for k, v inlist(schema['properties'].items())[:3]}, indent=2))
JSON Schema for VoxtralHFPluginConfig:
Name: VoxtralHFPluginConfig
Properties count: 14
Model field enum: ['mistralai/Voxtral-Mini-3B-2507', 'mistralai/Voxtral-Small-24B-2507']
Sample properties:
{
"model_id": {
"type": "string",
"title": "Model ID",
"description": "Voxtral model to use. Mini is faster, Small is more accurate.",
"enum": [
"mistralai/Voxtral-Mini-3B-2507",
"mistralai/Voxtral-Small-24B-2507"
],
"default": "mistralai/Voxtral-Mini-3B-2507"
},
"device": {
"type": "string",
"title": "Device",
"description": "Device for inference (auto will use CUDA if available)",
"enum": [
"auto",
"cpu",
"cuda"
],
"default": "auto"
},
"dtype": {
"type": "string",
"title": "Data Type",
"description": "Data type for model weights (auto will use bfloat16 on GPU, float32 on CPU)",
"enum": [
"auto",
"bfloat16",
"float16",
"float32"
],
"default": "auto"
}
}