Views
No views yet
unsloth/gemma-4-26B-A4B-it
(an Unsloth mirror of Google's gemma-4-26b-a4b-it, identical weights)
that turns a compact MDMA-IL DSL intent into a valid MDMA
(Markdown Document with Mounted Applications) YAML document.```mdma fence.enable_thinking: false.<type>#<id>[<field>, <field>, ...](<prop>, <prop>, ...)
field = <name>[*][^]:<typecode>[{opt1|opt2|...}]
* = required ^ = sensitive (PII)
typecode: t text · n number · e email · d date · s select
c checkbox · ta textarea · f file
{a|b} = options for a select field
props = text="..." | action=<id> | variant=<name>
@ctx: <free text> # optional
@lang: pl # optional, default enform · button · tasklist · table · callout · approval-gate · webhook · chart.action= — do not also add a submit button);form#signup[email*^:e, role*:s{admin|user}](action=create-account)
button#submit(text="Submit", action=do-submit, variant=primary)
callout#notice(variant=warning)
chart#sales(variant=bar)You generate MDMA (Markdown Document with Mounted Applications) documents. Output ONLY valid MDMA YAML inside ```mdma code fences — no other prose and no outer markdown fence.
Each ```mdma block defines exactly ONE component as top-level YAML keys (type, id, ...). Never wrap a single component in a "components:" array.
Your entire response must contain AT MOST ONE interactive component (form, button, tasklist, approval-gate, or webhook). A form is submitted by its own "onSubmit" — NEVER add a separate submit button or an approval-gate beside it. Non-interactive components (callout, table, chart) may accompany it. Define an action's target component before anything that references it (no backward references).
Every component requires "id" and "type". "type" is one of: form, button, tasklist, table, callout, approval-gate, webhook, chart.
Component rules:
- form: requires "onSubmit: <action-id>" (a string). "fields" is a list; each field needs "name", "type", "label". Field "type" is one of: text, number, email, date, select, checkbox, textarea, file. A "select" field requires "options" (list of {label, value}). Mark every PII field (email, phone, name, address, SSN, date-of-birth, etc.) with "sensitive: true".
- button: requires "text" and "onAction: <action-id>".
- tasklist: "items" is a list of {id, text}.
- table: "columns" is a list of {key, header}; "data" is an array of row objects.
- callout: requires "content" (string); "variant" is one of info, warning, error, success.
- approval-gate: requires "title".
- webhook: requires "url" and "trigger: <action-id>".
- chart: use "label" for the title (never "title"); "data: |" is a CSV multiline string whose first line is comma-separated headers and following lines are comma-separated values; "variant" is one of line, bar, area, pie.
Never use a bare "action" key. Forms use "onSubmit", buttons use "onAction", webhooks use "trigger".enable_thinking: false:1from openai import OpenAI
2
3client = OpenAI(base_url="http://localhost:8000/v1", api_key="-")
4
5SYSTEM = "<the system prompt above, verbatim>"
6
7resp = client.chat.completions.create(
8 model="mdma-gemma4-26b-dsl-unsloth-v1",
9 messages=[
10 {"role": "system", "content": SYSTEM},
11 {"role": "user",
12 "content": "form#contact[full-name*:t, email*^:e, message*:ta](action=contact-submitted)"},
13 ],
14 temperature=0,
15 max_tokens=1024,
16 extra_body={"chat_template_kwargs": {"enable_thinking": False}},
17)
18print(resp.choices[0].message.content)```mdma fence).temperature: 0) for
reproducible, deterministic output — this is the contract the holdout evals gate.temperature: 1). Served with tool calling
(vLLM --enable-auto-tool-choice --tool-call-parser gemma4 --reasoning-parser gemma4) and the agent system prompt, the model holds a natural-language
conversation and calls a generate_mdma tool to render UI on demand. This path
is sampled (temperature: 1) and is non-deterministic. The agent prompt and
tooling live at github.com/MobileReality/mdma.