ModelSpec is an analysis of alternatives for AI models: it decides which models fit a job from your requirements, sourced benchmarks and real cost, and shows its work.
Long documents, self-hosted
Find a commercially usable open-weights model with a long context that you can run yourself.
Worked example as of 2026-09-23, from the public data image.
Open weights with a long context; commercial licence.
Requirements
model.class = text-generator: The result must be generated as text.model.weights_openness = open_weights: Self-hosting requires downloadable weights; add a model.fits_hardware Must for the device you own.licence.commercial_use in {permitted, permitted_with_conditions}: The licence must allow commercial use, including use with stated conditions.model.context_window >= 128000: The model must accept a long document in one request.
Preferences
writing: Prefer clear, high-quality long-form writing among self-hostable models.model.context_window: Prefer the longer context among self-hostable models.
Applied template spec
spec_version- 1
where- model.class = text-generator
- model.weights_openness = open_weights
- licence.commercial_use in {permitted, permitted_with_conditions}
- model.context_window >= 128000
optimizeweightswriting- 0.6
model.context_window- 0.4
Worked answer
Decision status: partial.
No recommendation: the public image has no answer with enough evidence.
This is a partial answer. Unknown facts or missing objective evidence can leave eligible candidates unranked.
probability bands: a model joins the leader when P(its score >= the leader's) >= 0.25 under the score posteriors; a weighted capability with an 80% interval wider than 2.8 is not enough evidence
Score and score interval use the objective's dimensionless normalised units. Cost per task is for the engine-selected offering and the applied spec's task size. When task size is omitted, the engine uses its documented default. P(best) is the engine probability. Unavailable means the engine did not return a value. Thin evidence is undetermined and is not a recommendation.
Thin evidence: undetermined
| Model | Score | Score interval | P(best) | Cost per task, USD | Capability estimates and intervals |
|---|---|---|---|---|---|
zhipu/glm-5-3 | 1.0 | [-0.536561, 2.536561] | 0.29296875 | 0.0736 |
|
moonshot/kimi-k3 | 0.936072 | [-0.600488, 2.472633] | 0.28125 | Unavailable |
|
zhipu/glm-5-2 | 0.693397 | [-0.843164, 2.229957] | 0.19140625 | 0.0736 |
|
deepseek/deepseek-v4-pro | 0.548556 | [-0.988004, 2.085117] | 0.14453125 | 0.06864 |
|
moonshot/kimi-k2-6 | 0.0 | [-1.536561, 1.536561] | 0.08984375 | Unavailable |
|
Unknown requirements
Some candidates may qualify. Missing facts:
model.weights_opennesswriting
Engine warnings
- not_separable
- proxy_evidence_only
Decision dec_8ba9eea1c47cefde688ffa6e on public snapshot snap_05a963d2477ac2fb.
What this template teaches
Self-hosting narrows the field, so the context floor is lower and longer context becomes a Prefer. Lab jurisdiction is a buyer-set Must (origin.lab_jurisdiction in {…}); an unverified jurisdiction does not pass, so set the countries on the facet board. The same condition works as an inventory profile rule.
The live board uses current data. Its answer can change as evidence changes.
Human lookup is free on Decide. CLI, API, and MCP access requires a key. Access and pricing.