---
title: "ai.model-artifact@1 · OpenVibe.Services"
canonical: "https://openvibe.services/docs/contracts/ai.model-artifact"
updated: null
---

# ai.model-artifact@1 · OpenVibe.Services

HTML: [ai.model-artifact@1 · OpenVibe.Services](https://openvibe.services/docs/contracts/ai.model-artifact)

# AiModelArtifact `ai.model-artifact@1`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

- Version: 1.0.0
- Owner: ai
- Visibility: first-party
- Status: active
- Compatibility: backward
- Schema: [`https://openvibe.network/contracts/ai/model-artifact.v1.json`](/docs/contracts/ai.model-artifact.json)

ai.model-artifact@1: one pinned revision/variant/quantization of a model family. Identified by an exact id (\`<org>/<model>\[:<quant>\]@<revision>\`), with its weight SHA-256, tokenizer revision, license and provenance.

## Fields

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `id` | string | yes | Exact artifact id: \`<org>/<model>\[:<quant>\]@<revision>\`. | - `pattern ^[a-zA-Z0-9._-]+/[a-zA-Z0-9._-]+(:[a-zA-Z0-9._-]+)?@[a-zA-Z0-9._-]+$`<br>- `maxLength 256` |
| `family` | string | yes | Underlying model family, e.g. \`qwen3\`. |  |
| `variant` | enum | yes | How the weights were produced. | - `one of "original", "abliterated", "finetuned", "merged", "lora"` |
| `quant` | string | yes | Quantization label, e.g. \`q4\_k\_m\` or \`fp16\`. |  |
| `revision` | string | yes | Artifact revision or commit hash. |  |
| `sha256` | string | yes | SHA-256 of the weight file or signed manifest. | - `pattern ^[a-f0-9]{64}$` |
| `tokenizer_revision` | string \| null |  | Tokenizer/chat-template revision used with this artifact. |  |
| `license` | string | yes | SPDX license identifier or custom license name. |  |
| `source_url` | string |  | Canonical download or provenance URL. | - `format uri` |
| `context` | integer |  | Maximum context length in tokens. | - `minimum 1` |
| `created_at` | string |  |  | - `format date-time` |

## Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

 Valid: llama

~~~~
{
  "id": "meta-llama/llama_3.1_8b_instruct:fp16@bca2580",
  "family": "llama3.1",
  "variant": "original",
  "quant": "fp16",
  "revision": "bca2580",
  "sha256": "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
  "tokenizer_revision": "bca2580",
  "license": "llama3.1",
  "source_url": "https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct",
  "context": 131072,
  "created_at": "2026-11-03T00:00:00.000Z"
}
~~~~

Valid: qwen

~~~~
{
  "id": "qwen/qwen3-9b-abliterated:q4_k_m@3f2a1c9",
  "family": "qwen3",
  "variant": "abliterated",
  "quant": "q4_k_m",
  "revision": "3f2a1c9",
  "sha256": "aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899",
  "tokenizer_revision": "3f2a1c9",
  "license": "apache-2.0",
  "source_url": "https://huggingface.co/qwen/qwen3-9b-abliterated-gguf",
  "context": 32768,
  "created_at": "2026-11-03T00:00:00.000Z"
}
~~~~

Rejected: bad-id

~~~~
{
  "id": "qwen3-9b@3f2a1c9",
  "family": "qwen3",
  "variant": "original",
  "quant": "q4_k_m",
  "revision": "3f2a1c9",
  "sha256": "aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899",
  "license": "apache-2.0"
}
~~~~

Rejected: invalid-variant

~~~~
{
  "id": "qwen/qwen3-9b-abliterated:q4_k_m@3f2a1c9",
  "family": "qwen3",
  "variant": "censored",
  "quant": "q4_k_m",
  "revision": "3f2a1c9",
  "sha256": "aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899",
  "license": "apache-2.0"
}
~~~~

Rejected: missing-sha256

~~~~
{
  "id": "qwen/qwen3-9b-abliterated:q4_k_m@3f2a1c9",
  "family": "qwen3",
  "variant": "abliterated",
  "quant": "q4_k_m",
  "revision": "3f2a1c9",
  "license": "apache-2.0"
}
~~~~

## Validate

~~~~
const contracts = require('openvibe-contracts');
contracts.validate('ai.model-artifact@1', value);   // { valid, errors: [{ path, message }] }
~~~~
