Files
2026-07-13 12:12:21 +08:00

325 lines
6.8 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://llmfit.dev/schemas/hf_models.schema.json",
"title": "llmfit HuggingFace model catalog",
"description": "Schema for llmfit-core/data/hf_models.json",
"type": "array",
"items": {
"$ref": "#/$defs/model"
},
"$defs": {
"nonNegativeNumberOrNull": {
"oneOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
},
"positiveIntegerOrNull": {
"oneOf": [
{
"type": "integer",
"minimum": 1
},
{
"type": "null"
}
]
},
"capability": {
"type": "string",
"enum": [
"vision",
"tool_use",
"audio",
"tts"
]
},
"modelFormat": {
"type": "string",
"enum": [
"gguf",
"awq",
"gptq",
"autoround",
"mlx",
"safetensors"
]
},
"quantization": {
"type": "string"
},
"parameterCount": {
"type": "string",
"pattern": "^[0-9]+(?:\\.[0-9]+)?[KMBT]$"
},
"dateOrNull": {
"oneOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
]
},
"ggufSource": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"minLength": 1
},
"provider": {
"type": "string",
"minLength": 1
}
},
"required": [
"repo",
"provider"
],
"additionalProperties": false
},
"attentionLayout": {
"type": "object",
"properties": {
"full": {
"type": "integer",
"minimum": 0
},
"linear": {
"type": "integer",
"minimum": 0
}
},
"required": [
"full",
"linear"
],
"additionalProperties": false
},
"model": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^.+/.+$"
},
"provider": {
"type": "string",
"minLength": 1
},
"parameter_count": {
"$ref": "#/$defs/parameterCount"
},
"parameters_raw": {
"type": "integer",
"minimum": 1
},
"min_ram_gb": {
"type": "number",
"minimum": 0
},
"recommended_ram_gb": {
"type": "number",
"minimum": 0
},
"min_vram_gb": {
"$ref": "#/$defs/nonNegativeNumberOrNull"
},
"quantization": {
"$ref": "#/$defs/quantization"
},
"format": {
"$ref": "#/$defs/modelFormat"
},
"context_length": {
"type": "integer",
"minimum": 1
},
"use_case": {
"type": "string",
"minLength": 1
},
"capabilities": {
"type": "array",
"items": {
"$ref": "#/$defs/capability"
},
"uniqueItems": true
},
"languages": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"pipeline_tag": {
"type": "string"
},
"architecture": {
"oneOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"hf_downloads": {
"type": "integer",
"minimum": 0
},
"hf_likes": {
"type": "integer",
"minimum": 0
},
"release_date": {
"$ref": "#/$defs/dateOrNull"
},
"is_moe": {
"type": "boolean"
},
"num_experts": {
"$ref": "#/$defs/positiveIntegerOrNull"
},
"active_experts": {
"$ref": "#/$defs/positiveIntegerOrNull"
},
"active_parameters": {
"$ref": "#/$defs/positiveIntegerOrNull"
},
"num_hidden_layers": {
"$ref": "#/$defs/positiveIntegerOrNull"
},
"num_attention_heads": {
"$ref": "#/$defs/positiveIntegerOrNull"
},
"num_key_value_heads": {
"$ref": "#/$defs/positiveIntegerOrNull"
},
"head_dim": {
"$ref": "#/$defs/positiveIntegerOrNull"
},
"hidden_size": {
"$ref": "#/$defs/positiveIntegerOrNull"
},
"vocab_size": {
"$ref": "#/$defs/positiveIntegerOrNull"
},
"moe_intermediate_size": {
"oneOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
]
},
"shared_expert_intermediate_size": {
"oneOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
]
},
"gguf_sources": {
"type": "array",
"items": {
"$ref": "#/$defs/ggufSource"
}
},
"license": {
"oneOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"attention_layout": {
"oneOf": [
{
"$ref": "#/$defs/attentionLayout"
},
{
"type": "null"
}
]
},
"_audio_backends": {
"type": "array",
"items": {
"type": "string"
}
},
"_audio_rtf_cpu": {
"type": "number",
"minimum": 0
},
"_audio_rtf_gpu": {
"type": "number",
"minimum": 0
},
"_audio_vram_gb": {
"$ref": "#/$defs/nonNegativeNumberOrNull"
},
"_discovered": {
"type": "boolean"
}
},
"required": [
"name",
"provider",
"parameter_count",
"min_ram_gb",
"recommended_ram_gb",
"quantization",
"context_length",
"use_case"
],
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"is_moe": {
"const": true
}
},
"required": [
"is_moe"
]
},
"then": {
"required": [
"num_experts",
"active_experts",
"active_parameters"
]
}
}
]
}
}
}