0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0

zetlyn/models-hf model hf 0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0 known 2026-09-10

https://huggingface.co/0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0

Properties

author0x795E2795
receipt
Source
Hugging Face models
Its words
0x795E2795
Read by
field:author
Said since
2026-10-02 12:02 UTC
Last answered
2026-10-05 12:27 UTC
Original
open at the source
What the source handed over
{
  "_asked": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "_id": "6aa32e1d1e8778f33b85d1dd",
  "author": "0x795E2795",
  "cardData": {
    "base_model": [
      "google/gemma-4-26B-A4B"
    ],
    "base_model_relation": "finetune",
    "language": [
      "ko",
      "en",
      "zh",
      "ja",
      "fr",
      "de",
      "es",
      "it",
      "ru",
      "ar",
      "hi",
      "pt",
      "vi",
      "th",
      "id",
      "nl",
      "da",
      "pl",
      "tr"
    ],
    "license": "apache-2.0",
    "pipeline_tag": "text-generation",
    "tags": [
      "gemma4",
      "gguf",
      "q4_0",
      "moe",
      "text-generation",
      "llama-cpp"
    ]
  },
  "config": {},
  "createdAt": "2026-09-10T22:24:29.000Z",
  "disabled": false,
  "downloads": 518,
  "gated": false,
  "gguf": {
    "architecture": "gemma4",
    "bos_token": "<bos>",
    "chat_template": "{%- macro format_argument(argument, escape_keys=True) -%}\n    {%- if argument is none -%}\n        {{- 'null' -}}\n    {%- elif argument is string -%}\n        {{- '<|\"|>' + argument + '<|\"|>' -}}\n    {%- elif argument is boolean -%}\n        {{- 'true' if argument else 'false' -}}\n    {%- elif argument is mapping -%}\n        {{- '{' -}}\n        {%- set ns = namespace(found_first=false) -%}\n        {%- for key, value in argument | dictsort -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {%- if escape_keys -%}\n                {{- '<|\"|>' + key + '<|\"|>' -}}\n            {%- else -%}\n                {{- key -}}\n            {%- endif -%}\n            :{{- format_argument(value, escape_keys=escape_keys) -}}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- elif argument is iterable and argument is not string -%}\n        {{- '[' -}}\n        {%- for item in argument -%}\n            {{- format_argument(item, escape_keys=escape_keys) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- ']' -}}\n    {%- else -%}\n        {{- argument -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_type_argument(type_value) -%}\n    {%- if type_value is none -%}\n        <|\"|>OBJECT<|\"|>\n    {%- elif type_value is string -%}\n        <|\"|>{{ type_value | upper }}<|\"|>\n    {%- elif type_value is iterable and type_value is not string -%}\n        [\n        {%- for item in type_value -%}\n            {%- if item is string -%}\n                <|\"|>{{ item | upper }}<|\"|>\n            {%- else -%}\n                {{- format_argument(item) -}}\n            {%- endif -%}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        ]\n    {%- else -%}\n        {{- format_argument(type_value) -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_parameters(properties, required, filter_keys=false) -%}\n    {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}\n    {%- set ns = namespace(found_first=false) -%}\n    {%- for key, value in properties | dictsort -%}\n        {%- if not filter_keys or key not in standard_keys -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {{ key }}:{\n            {%- set add_comma = false -%}\n            {%- if value is mapping -%}\n                {%- set vtype = value['type'] if 'type' in value and value['type'] else none -%}\n                {%- set is_string_type = (vtype is string and vtype | upper == 'STRING') or (vtype is iterable and vtype is not string and ('string' in vtype or 'STRING' in vtype)) -%}\n                {%- set is_array_type = (vtype is string and vtype | upper == 'ARRAY') or (vtype is iterable and vtype is not string and ('array' in vtype or 'ARRAY' in vtype)) -%}\n                {%- set is_object_type = (vtype is string and vtype | upper == 'OBJECT') or (vtype is iterable and vtype is not string and ('object' in vtype or 'OBJECT' in vtype)) -%}\n                {%- if 'description' in value and value['description'] -%}\n                    description:<|\"|>{{ value['description'] }}<|\"|>\n                    {%- set add_comma = true -%}\n                {%- endif -%}\n                {%- if is_string_type -%}\n                    {%- if 'enum' in value and value['enum'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        enum:{{ format_argument(value['enum']) }}\n                    {%- endif -%}\n                {%- elif is_array_type -%}\n                    {%- if 'items' in value and value['items'] is mapping and value['items'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        items:{\n                        {%- set ns_items = namespace(found_first=false) -%}\n                        {%- for item_key, item_value in value['items'] | dictsort -%}\n                            {%- if item_value is not none -%}\n                                {%- if ns_items.found_first %},{% endif -%}\n                                {%- set ns_items.found_first = true -%}\n                                {%- if item_key == 'properties' -%}\n                                    properties:{\n                                    {%- if item_value is mapping -%}\n                                        {{- format_parameters(item_value, value['items']['required'] if 'required' in value['items'] else []) -}}\n                                    {%- endif -%}\n                                    }\n                                {%- elif item_key == 'required' -%}\n                                    required:[\n                                    {%- for req_item in item_value -%}\n                                        <|\"|>{{- req_item -}}<|\"|>\n                                        {%- if not loop.last %},{% endif -%}\n                                    {%- endfor -%}\n                                    ]\n                                {%- elif item_key == 'type' -%}\n                                    type:{{ format_type_argument(item_value) }}\n                                {%- else -%}\n                                    {{ item_key }}:{{ format_argument(item_value) }}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        }\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if 'nullable' in value and value['nullable'] -%}\n                    {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                    nullable:true\n                {%- endif -%}\n                {%- if is_object_type or ('properties' in value and value['properties'] is mapping) -%}\n                    {%- if 'properties' in value and value['properties'] is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value['properties'], value['required'] if 'required' in value else []) -}}\n                        }\n                    {%- elif value is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value, value['required'] if 'required' in value else [], filter_keys=true) -}}\n                        }\n                    {%- endif -%}\n                    {%- if 'required' in value and value['required'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        required:[\n                        {%- for item in value['required'] -%}\n                            <|\"|>{{- item -}}<|\"|>\n                            {%- if not loop.last %},{% endif -%}\n                        {%- endfor -%}\n                        ]\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                type:{{ format_type_argument(vtype if vtype else 'object') }}\n            {%- else -%}\n                type:{{ format_type_argument('object') }}\n            {%- endif -%}\n            }\n        {%- endif -%}\n    {%- endfor -%}\n{%- endmacro -%}\n\n{%- macro format_function_declaration(tool_data) -%}\n    {%- set fn = tool_data['function'] if tool_data is mapping and 'function' in tool_data else tool_data -%}\n    {%- set tool_name = fn['name'] if fn is mapping and 'name' in fn and fn['name'] else 'unknown' -%}\n    {%- set tool_description = fn['description'] if fn is mapping and 'description' in fn and fn['description'] else '' -%}\n    declaration:{{- tool_name -}}{description:<|\"|>{{- tool_description -}}<|\"|>\n    {%- set params = none -%}\n    {%- if fn is mapping and 'parameters' in fn and fn['parameters'] -%}\n        {%- set params = fn['parameters'] -%}\n    {%- elif fn is mapping and 'input_schema' in fn and fn['input_schema'] -%}\n        {%- set params = fn['input_schema'] -%}\n    {%- elif fn is mapping and 'inputSchema' in fn and fn['inputSchema'] -%}\n        {%- set params = fn['inputSchema'] -%}\n    {%- endif -%}\n    {%- if params and params is mapping -%}\n        ,parameters:{\n        {%- if 'properties' in params and params['properties'] -%}\n            properties:{ {{- format_parameters(params['properties'], params['required'] if 'required' in params else []) -}} },\n        {%- endif -%}\n        {%- if 'required' in params and params['required'] -%}\n            required:[\n            {%- for item in params['required'] -%}\n                <|\"|>{{- item -}}<|\"|>\n                {{- ',' if not loop.last -}}\n            {%- endfor -%}\n            ],\n        {%- endif -%}\n        {%- if 'type' in params and params['type'] -%}\n            type:{{- format_type_argument(params['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    {%- if fn is mapping and 'response' in fn and fn['response'] is mapping -%}\n        {%- set response_declaration = fn['response'] -%}\n        ,response:{\n        {%- if 'description' in response_declaration and response_declaration['description'] -%}\n            description:<|\"|>{{- response_declaration['description'] -}}<|\"|>,\n        {%- endif -%}\n        {%- if 'type' in response_declaration and response_declaration['type'] -%}\n            type:{{- format_type_argument(response_declaration['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    }\n{%- endmacro -%}\n\n{%- macro strip_thinking(text) -%}\n    {{- text | trim -}}\n{%- endmacro -%}\n\n{%- macro format_tool_response_block(tool_name, response) -%}\n    {{- '<|tool_response>' -}}\n    {%- if response is mapping -%}\n        {{- 'response:' + tool_name + '{' -}}\n        {%- for key, value in response | dictsort -%}\n            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- else -%}\n        {{- 'response:' + tool_name + '{value:' + format_argument(response, escape_keys=False) + '}' -}}\n    {%- endif -%}\n    {{- '<tool_response|>' -}}\n{%- endmacro -%}\n\n{#- ===== SETUP ===== -#}\n{%- set ns = namespace(prev_message_type=None, prev_non_tool_role=None) -%}\n{%- set loop_messages = messages -%}\n{%- set enable_thinking = enable_thinking if enable_thinking is defined else false -%}\n{%- set preserve_thinking = preserve_thinking if preserve_thinking is defined else true -%}\n{{- bos_token -}}\n{#- Handle System/Tool Definitions Block -#}\n{%- if enable_thinking or (tools is defined and tools) or (messages and messages[0]['role'] in ['system', 'developer']) -%}\n    {{- '<|turn>system\\n' -}}\n    {#- Inject Thinking token at the very top of the FIRST system turn -#}\n    {%- if enable_thinking -%}\n        {{- '<|think|>\\n' -}}\n        {%- set ns.prev_message_type = 'think' -%}\n    {%- endif -%}\n    {%- if messages and messages[0]['role'] in ['system', 'developer'] -%}\n        {%- if messages[0]['content'] is string -%}\n            {{- messages[0]['content'] | trim -}}\n        {%- elif messages[0]['content'] is iterable and messages[0]['content'] is not string -%}\n            {%- for item in messages[0]['content'] -%}\n                {%- if item is mapping and 'text' in item -%}{{- item['text'] | trim + ' '-}}{%- endif -%}\n            {%- endfor -%}\n        {%- endif -%}\n        {%- set loop_messages = messages[1:] -%}\n    {%- endif -%}\n    {%- if tools is defined and tools -%}\n        {%- for tool in tools %}\n            {{- '<|tool>' -}}\n            {{- format_function_declaration(tool) | trim -}}\n            {{- '<tool|>' -}}\n        {%- endfor %}\n        {%- set ns.prev_message_type = 'tool' -%}\n    {%- endif -%}\n    {{- '<turn|>\\n' -}}\n{%- endif %}\n\n{#- Pre-scan: find last user message index for reasoning guard -#}\n{%- set ns_turn = namespace(last_user_idx=-1) -%}\n{%- for i in range(loop_messages | length) -%}\n    {%- if loop_messages[i]['role'] == 'user' -%}\n        {%- set ns_turn.last_user_idx = i -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{#- Loop through messages -#}\n{%- for message in loop_messages -%}\n    {%- if message['role'] != 'tool' -%}\n    {%- set ns.prev_message_type = None -%}\n    {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}\n    {%- set message_has_tool_calls = ('tool_calls' in message and message['tool_calls']) -%}\n    {#- Detect continuation using tracked state — O(1) instead of O(n) backward scan -#}\n    {%- set continue_same_model_turn = (role == 'model' and ns.prev_non_tool_role == 'assistant') -%}\n    {%- if not continue_same_model_turn -%}\n        {{- '<|turn>' + role + '\\n' }}\n    {%- endif -%}\n\n    {#- Render reasoning/reasoning_content as thinking channel (tool-call turns only) -#}\n    {%- set thinking_ns = namespace(text='') -%}\n    {%- if 'reasoning' in message and message['reasoning'] -%}\n        {%- set thinking_ns.text = message['reasoning'] -%}\n    {%- elif 'reasoning_content' in message and message['reasoning_content'] -%}\n        {%- set thinking_ns.text = message['reasoning_content'] -%}\n    {%- endif -%}\n    {%- set thinking_gate = (loop.index0 > ns_turn.last_user_idx) or preserve_thinking -%}\n    {%- if thinking_ns.text and thinking_gate and message_has_tool_calls -%}\n        {{- '<|channel>thought\\n' + thinking_ns.text + '\\n<channel|>' -}}\n    {%- endif -%}\n\n            {%- if message_has_tool_calls -%}\n                {%- for tool_call in message['tool_calls'] -%}\n                    {%- set function = tool_call['function'] if tool_call is mapping and 'function' in tool_call else tool_call -%}\n                    {%- set function_name = function['name'] if function is mapping and 'name' in function and function['name'] else 'unknown' -%}\n                    {{- '<|tool_call>call:' + function_name + '{' -}}\n                    {%- if function is mapping and 'arguments' in function and function['arguments'] is mapping -%}\n                        {%- set ns_args = namespace(found_first=false) -%}\n                        {%- for key, value in function['arguments'] | dictsort -%}\n                            {%- if ns_args.found_first %},{% endif -%}\n                            {%- set ns_args.found_first = true -%}\n                            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n                        {%- endfor -%}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is string -%}\n                        {{- function['arguments'] -}}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is not none -%}\n                        {{- format_argument(function['arguments'], escape_keys=False) -}}\n                    {%- endif -%}\n                    {{- '}<tool_call|>' -}}\n                {%- endfor -%}\n                {%- set ns.prev_message_type = 'tool_call' -%}\n            {%- endif -%}\n\n            {%- set ns_tr_out = namespace(flag=false) -%}\n            {%- if 'tool_responses' in message and message['tool_responses'] -%}\n                {#- Legacy: tool_responses embedded on the assistant message (Google/Gemma native) -#}\n                {%- for tool_response in message['tool_responses'] -%}\n                    {%- set tr_name = tool_response['name'] if tool_response is mapping and 'name' in tool_response and tool_response['name'] else 'unknown' -%}\n                    {%- set tr_response = tool_response['response'] if tool_response is mapping and 'response' in tool_response else '' -%}\n                    {{- format_tool_response_block(tr_name, tr_response) -}}\n                    {%- set ns_tr_out.flag = true -%}\n                    {%- set ns.prev_message_type = 'tool_response' -%}\n                {%- endfor -%}\n            {%- elif message_has_tool_calls -%}\n                {#- OpenAI Chat Completions: forward-scan consecutive role:tool messages -#}\n                {%- set ns_tool_scan = namespace(stopped=false) -%}\n                {%- for k in range(loop.index0 + 1, loop_messages | length) -%}\n                    {%- if ns_tool_scan.stopped -%}\n                    {%- elif loop_messages[k]['role'] != 'tool' -%}\n                        {%- set ns_tool_scan.stopped = true -%}\n                    {%- else -%}\n                        {%- set follow = loop_messages[k] -%}\n                        {#- Resolve tool_call_id to function name -#}\n                        {%- set ns_tname = namespace(name='unknown') -%}\n                        {%- if 'name' in follow and follow['name'] -%}\n                            {%- set ns_tname.name = follow['name'] -%}\n                        {%- endif -%}\n                        {%- for tc in message['tool_calls'] -%}\n                            {%- if tc is mapping and 'id' in tc and 'tool_call_id' in follow and tc['id'] == follow['tool_call_id'] -%}\n                                {%- if 'function' in tc and 'name' in tc['function'] and tc['function']['name'] -%}\n                                    {%- set ns_tname.name = tc['function']['name'] -%}\n                                {%- elif 'name' in tc and tc['name'] -%}\n                                    {%- set ns_tname.name = tc['name'] -%}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        {#- Handle content as string, object, or content-parts array -#}\n                        {%- set tool_body = follow['content'] if 'content' in follow else '' -%}\n                        {%- if tool_body is string -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is mapping -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is iterable and tool_body is not string -%}\n                            {%- set ns_txt = namespace(s='') -%}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] == 'text' and 'text' in part -%}\n                                    {%- set ns_txt.s = ns_txt.s + part['text'] -%}\n                                {%- endif -%}\n                            {%- endfor -%}\n                            {{- format_tool_response_block(ns_tname.name, ns_txt.s) -}}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] in ['image', 'image_url'] -%}\n                                    {{- '<|image|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] in ['audio', 'input_audio'] -%}\n                                    {{- '<|audio|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] == 'video' -%}\n                                    {{- '<|video|>' -}}\n                                {%- endif -%}\n                            {%- endfor -%}\n                        {%- else -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- endif -%}\n                        {%- set ns_tr_out.flag = true -%}\n                        {%- set ns.prev_message_type = 'tool_response' -%}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n\n            {%- set captured_content -%}\n            {%- if 'content' in message and message['content'] is string -%}\n                {%- if role == 'model' -%}\n                    {{- strip_thinking(message['content']) -}}\n                {%- else -%}\n                    {{- message['content'] | trim -}}\n                {%- endif -%}\n            {%- elif 'content' in message and message['content'] is iterable and message['content'] is not string -%}\n                {%- for item in message['content'] -%}\n                    {%- if item is mapping and 'type' in item and item['type'] == 'text' and 'text' in item -%}\n                        {%- if role == 'model' -%}\n                            {{- strip_thinking(item['text']) -}}\n                        {%- else -%}\n                            {{- item['text'] | trim -}}\n                        {%- endif -%}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['image', 'image_url'] -%}\n                        {{- '<|image|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['audio', 'input_audio'] -%}\n                        {{- '<|audio|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] == 'video' -%}\n                        {{- '<|video|>' -}}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n            {%- endset -%}\n\n            {{- captured_content -}}\n            {%- set has_content = captured_content | trim | length > 0 -%}\n\n        {#- Forward-scan: find next non-tool message role for continuation detection -#}\n        {%- set next_nt = namespace(role=None, found=false) -%}\n        {%- for j in range(loop.index0 + 1, loop_messages | length) -%}\n            {%- if not next_nt.found -%}\n                {%- if loop_messages[j]['role'] != 'tool' -%}\n                    {%- set next_nt.role = loop_messages[j]['role'] -%}\n                    {%- set next_nt.found = true -%}\n                {%- endif -%}\n            {%- endif -%}\n        {%- endfor -%}\n\n        {%- set continues_into_next = (\n            role == 'model'\n            and next_nt.role == 'assistant'\n            and not message_has_tool_calls\n            and not ns_tr_out.flag\n        ) -%}\n\n        {%- if ns.prev_message_type == 'tool_call' and not ns_tr_out.flag -%}\n            {{- '<|tool_response>' -}}\n        {%- elif continues_into_next -%}\n            {{- '\\n' -}}\n        {%- elif not (ns_tr_out.flag and not has_content) -%}\n            {{- '<turn|>\\n' -}}\n        {%- endif -%}\n\n    {#- Track previous non-tool role for next iteration (avoids O(n) backward scan) -#}\n    {%- set ns.prev_non_tool_role = message['role'] -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{%- if add_generation_prompt is defined and add_generation_prompt -%}\n    {%- if ns.prev_message_type != 'tool_response' and ns.prev_message_type != 'tool_call' -%}\n        {{- '<|turn>model\\n' -}}\n    {%- endif -%}\n\n    {%- if not enable_thinking -%}\n        {#- Suppress thinking — but not when awaiting tool responses -#}\n        {%- if ns.prev_message_type != 'tool_call' -%}\n            {{- '<|channel>thought\\n<channel|>' -}}\n        {%- endif -%}\n    {%- endif -%}\n{%- endif -%}\n",
    "context_length": 262144,
    "eos_token": "<eos>",
    "total": 25233142046,
    "totalFileSize": 14329791488
  },
  "id": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "lastModified": "2026-09-10T23:30:11.000Z",
  "likes": 1,
  "model-index": null,
  "modelId": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "pipeline_tag": "text-generation",
  "private": false,
  "sha": "d3b1db852eb4d3575801663033c4676231ceb65d",
  "siblings": [
    {
      "rfilename": ".eval_results/aime_2026.yaml"
    },
    {
      "rfilename": ".gitattributes"
    },
    {
      "rfilename": "README.md"
    },
    {
      "rfilename": "mmproj-BF16.gguf"
    },
    {
      "rfilename": "obsidian-alpha-26B_q4_0-it.gguf"
    }
  ],
  "spaces": [],
  "tags": [
    "gguf",
    "gemma4",
    "q4_0",
    "moe",
    "text-generation",
    "llama-cpp",
    "ko",
    "en",
    "zh",
    "ja",
    "fr",
    "de",
    "es",
    "it",
    "ru",
    "ar",
    "hi",
    "pt",
    "vi",
    "th",
    "id",
    "nl",
    "da",
    "pl",
    "tr",
    "base_model:google/gemma-4-26B-A4B",
    "base_model:finetune:google/gemma-4-26B-A4B",
    "license:apache-2.0",
    "eval-results",
    "endpoints_compatible",
    "region:us",
    "conversational"
  ],
  "usedStorage": 15524620672
}
downloads518
receipt
Source
Hugging Face models
Its words
518
Read by
field:downloads
Said since
2026-10-05 12:24 UTC
Last answered
2026-10-05 12:27 UTC
Original
open at the source
2026-10-05 12:24 UTC518
2026-10-04 12:16 UTC517
2026-10-02 12:02 UTC516
What the source handed over
{
  "_asked": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "_id": "6aa32e1d1e8778f33b85d1dd",
  "author": "0x795E2795",
  "cardData": {
    "base_model": [
      "google/gemma-4-26B-A4B"
    ],
    "base_model_relation": "finetune",
    "language": [
      "ko",
      "en",
      "zh",
      "ja",
      "fr",
      "de",
      "es",
      "it",
      "ru",
      "ar",
      "hi",
      "pt",
      "vi",
      "th",
      "id",
      "nl",
      "da",
      "pl",
      "tr"
    ],
    "license": "apache-2.0",
    "pipeline_tag": "text-generation",
    "tags": [
      "gemma4",
      "gguf",
      "q4_0",
      "moe",
      "text-generation",
      "llama-cpp"
    ]
  },
  "config": {},
  "createdAt": "2026-09-10T22:24:29.000Z",
  "disabled": false,
  "downloads": 518,
  "gated": false,
  "gguf": {
    "architecture": "gemma4",
    "bos_token": "<bos>",
    "chat_template": "{%- macro format_argument(argument, escape_keys=True) -%}\n    {%- if argument is none -%}\n        {{- 'null' -}}\n    {%- elif argument is string -%}\n        {{- '<|\"|>' + argument + '<|\"|>' -}}\n    {%- elif argument is boolean -%}\n        {{- 'true' if argument else 'false' -}}\n    {%- elif argument is mapping -%}\n        {{- '{' -}}\n        {%- set ns = namespace(found_first=false) -%}\n        {%- for key, value in argument | dictsort -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {%- if escape_keys -%}\n                {{- '<|\"|>' + key + '<|\"|>' -}}\n            {%- else -%}\n                {{- key -}}\n            {%- endif -%}\n            :{{- format_argument(value, escape_keys=escape_keys) -}}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- elif argument is iterable and argument is not string -%}\n        {{- '[' -}}\n        {%- for item in argument -%}\n            {{- format_argument(item, escape_keys=escape_keys) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- ']' -}}\n    {%- else -%}\n        {{- argument -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_type_argument(type_value) -%}\n    {%- if type_value is none -%}\n        <|\"|>OBJECT<|\"|>\n    {%- elif type_value is string -%}\n        <|\"|>{{ type_value | upper }}<|\"|>\n    {%- elif type_value is iterable and type_value is not string -%}\n        [\n        {%- for item in type_value -%}\n            {%- if item is string -%}\n                <|\"|>{{ item | upper }}<|\"|>\n            {%- else -%}\n                {{- format_argument(item) -}}\n            {%- endif -%}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        ]\n    {%- else -%}\n        {{- format_argument(type_value) -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_parameters(properties, required, filter_keys=false) -%}\n    {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}\n    {%- set ns = namespace(found_first=false) -%}\n    {%- for key, value in properties | dictsort -%}\n        {%- if not filter_keys or key not in standard_keys -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {{ key }}:{\n            {%- set add_comma = false -%}\n            {%- if value is mapping -%}\n                {%- set vtype = value['type'] if 'type' in value and value['type'] else none -%}\n                {%- set is_string_type = (vtype is string and vtype | upper == 'STRING') or (vtype is iterable and vtype is not string and ('string' in vtype or 'STRING' in vtype)) -%}\n                {%- set is_array_type = (vtype is string and vtype | upper == 'ARRAY') or (vtype is iterable and vtype is not string and ('array' in vtype or 'ARRAY' in vtype)) -%}\n                {%- set is_object_type = (vtype is string and vtype | upper == 'OBJECT') or (vtype is iterable and vtype is not string and ('object' in vtype or 'OBJECT' in vtype)) -%}\n                {%- if 'description' in value and value['description'] -%}\n                    description:<|\"|>{{ value['description'] }}<|\"|>\n                    {%- set add_comma = true -%}\n                {%- endif -%}\n                {%- if is_string_type -%}\n                    {%- if 'enum' in value and value['enum'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        enum:{{ format_argument(value['enum']) }}\n                    {%- endif -%}\n                {%- elif is_array_type -%}\n                    {%- if 'items' in value and value['items'] is mapping and value['items'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        items:{\n                        {%- set ns_items = namespace(found_first=false) -%}\n                        {%- for item_key, item_value in value['items'] | dictsort -%}\n                            {%- if item_value is not none -%}\n                                {%- if ns_items.found_first %},{% endif -%}\n                                {%- set ns_items.found_first = true -%}\n                                {%- if item_key == 'properties' -%}\n                                    properties:{\n                                    {%- if item_value is mapping -%}\n                                        {{- format_parameters(item_value, value['items']['required'] if 'required' in value['items'] else []) -}}\n                                    {%- endif -%}\n                                    }\n                                {%- elif item_key == 'required' -%}\n                                    required:[\n                                    {%- for req_item in item_value -%}\n                                        <|\"|>{{- req_item -}}<|\"|>\n                                        {%- if not loop.last %},{% endif -%}\n                                    {%- endfor -%}\n                                    ]\n                                {%- elif item_key == 'type' -%}\n                                    type:{{ format_type_argument(item_value) }}\n                                {%- else -%}\n                                    {{ item_key }}:{{ format_argument(item_value) }}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        }\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if 'nullable' in value and value['nullable'] -%}\n                    {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                    nullable:true\n                {%- endif -%}\n                {%- if is_object_type or ('properties' in value and value['properties'] is mapping) -%}\n                    {%- if 'properties' in value and value['properties'] is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value['properties'], value['required'] if 'required' in value else []) -}}\n                        }\n                    {%- elif value is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value, value['required'] if 'required' in value else [], filter_keys=true) -}}\n                        }\n                    {%- endif -%}\n                    {%- if 'required' in value and value['required'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        required:[\n                        {%- for item in value['required'] -%}\n                            <|\"|>{{- item -}}<|\"|>\n                            {%- if not loop.last %},{% endif -%}\n                        {%- endfor -%}\n                        ]\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                type:{{ format_type_argument(vtype if vtype else 'object') }}\n            {%- else -%}\n                type:{{ format_type_argument('object') }}\n            {%- endif -%}\n            }\n        {%- endif -%}\n    {%- endfor -%}\n{%- endmacro -%}\n\n{%- macro format_function_declaration(tool_data) -%}\n    {%- set fn = tool_data['function'] if tool_data is mapping and 'function' in tool_data else tool_data -%}\n    {%- set tool_name = fn['name'] if fn is mapping and 'name' in fn and fn['name'] else 'unknown' -%}\n    {%- set tool_description = fn['description'] if fn is mapping and 'description' in fn and fn['description'] else '' -%}\n    declaration:{{- tool_name -}}{description:<|\"|>{{- tool_description -}}<|\"|>\n    {%- set params = none -%}\n    {%- if fn is mapping and 'parameters' in fn and fn['parameters'] -%}\n        {%- set params = fn['parameters'] -%}\n    {%- elif fn is mapping and 'input_schema' in fn and fn['input_schema'] -%}\n        {%- set params = fn['input_schema'] -%}\n    {%- elif fn is mapping and 'inputSchema' in fn and fn['inputSchema'] -%}\n        {%- set params = fn['inputSchema'] -%}\n    {%- endif -%}\n    {%- if params and params is mapping -%}\n        ,parameters:{\n        {%- if 'properties' in params and params['properties'] -%}\n            properties:{ {{- format_parameters(params['properties'], params['required'] if 'required' in params else []) -}} },\n        {%- endif -%}\n        {%- if 'required' in params and params['required'] -%}\n            required:[\n            {%- for item in params['required'] -%}\n                <|\"|>{{- item -}}<|\"|>\n                {{- ',' if not loop.last -}}\n            {%- endfor -%}\n            ],\n        {%- endif -%}\n        {%- if 'type' in params and params['type'] -%}\n            type:{{- format_type_argument(params['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    {%- if fn is mapping and 'response' in fn and fn['response'] is mapping -%}\n        {%- set response_declaration = fn['response'] -%}\n        ,response:{\n        {%- if 'description' in response_declaration and response_declaration['description'] -%}\n            description:<|\"|>{{- response_declaration['description'] -}}<|\"|>,\n        {%- endif -%}\n        {%- if 'type' in response_declaration and response_declaration['type'] -%}\n            type:{{- format_type_argument(response_declaration['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    }\n{%- endmacro -%}\n\n{%- macro strip_thinking(text) -%}\n    {{- text | trim -}}\n{%- endmacro -%}\n\n{%- macro format_tool_response_block(tool_name, response) -%}\n    {{- '<|tool_response>' -}}\n    {%- if response is mapping -%}\n        {{- 'response:' + tool_name + '{' -}}\n        {%- for key, value in response | dictsort -%}\n            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- else -%}\n        {{- 'response:' + tool_name + '{value:' + format_argument(response, escape_keys=False) + '}' -}}\n    {%- endif -%}\n    {{- '<tool_response|>' -}}\n{%- endmacro -%}\n\n{#- ===== SETUP ===== -#}\n{%- set ns = namespace(prev_message_type=None, prev_non_tool_role=None) -%}\n{%- set loop_messages = messages -%}\n{%- set enable_thinking = enable_thinking if enable_thinking is defined else false -%}\n{%- set preserve_thinking = preserve_thinking if preserve_thinking is defined else true -%}\n{{- bos_token -}}\n{#- Handle System/Tool Definitions Block -#}\n{%- if enable_thinking or (tools is defined and tools) or (messages and messages[0]['role'] in ['system', 'developer']) -%}\n    {{- '<|turn>system\\n' -}}\n    {#- Inject Thinking token at the very top of the FIRST system turn -#}\n    {%- if enable_thinking -%}\n        {{- '<|think|>\\n' -}}\n        {%- set ns.prev_message_type = 'think' -%}\n    {%- endif -%}\n    {%- if messages and messages[0]['role'] in ['system', 'developer'] -%}\n        {%- if messages[0]['content'] is string -%}\n            {{- messages[0]['content'] | trim -}}\n        {%- elif messages[0]['content'] is iterable and messages[0]['content'] is not string -%}\n            {%- for item in messages[0]['content'] -%}\n                {%- if item is mapping and 'text' in item -%}{{- item['text'] | trim + ' '-}}{%- endif -%}\n            {%- endfor -%}\n        {%- endif -%}\n        {%- set loop_messages = messages[1:] -%}\n    {%- endif -%}\n    {%- if tools is defined and tools -%}\n        {%- for tool in tools %}\n            {{- '<|tool>' -}}\n            {{- format_function_declaration(tool) | trim -}}\n            {{- '<tool|>' -}}\n        {%- endfor %}\n        {%- set ns.prev_message_type = 'tool' -%}\n    {%- endif -%}\n    {{- '<turn|>\\n' -}}\n{%- endif %}\n\n{#- Pre-scan: find last user message index for reasoning guard -#}\n{%- set ns_turn = namespace(last_user_idx=-1) -%}\n{%- for i in range(loop_messages | length) -%}\n    {%- if loop_messages[i]['role'] == 'user' -%}\n        {%- set ns_turn.last_user_idx = i -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{#- Loop through messages -#}\n{%- for message in loop_messages -%}\n    {%- if message['role'] != 'tool' -%}\n    {%- set ns.prev_message_type = None -%}\n    {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}\n    {%- set message_has_tool_calls = ('tool_calls' in message and message['tool_calls']) -%}\n    {#- Detect continuation using tracked state — O(1) instead of O(n) backward scan -#}\n    {%- set continue_same_model_turn = (role == 'model' and ns.prev_non_tool_role == 'assistant') -%}\n    {%- if not continue_same_model_turn -%}\n        {{- '<|turn>' + role + '\\n' }}\n    {%- endif -%}\n\n    {#- Render reasoning/reasoning_content as thinking channel (tool-call turns only) -#}\n    {%- set thinking_ns = namespace(text='') -%}\n    {%- if 'reasoning' in message and message['reasoning'] -%}\n        {%- set thinking_ns.text = message['reasoning'] -%}\n    {%- elif 'reasoning_content' in message and message['reasoning_content'] -%}\n        {%- set thinking_ns.text = message['reasoning_content'] -%}\n    {%- endif -%}\n    {%- set thinking_gate = (loop.index0 > ns_turn.last_user_idx) or preserve_thinking -%}\n    {%- if thinking_ns.text and thinking_gate and message_has_tool_calls -%}\n        {{- '<|channel>thought\\n' + thinking_ns.text + '\\n<channel|>' -}}\n    {%- endif -%}\n\n            {%- if message_has_tool_calls -%}\n                {%- for tool_call in message['tool_calls'] -%}\n                    {%- set function = tool_call['function'] if tool_call is mapping and 'function' in tool_call else tool_call -%}\n                    {%- set function_name = function['name'] if function is mapping and 'name' in function and function['name'] else 'unknown' -%}\n                    {{- '<|tool_call>call:' + function_name + '{' -}}\n                    {%- if function is mapping and 'arguments' in function and function['arguments'] is mapping -%}\n                        {%- set ns_args = namespace(found_first=false) -%}\n                        {%- for key, value in function['arguments'] | dictsort -%}\n                            {%- if ns_args.found_first %},{% endif -%}\n                            {%- set ns_args.found_first = true -%}\n                            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n                        {%- endfor -%}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is string -%}\n                        {{- function['arguments'] -}}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is not none -%}\n                        {{- format_argument(function['arguments'], escape_keys=False) -}}\n                    {%- endif -%}\n                    {{- '}<tool_call|>' -}}\n                {%- endfor -%}\n                {%- set ns.prev_message_type = 'tool_call' -%}\n            {%- endif -%}\n\n            {%- set ns_tr_out = namespace(flag=false) -%}\n            {%- if 'tool_responses' in message and message['tool_responses'] -%}\n                {#- Legacy: tool_responses embedded on the assistant message (Google/Gemma native) -#}\n                {%- for tool_response in message['tool_responses'] -%}\n                    {%- set tr_name = tool_response['name'] if tool_response is mapping and 'name' in tool_response and tool_response['name'] else 'unknown' -%}\n                    {%- set tr_response = tool_response['response'] if tool_response is mapping and 'response' in tool_response else '' -%}\n                    {{- format_tool_response_block(tr_name, tr_response) -}}\n                    {%- set ns_tr_out.flag = true -%}\n                    {%- set ns.prev_message_type = 'tool_response' -%}\n                {%- endfor -%}\n            {%- elif message_has_tool_calls -%}\n                {#- OpenAI Chat Completions: forward-scan consecutive role:tool messages -#}\n                {%- set ns_tool_scan = namespace(stopped=false) -%}\n                {%- for k in range(loop.index0 + 1, loop_messages | length) -%}\n                    {%- if ns_tool_scan.stopped -%}\n                    {%- elif loop_messages[k]['role'] != 'tool' -%}\n                        {%- set ns_tool_scan.stopped = true -%}\n                    {%- else -%}\n                        {%- set follow = loop_messages[k] -%}\n                        {#- Resolve tool_call_id to function name -#}\n                        {%- set ns_tname = namespace(name='unknown') -%}\n                        {%- if 'name' in follow and follow['name'] -%}\n                            {%- set ns_tname.name = follow['name'] -%}\n                        {%- endif -%}\n                        {%- for tc in message['tool_calls'] -%}\n                            {%- if tc is mapping and 'id' in tc and 'tool_call_id' in follow and tc['id'] == follow['tool_call_id'] -%}\n                                {%- if 'function' in tc and 'name' in tc['function'] and tc['function']['name'] -%}\n                                    {%- set ns_tname.name = tc['function']['name'] -%}\n                                {%- elif 'name' in tc and tc['name'] -%}\n                                    {%- set ns_tname.name = tc['name'] -%}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        {#- Handle content as string, object, or content-parts array -#}\n                        {%- set tool_body = follow['content'] if 'content' in follow else '' -%}\n                        {%- if tool_body is string -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is mapping -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is iterable and tool_body is not string -%}\n                            {%- set ns_txt = namespace(s='') -%}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] == 'text' and 'text' in part -%}\n                                    {%- set ns_txt.s = ns_txt.s + part['text'] -%}\n                                {%- endif -%}\n                            {%- endfor -%}\n                            {{- format_tool_response_block(ns_tname.name, ns_txt.s) -}}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] in ['image', 'image_url'] -%}\n                                    {{- '<|image|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] in ['audio', 'input_audio'] -%}\n                                    {{- '<|audio|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] == 'video' -%}\n                                    {{- '<|video|>' -}}\n                                {%- endif -%}\n                            {%- endfor -%}\n                        {%- else -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- endif -%}\n                        {%- set ns_tr_out.flag = true -%}\n                        {%- set ns.prev_message_type = 'tool_response' -%}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n\n            {%- set captured_content -%}\n            {%- if 'content' in message and message['content'] is string -%}\n                {%- if role == 'model' -%}\n                    {{- strip_thinking(message['content']) -}}\n                {%- else -%}\n                    {{- message['content'] | trim -}}\n                {%- endif -%}\n            {%- elif 'content' in message and message['content'] is iterable and message['content'] is not string -%}\n                {%- for item in message['content'] -%}\n                    {%- if item is mapping and 'type' in item and item['type'] == 'text' and 'text' in item -%}\n                        {%- if role == 'model' -%}\n                            {{- strip_thinking(item['text']) -}}\n                        {%- else -%}\n                            {{- item['text'] | trim -}}\n                        {%- endif -%}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['image', 'image_url'] -%}\n                        {{- '<|image|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['audio', 'input_audio'] -%}\n                        {{- '<|audio|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] == 'video' -%}\n                        {{- '<|video|>' -}}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n            {%- endset -%}\n\n            {{- captured_content -}}\n            {%- set has_content = captured_content | trim | length > 0 -%}\n\n        {#- Forward-scan: find next non-tool message role for continuation detection -#}\n        {%- set next_nt = namespace(role=None, found=false) -%}\n        {%- for j in range(loop.index0 + 1, loop_messages | length) -%}\n            {%- if not next_nt.found -%}\n                {%- if loop_messages[j]['role'] != 'tool' -%}\n                    {%- set next_nt.role = loop_messages[j]['role'] -%}\n                    {%- set next_nt.found = true -%}\n                {%- endif -%}\n            {%- endif -%}\n        {%- endfor -%}\n\n        {%- set continues_into_next = (\n            role == 'model'\n            and next_nt.role == 'assistant'\n            and not message_has_tool_calls\n            and not ns_tr_out.flag\n        ) -%}\n\n        {%- if ns.prev_message_type == 'tool_call' and not ns_tr_out.flag -%}\n            {{- '<|tool_response>' -}}\n        {%- elif continues_into_next -%}\n            {{- '\\n' -}}\n        {%- elif not (ns_tr_out.flag and not has_content) -%}\n            {{- '<turn|>\\n' -}}\n        {%- endif -%}\n\n    {#- Track previous non-tool role for next iteration (avoids O(n) backward scan) -#}\n    {%- set ns.prev_non_tool_role = message['role'] -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{%- if add_generation_prompt is defined and add_generation_prompt -%}\n    {%- if ns.prev_message_type != 'tool_response' and ns.prev_message_type != 'tool_call' -%}\n        {{- '<|turn>model\\n' -}}\n    {%- endif -%}\n\n    {%- if not enable_thinking -%}\n        {#- Suppress thinking — but not when awaiting tool responses -#}\n        {%- if ns.prev_message_type != 'tool_call' -%}\n            {{- '<|channel>thought\\n<channel|>' -}}\n        {%- endif -%}\n    {%- endif -%}\n{%- endif -%}\n",
    "context_length": 262144,
    "eos_token": "<eos>",
    "total": 25233142046,
    "totalFileSize": 14329791488
  },
  "id": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "lastModified": "2026-09-10T23:30:11.000Z",
  "likes": 1,
  "model-index": null,
  "modelId": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "pipeline_tag": "text-generation",
  "private": false,
  "sha": "d3b1db852eb4d3575801663033c4676231ceb65d",
  "siblings": [
    {
      "rfilename": ".eval_results/aime_2026.yaml"
    },
    {
      "rfilename": ".gitattributes"
    },
    {
      "rfilename": "README.md"
    },
    {
      "rfilename": "mmproj-BF16.gguf"
    },
    {
      "rfilename": "obsidian-alpha-26B_q4_0-it.gguf"
    }
  ],
  "spaces": [],
  "tags": [
    "gguf",
    "gemma4",
    "q4_0",
    "moe",
    "text-generation",
    "llama-cpp",
    "ko",
    "en",
    "zh",
    "ja",
    "fr",
    "de",
    "es",
    "it",
    "ru",
    "ar",
    "hi",
    "pt",
    "vi",
    "th",
    "id",
    "nl",
    "da",
    "pl",
    "tr",
    "base_model:google/gemma-4-26B-A4B",
    "base_model:finetune:google/gemma-4-26B-A4B",
    "license:apache-2.0",
    "eval-results",
    "endpoints_compatible",
    "region:us",
    "conversational"
  ],
  "usedStorage": 15524620672
}
gatedfalse
receipt
Source
Hugging Face models
Its words
false
Read by
field:gated
Said since
2026-10-02 12:02 UTC
Last answered
2026-10-05 12:27 UTC
Original
open at the source
What the source handed over
{
  "_asked": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "_id": "6aa32e1d1e8778f33b85d1dd",
  "author": "0x795E2795",
  "cardData": {
    "base_model": [
      "google/gemma-4-26B-A4B"
    ],
    "base_model_relation": "finetune",
    "language": [
      "ko",
      "en",
      "zh",
      "ja",
      "fr",
      "de",
      "es",
      "it",
      "ru",
      "ar",
      "hi",
      "pt",
      "vi",
      "th",
      "id",
      "nl",
      "da",
      "pl",
      "tr"
    ],
    "license": "apache-2.0",
    "pipeline_tag": "text-generation",
    "tags": [
      "gemma4",
      "gguf",
      "q4_0",
      "moe",
      "text-generation",
      "llama-cpp"
    ]
  },
  "config": {},
  "createdAt": "2026-09-10T22:24:29.000Z",
  "disabled": false,
  "downloads": 518,
  "gated": false,
  "gguf": {
    "architecture": "gemma4",
    "bos_token": "<bos>",
    "chat_template": "{%- macro format_argument(argument, escape_keys=True) -%}\n    {%- if argument is none -%}\n        {{- 'null' -}}\n    {%- elif argument is string -%}\n        {{- '<|\"|>' + argument + '<|\"|>' -}}\n    {%- elif argument is boolean -%}\n        {{- 'true' if argument else 'false' -}}\n    {%- elif argument is mapping -%}\n        {{- '{' -}}\n        {%- set ns = namespace(found_first=false) -%}\n        {%- for key, value in argument | dictsort -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {%- if escape_keys -%}\n                {{- '<|\"|>' + key + '<|\"|>' -}}\n            {%- else -%}\n                {{- key -}}\n            {%- endif -%}\n            :{{- format_argument(value, escape_keys=escape_keys) -}}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- elif argument is iterable and argument is not string -%}\n        {{- '[' -}}\n        {%- for item in argument -%}\n            {{- format_argument(item, escape_keys=escape_keys) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- ']' -}}\n    {%- else -%}\n        {{- argument -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_type_argument(type_value) -%}\n    {%- if type_value is none -%}\n        <|\"|>OBJECT<|\"|>\n    {%- elif type_value is string -%}\n        <|\"|>{{ type_value | upper }}<|\"|>\n    {%- elif type_value is iterable and type_value is not string -%}\n        [\n        {%- for item in type_value -%}\n            {%- if item is string -%}\n                <|\"|>{{ item | upper }}<|\"|>\n            {%- else -%}\n                {{- format_argument(item) -}}\n            {%- endif -%}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        ]\n    {%- else -%}\n        {{- format_argument(type_value) -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_parameters(properties, required, filter_keys=false) -%}\n    {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}\n    {%- set ns = namespace(found_first=false) -%}\n    {%- for key, value in properties | dictsort -%}\n        {%- if not filter_keys or key not in standard_keys -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {{ key }}:{\n            {%- set add_comma = false -%}\n            {%- if value is mapping -%}\n                {%- set vtype = value['type'] if 'type' in value and value['type'] else none -%}\n                {%- set is_string_type = (vtype is string and vtype | upper == 'STRING') or (vtype is iterable and vtype is not string and ('string' in vtype or 'STRING' in vtype)) -%}\n                {%- set is_array_type = (vtype is string and vtype | upper == 'ARRAY') or (vtype is iterable and vtype is not string and ('array' in vtype or 'ARRAY' in vtype)) -%}\n                {%- set is_object_type = (vtype is string and vtype | upper == 'OBJECT') or (vtype is iterable and vtype is not string and ('object' in vtype or 'OBJECT' in vtype)) -%}\n                {%- if 'description' in value and value['description'] -%}\n                    description:<|\"|>{{ value['description'] }}<|\"|>\n                    {%- set add_comma = true -%}\n                {%- endif -%}\n                {%- if is_string_type -%}\n                    {%- if 'enum' in value and value['enum'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        enum:{{ format_argument(value['enum']) }}\n                    {%- endif -%}\n                {%- elif is_array_type -%}\n                    {%- if 'items' in value and value['items'] is mapping and value['items'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        items:{\n                        {%- set ns_items = namespace(found_first=false) -%}\n                        {%- for item_key, item_value in value['items'] | dictsort -%}\n                            {%- if item_value is not none -%}\n                                {%- if ns_items.found_first %},{% endif -%}\n                                {%- set ns_items.found_first = true -%}\n                                {%- if item_key == 'properties' -%}\n                                    properties:{\n                                    {%- if item_value is mapping -%}\n                                        {{- format_parameters(item_value, value['items']['required'] if 'required' in value['items'] else []) -}}\n                                    {%- endif -%}\n                                    }\n                                {%- elif item_key == 'required' -%}\n                                    required:[\n                                    {%- for req_item in item_value -%}\n                                        <|\"|>{{- req_item -}}<|\"|>\n                                        {%- if not loop.last %},{% endif -%}\n                                    {%- endfor -%}\n                                    ]\n                                {%- elif item_key == 'type' -%}\n                                    type:{{ format_type_argument(item_value) }}\n                                {%- else -%}\n                                    {{ item_key }}:{{ format_argument(item_value) }}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        }\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if 'nullable' in value and value['nullable'] -%}\n                    {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                    nullable:true\n                {%- endif -%}\n                {%- if is_object_type or ('properties' in value and value['properties'] is mapping) -%}\n                    {%- if 'properties' in value and value['properties'] is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value['properties'], value['required'] if 'required' in value else []) -}}\n                        }\n                    {%- elif value is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value, value['required'] if 'required' in value else [], filter_keys=true) -}}\n                        }\n                    {%- endif -%}\n                    {%- if 'required' in value and value['required'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        required:[\n                        {%- for item in value['required'] -%}\n                            <|\"|>{{- item -}}<|\"|>\n                            {%- if not loop.last %},{% endif -%}\n                        {%- endfor -%}\n                        ]\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                type:{{ format_type_argument(vtype if vtype else 'object') }}\n            {%- else -%}\n                type:{{ format_type_argument('object') }}\n            {%- endif -%}\n            }\n        {%- endif -%}\n    {%- endfor -%}\n{%- endmacro -%}\n\n{%- macro format_function_declaration(tool_data) -%}\n    {%- set fn = tool_data['function'] if tool_data is mapping and 'function' in tool_data else tool_data -%}\n    {%- set tool_name = fn['name'] if fn is mapping and 'name' in fn and fn['name'] else 'unknown' -%}\n    {%- set tool_description = fn['description'] if fn is mapping and 'description' in fn and fn['description'] else '' -%}\n    declaration:{{- tool_name -}}{description:<|\"|>{{- tool_description -}}<|\"|>\n    {%- set params = none -%}\n    {%- if fn is mapping and 'parameters' in fn and fn['parameters'] -%}\n        {%- set params = fn['parameters'] -%}\n    {%- elif fn is mapping and 'input_schema' in fn and fn['input_schema'] -%}\n        {%- set params = fn['input_schema'] -%}\n    {%- elif fn is mapping and 'inputSchema' in fn and fn['inputSchema'] -%}\n        {%- set params = fn['inputSchema'] -%}\n    {%- endif -%}\n    {%- if params and params is mapping -%}\n        ,parameters:{\n        {%- if 'properties' in params and params['properties'] -%}\n            properties:{ {{- format_parameters(params['properties'], params['required'] if 'required' in params else []) -}} },\n        {%- endif -%}\n        {%- if 'required' in params and params['required'] -%}\n            required:[\n            {%- for item in params['required'] -%}\n                <|\"|>{{- item -}}<|\"|>\n                {{- ',' if not loop.last -}}\n            {%- endfor -%}\n            ],\n        {%- endif -%}\n        {%- if 'type' in params and params['type'] -%}\n            type:{{- format_type_argument(params['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    {%- if fn is mapping and 'response' in fn and fn['response'] is mapping -%}\n        {%- set response_declaration = fn['response'] -%}\n        ,response:{\n        {%- if 'description' in response_declaration and response_declaration['description'] -%}\n            description:<|\"|>{{- response_declaration['description'] -}}<|\"|>,\n        {%- endif -%}\n        {%- if 'type' in response_declaration and response_declaration['type'] -%}\n            type:{{- format_type_argument(response_declaration['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    }\n{%- endmacro -%}\n\n{%- macro strip_thinking(text) -%}\n    {{- text | trim -}}\n{%- endmacro -%}\n\n{%- macro format_tool_response_block(tool_name, response) -%}\n    {{- '<|tool_response>' -}}\n    {%- if response is mapping -%}\n        {{- 'response:' + tool_name + '{' -}}\n        {%- for key, value in response | dictsort -%}\n            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- else -%}\n        {{- 'response:' + tool_name + '{value:' + format_argument(response, escape_keys=False) + '}' -}}\n    {%- endif -%}\n    {{- '<tool_response|>' -}}\n{%- endmacro -%}\n\n{#- ===== SETUP ===== -#}\n{%- set ns = namespace(prev_message_type=None, prev_non_tool_role=None) -%}\n{%- set loop_messages = messages -%}\n{%- set enable_thinking = enable_thinking if enable_thinking is defined else false -%}\n{%- set preserve_thinking = preserve_thinking if preserve_thinking is defined else true -%}\n{{- bos_token -}}\n{#- Handle System/Tool Definitions Block -#}\n{%- if enable_thinking or (tools is defined and tools) or (messages and messages[0]['role'] in ['system', 'developer']) -%}\n    {{- '<|turn>system\\n' -}}\n    {#- Inject Thinking token at the very top of the FIRST system turn -#}\n    {%- if enable_thinking -%}\n        {{- '<|think|>\\n' -}}\n        {%- set ns.prev_message_type = 'think' -%}\n    {%- endif -%}\n    {%- if messages and messages[0]['role'] in ['system', 'developer'] -%}\n        {%- if messages[0]['content'] is string -%}\n            {{- messages[0]['content'] | trim -}}\n        {%- elif messages[0]['content'] is iterable and messages[0]['content'] is not string -%}\n            {%- for item in messages[0]['content'] -%}\n                {%- if item is mapping and 'text' in item -%}{{- item['text'] | trim + ' '-}}{%- endif -%}\n            {%- endfor -%}\n        {%- endif -%}\n        {%- set loop_messages = messages[1:] -%}\n    {%- endif -%}\n    {%- if tools is defined and tools -%}\n        {%- for tool in tools %}\n            {{- '<|tool>' -}}\n            {{- format_function_declaration(tool) | trim -}}\n            {{- '<tool|>' -}}\n        {%- endfor %}\n        {%- set ns.prev_message_type = 'tool' -%}\n    {%- endif -%}\n    {{- '<turn|>\\n' -}}\n{%- endif %}\n\n{#- Pre-scan: find last user message index for reasoning guard -#}\n{%- set ns_turn = namespace(last_user_idx=-1) -%}\n{%- for i in range(loop_messages | length) -%}\n    {%- if loop_messages[i]['role'] == 'user' -%}\n        {%- set ns_turn.last_user_idx = i -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{#- Loop through messages -#}\n{%- for message in loop_messages -%}\n    {%- if message['role'] != 'tool' -%}\n    {%- set ns.prev_message_type = None -%}\n    {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}\n    {%- set message_has_tool_calls = ('tool_calls' in message and message['tool_calls']) -%}\n    {#- Detect continuation using tracked state — O(1) instead of O(n) backward scan -#}\n    {%- set continue_same_model_turn = (role == 'model' and ns.prev_non_tool_role == 'assistant') -%}\n    {%- if not continue_same_model_turn -%}\n        {{- '<|turn>' + role + '\\n' }}\n    {%- endif -%}\n\n    {#- Render reasoning/reasoning_content as thinking channel (tool-call turns only) -#}\n    {%- set thinking_ns = namespace(text='') -%}\n    {%- if 'reasoning' in message and message['reasoning'] -%}\n        {%- set thinking_ns.text = message['reasoning'] -%}\n    {%- elif 'reasoning_content' in message and message['reasoning_content'] -%}\n        {%- set thinking_ns.text = message['reasoning_content'] -%}\n    {%- endif -%}\n    {%- set thinking_gate = (loop.index0 > ns_turn.last_user_idx) or preserve_thinking -%}\n    {%- if thinking_ns.text and thinking_gate and message_has_tool_calls -%}\n        {{- '<|channel>thought\\n' + thinking_ns.text + '\\n<channel|>' -}}\n    {%- endif -%}\n\n            {%- if message_has_tool_calls -%}\n                {%- for tool_call in message['tool_calls'] -%}\n                    {%- set function = tool_call['function'] if tool_call is mapping and 'function' in tool_call else tool_call -%}\n                    {%- set function_name = function['name'] if function is mapping and 'name' in function and function['name'] else 'unknown' -%}\n                    {{- '<|tool_call>call:' + function_name + '{' -}}\n                    {%- if function is mapping and 'arguments' in function and function['arguments'] is mapping -%}\n                        {%- set ns_args = namespace(found_first=false) -%}\n                        {%- for key, value in function['arguments'] | dictsort -%}\n                            {%- if ns_args.found_first %},{% endif -%}\n                            {%- set ns_args.found_first = true -%}\n                            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n                        {%- endfor -%}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is string -%}\n                        {{- function['arguments'] -}}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is not none -%}\n                        {{- format_argument(function['arguments'], escape_keys=False) -}}\n                    {%- endif -%}\n                    {{- '}<tool_call|>' -}}\n                {%- endfor -%}\n                {%- set ns.prev_message_type = 'tool_call' -%}\n            {%- endif -%}\n\n            {%- set ns_tr_out = namespace(flag=false) -%}\n            {%- if 'tool_responses' in message and message['tool_responses'] -%}\n                {#- Legacy: tool_responses embedded on the assistant message (Google/Gemma native) -#}\n                {%- for tool_response in message['tool_responses'] -%}\n                    {%- set tr_name = tool_response['name'] if tool_response is mapping and 'name' in tool_response and tool_response['name'] else 'unknown' -%}\n                    {%- set tr_response = tool_response['response'] if tool_response is mapping and 'response' in tool_response else '' -%}\n                    {{- format_tool_response_block(tr_name, tr_response) -}}\n                    {%- set ns_tr_out.flag = true -%}\n                    {%- set ns.prev_message_type = 'tool_response' -%}\n                {%- endfor -%}\n            {%- elif message_has_tool_calls -%}\n                {#- OpenAI Chat Completions: forward-scan consecutive role:tool messages -#}\n                {%- set ns_tool_scan = namespace(stopped=false) -%}\n                {%- for k in range(loop.index0 + 1, loop_messages | length) -%}\n                    {%- if ns_tool_scan.stopped -%}\n                    {%- elif loop_messages[k]['role'] != 'tool' -%}\n                        {%- set ns_tool_scan.stopped = true -%}\n                    {%- else -%}\n                        {%- set follow = loop_messages[k] -%}\n                        {#- Resolve tool_call_id to function name -#}\n                        {%- set ns_tname = namespace(name='unknown') -%}\n                        {%- if 'name' in follow and follow['name'] -%}\n                            {%- set ns_tname.name = follow['name'] -%}\n                        {%- endif -%}\n                        {%- for tc in message['tool_calls'] -%}\n                            {%- if tc is mapping and 'id' in tc and 'tool_call_id' in follow and tc['id'] == follow['tool_call_id'] -%}\n                                {%- if 'function' in tc and 'name' in tc['function'] and tc['function']['name'] -%}\n                                    {%- set ns_tname.name = tc['function']['name'] -%}\n                                {%- elif 'name' in tc and tc['name'] -%}\n                                    {%- set ns_tname.name = tc['name'] -%}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        {#- Handle content as string, object, or content-parts array -#}\n                        {%- set tool_body = follow['content'] if 'content' in follow else '' -%}\n                        {%- if tool_body is string -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is mapping -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is iterable and tool_body is not string -%}\n                            {%- set ns_txt = namespace(s='') -%}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] == 'text' and 'text' in part -%}\n                                    {%- set ns_txt.s = ns_txt.s + part['text'] -%}\n                                {%- endif -%}\n                            {%- endfor -%}\n                            {{- format_tool_response_block(ns_tname.name, ns_txt.s) -}}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] in ['image', 'image_url'] -%}\n                                    {{- '<|image|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] in ['audio', 'input_audio'] -%}\n                                    {{- '<|audio|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] == 'video' -%}\n                                    {{- '<|video|>' -}}\n                                {%- endif -%}\n                            {%- endfor -%}\n                        {%- else -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- endif -%}\n                        {%- set ns_tr_out.flag = true -%}\n                        {%- set ns.prev_message_type = 'tool_response' -%}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n\n            {%- set captured_content -%}\n            {%- if 'content' in message and message['content'] is string -%}\n                {%- if role == 'model' -%}\n                    {{- strip_thinking(message['content']) -}}\n                {%- else -%}\n                    {{- message['content'] | trim -}}\n                {%- endif -%}\n            {%- elif 'content' in message and message['content'] is iterable and message['content'] is not string -%}\n                {%- for item in message['content'] -%}\n                    {%- if item is mapping and 'type' in item and item['type'] == 'text' and 'text' in item -%}\n                        {%- if role == 'model' -%}\n                            {{- strip_thinking(item['text']) -}}\n                        {%- else -%}\n                            {{- item['text'] | trim -}}\n                        {%- endif -%}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['image', 'image_url'] -%}\n                        {{- '<|image|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['audio', 'input_audio'] -%}\n                        {{- '<|audio|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] == 'video' -%}\n                        {{- '<|video|>' -}}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n            {%- endset -%}\n\n            {{- captured_content -}}\n            {%- set has_content = captured_content | trim | length > 0 -%}\n\n        {#- Forward-scan: find next non-tool message role for continuation detection -#}\n        {%- set next_nt = namespace(role=None, found=false) -%}\n        {%- for j in range(loop.index0 + 1, loop_messages | length) -%}\n            {%- if not next_nt.found -%}\n                {%- if loop_messages[j]['role'] != 'tool' -%}\n                    {%- set next_nt.role = loop_messages[j]['role'] -%}\n                    {%- set next_nt.found = true -%}\n                {%- endif -%}\n            {%- endif -%}\n        {%- endfor -%}\n\n        {%- set continues_into_next = (\n            role == 'model'\n            and next_nt.role == 'assistant'\n            and not message_has_tool_calls\n            and not ns_tr_out.flag\n        ) -%}\n\n        {%- if ns.prev_message_type == 'tool_call' and not ns_tr_out.flag -%}\n            {{- '<|tool_response>' -}}\n        {%- elif continues_into_next -%}\n            {{- '\\n' -}}\n        {%- elif not (ns_tr_out.flag and not has_content) -%}\n            {{- '<turn|>\\n' -}}\n        {%- endif -%}\n\n    {#- Track previous non-tool role for next iteration (avoids O(n) backward scan) -#}\n    {%- set ns.prev_non_tool_role = message['role'] -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{%- if add_generation_prompt is defined and add_generation_prompt -%}\n    {%- if ns.prev_message_type != 'tool_response' and ns.prev_message_type != 'tool_call' -%}\n        {{- '<|turn>model\\n' -}}\n    {%- endif -%}\n\n    {%- if not enable_thinking -%}\n        {#- Suppress thinking — but not when awaiting tool responses -#}\n        {%- if ns.prev_message_type != 'tool_call' -%}\n            {{- '<|channel>thought\\n<channel|>' -}}\n        {%- endif -%}\n    {%- endif -%}\n{%- endif -%}\n",
    "context_length": 262144,
    "eos_token": "<eos>",
    "total": 25233142046,
    "totalFileSize": 14329791488
  },
  "id": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "lastModified": "2026-09-10T23:30:11.000Z",
  "likes": 1,
  "model-index": null,
  "modelId": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "pipeline_tag": "text-generation",
  "private": false,
  "sha": "d3b1db852eb4d3575801663033c4676231ceb65d",
  "siblings": [
    {
      "rfilename": ".eval_results/aime_2026.yaml"
    },
    {
      "rfilename": ".gitattributes"
    },
    {
      "rfilename": "README.md"
    },
    {
      "rfilename": "mmproj-BF16.gguf"
    },
    {
      "rfilename": "obsidian-alpha-26B_q4_0-it.gguf"
    }
  ],
  "spaces": [],
  "tags": [
    "gguf",
    "gemma4",
    "q4_0",
    "moe",
    "text-generation",
    "llama-cpp",
    "ko",
    "en",
    "zh",
    "ja",
    "fr",
    "de",
    "es",
    "it",
    "ru",
    "ar",
    "hi",
    "pt",
    "vi",
    "th",
    "id",
    "nl",
    "da",
    "pl",
    "tr",
    "base_model:google/gemma-4-26B-A4B",
    "base_model:finetune:google/gemma-4-26B-A4B",
    "license:apache-2.0",
    "eval-results",
    "endpoints_compatible",
    "region:us",
    "conversational"
  ],
  "usedStorage": 15524620672
}
licenceapache-2.0
receipt
Source
Hugging Face models
Its words
apache-2.0
Read by
field:cardData.license
Said since
2026-10-02 12:02 UTC
Last answered
2026-10-05 12:27 UTC
Original
open at the source
What the source handed over
{
  "_asked": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "_id": "6aa32e1d1e8778f33b85d1dd",
  "author": "0x795E2795",
  "cardData": {
    "base_model": [
      "google/gemma-4-26B-A4B"
    ],
    "base_model_relation": "finetune",
    "language": [
      "ko",
      "en",
      "zh",
      "ja",
      "fr",
      "de",
      "es",
      "it",
      "ru",
      "ar",
      "hi",
      "pt",
      "vi",
      "th",
      "id",
      "nl",
      "da",
      "pl",
      "tr"
    ],
    "license": "apache-2.0",
    "pipeline_tag": "text-generation",
    "tags": [
      "gemma4",
      "gguf",
      "q4_0",
      "moe",
      "text-generation",
      "llama-cpp"
    ]
  },
  "config": {},
  "createdAt": "2026-09-10T22:24:29.000Z",
  "disabled": false,
  "downloads": 518,
  "gated": false,
  "gguf": {
    "architecture": "gemma4",
    "bos_token": "<bos>",
    "chat_template": "{%- macro format_argument(argument, escape_keys=True) -%}\n    {%- if argument is none -%}\n        {{- 'null' -}}\n    {%- elif argument is string -%}\n        {{- '<|\"|>' + argument + '<|\"|>' -}}\n    {%- elif argument is boolean -%}\n        {{- 'true' if argument else 'false' -}}\n    {%- elif argument is mapping -%}\n        {{- '{' -}}\n        {%- set ns = namespace(found_first=false) -%}\n        {%- for key, value in argument | dictsort -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {%- if escape_keys -%}\n                {{- '<|\"|>' + key + '<|\"|>' -}}\n            {%- else -%}\n                {{- key -}}\n            {%- endif -%}\n            :{{- format_argument(value, escape_keys=escape_keys) -}}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- elif argument is iterable and argument is not string -%}\n        {{- '[' -}}\n        {%- for item in argument -%}\n            {{- format_argument(item, escape_keys=escape_keys) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- ']' -}}\n    {%- else -%}\n        {{- argument -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_type_argument(type_value) -%}\n    {%- if type_value is none -%}\n        <|\"|>OBJECT<|\"|>\n    {%- elif type_value is string -%}\n        <|\"|>{{ type_value | upper }}<|\"|>\n    {%- elif type_value is iterable and type_value is not string -%}\n        [\n        {%- for item in type_value -%}\n            {%- if item is string -%}\n                <|\"|>{{ item | upper }}<|\"|>\n            {%- else -%}\n                {{- format_argument(item) -}}\n            {%- endif -%}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        ]\n    {%- else -%}\n        {{- format_argument(type_value) -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_parameters(properties, required, filter_keys=false) -%}\n    {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}\n    {%- set ns = namespace(found_first=false) -%}\n    {%- for key, value in properties | dictsort -%}\n        {%- if not filter_keys or key not in standard_keys -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {{ key }}:{\n            {%- set add_comma = false -%}\n            {%- if value is mapping -%}\n                {%- set vtype = value['type'] if 'type' in value and value['type'] else none -%}\n                {%- set is_string_type = (vtype is string and vtype | upper == 'STRING') or (vtype is iterable and vtype is not string and ('string' in vtype or 'STRING' in vtype)) -%}\n                {%- set is_array_type = (vtype is string and vtype | upper == 'ARRAY') or (vtype is iterable and vtype is not string and ('array' in vtype or 'ARRAY' in vtype)) -%}\n                {%- set is_object_type = (vtype is string and vtype | upper == 'OBJECT') or (vtype is iterable and vtype is not string and ('object' in vtype or 'OBJECT' in vtype)) -%}\n                {%- if 'description' in value and value['description'] -%}\n                    description:<|\"|>{{ value['description'] }}<|\"|>\n                    {%- set add_comma = true -%}\n                {%- endif -%}\n                {%- if is_string_type -%}\n                    {%- if 'enum' in value and value['enum'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        enum:{{ format_argument(value['enum']) }}\n                    {%- endif -%}\n                {%- elif is_array_type -%}\n                    {%- if 'items' in value and value['items'] is mapping and value['items'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        items:{\n                        {%- set ns_items = namespace(found_first=false) -%}\n                        {%- for item_key, item_value in value['items'] | dictsort -%}\n                            {%- if item_value is not none -%}\n                                {%- if ns_items.found_first %},{% endif -%}\n                                {%- set ns_items.found_first = true -%}\n                                {%- if item_key == 'properties' -%}\n                                    properties:{\n                                    {%- if item_value is mapping -%}\n                                        {{- format_parameters(item_value, value['items']['required'] if 'required' in value['items'] else []) -}}\n                                    {%- endif -%}\n                                    }\n                                {%- elif item_key == 'required' -%}\n                                    required:[\n                                    {%- for req_item in item_value -%}\n                                        <|\"|>{{- req_item -}}<|\"|>\n                                        {%- if not loop.last %},{% endif -%}\n                                    {%- endfor -%}\n                                    ]\n                                {%- elif item_key == 'type' -%}\n                                    type:{{ format_type_argument(item_value) }}\n                                {%- else -%}\n                                    {{ item_key }}:{{ format_argument(item_value) }}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        }\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if 'nullable' in value and value['nullable'] -%}\n                    {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                    nullable:true\n                {%- endif -%}\n                {%- if is_object_type or ('properties' in value and value['properties'] is mapping) -%}\n                    {%- if 'properties' in value and value['properties'] is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value['properties'], value['required'] if 'required' in value else []) -}}\n                        }\n                    {%- elif value is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value, value['required'] if 'required' in value else [], filter_keys=true) -}}\n                        }\n                    {%- endif -%}\n                    {%- if 'required' in value and value['required'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        required:[\n                        {%- for item in value['required'] -%}\n                            <|\"|>{{- item -}}<|\"|>\n                            {%- if not loop.last %},{% endif -%}\n                        {%- endfor -%}\n                        ]\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                type:{{ format_type_argument(vtype if vtype else 'object') }}\n            {%- else -%}\n                type:{{ format_type_argument('object') }}\n            {%- endif -%}\n            }\n        {%- endif -%}\n    {%- endfor -%}\n{%- endmacro -%}\n\n{%- macro format_function_declaration(tool_data) -%}\n    {%- set fn = tool_data['function'] if tool_data is mapping and 'function' in tool_data else tool_data -%}\n    {%- set tool_name = fn['name'] if fn is mapping and 'name' in fn and fn['name'] else 'unknown' -%}\n    {%- set tool_description = fn['description'] if fn is mapping and 'description' in fn and fn['description'] else '' -%}\n    declaration:{{- tool_name -}}{description:<|\"|>{{- tool_description -}}<|\"|>\n    {%- set params = none -%}\n    {%- if fn is mapping and 'parameters' in fn and fn['parameters'] -%}\n        {%- set params = fn['parameters'] -%}\n    {%- elif fn is mapping and 'input_schema' in fn and fn['input_schema'] -%}\n        {%- set params = fn['input_schema'] -%}\n    {%- elif fn is mapping and 'inputSchema' in fn and fn['inputSchema'] -%}\n        {%- set params = fn['inputSchema'] -%}\n    {%- endif -%}\n    {%- if params and params is mapping -%}\n        ,parameters:{\n        {%- if 'properties' in params and params['properties'] -%}\n            properties:{ {{- format_parameters(params['properties'], params['required'] if 'required' in params else []) -}} },\n        {%- endif -%}\n        {%- if 'required' in params and params['required'] -%}\n            required:[\n            {%- for item in params['required'] -%}\n                <|\"|>{{- item -}}<|\"|>\n                {{- ',' if not loop.last -}}\n            {%- endfor -%}\n            ],\n        {%- endif -%}\n        {%- if 'type' in params and params['type'] -%}\n            type:{{- format_type_argument(params['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    {%- if fn is mapping and 'response' in fn and fn['response'] is mapping -%}\n        {%- set response_declaration = fn['response'] -%}\n        ,response:{\n        {%- if 'description' in response_declaration and response_declaration['description'] -%}\n            description:<|\"|>{{- response_declaration['description'] -}}<|\"|>,\n        {%- endif -%}\n        {%- if 'type' in response_declaration and response_declaration['type'] -%}\n            type:{{- format_type_argument(response_declaration['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    }\n{%- endmacro -%}\n\n{%- macro strip_thinking(text) -%}\n    {{- text | trim -}}\n{%- endmacro -%}\n\n{%- macro format_tool_response_block(tool_name, response) -%}\n    {{- '<|tool_response>' -}}\n    {%- if response is mapping -%}\n        {{- 'response:' + tool_name + '{' -}}\n        {%- for key, value in response | dictsort -%}\n            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- else -%}\n        {{- 'response:' + tool_name + '{value:' + format_argument(response, escape_keys=False) + '}' -}}\n    {%- endif -%}\n    {{- '<tool_response|>' -}}\n{%- endmacro -%}\n\n{#- ===== SETUP ===== -#}\n{%- set ns = namespace(prev_message_type=None, prev_non_tool_role=None) -%}\n{%- set loop_messages = messages -%}\n{%- set enable_thinking = enable_thinking if enable_thinking is defined else false -%}\n{%- set preserve_thinking = preserve_thinking if preserve_thinking is defined else true -%}\n{{- bos_token -}}\n{#- Handle System/Tool Definitions Block -#}\n{%- if enable_thinking or (tools is defined and tools) or (messages and messages[0]['role'] in ['system', 'developer']) -%}\n    {{- '<|turn>system\\n' -}}\n    {#- Inject Thinking token at the very top of the FIRST system turn -#}\n    {%- if enable_thinking -%}\n        {{- '<|think|>\\n' -}}\n        {%- set ns.prev_message_type = 'think' -%}\n    {%- endif -%}\n    {%- if messages and messages[0]['role'] in ['system', 'developer'] -%}\n        {%- if messages[0]['content'] is string -%}\n            {{- messages[0]['content'] | trim -}}\n        {%- elif messages[0]['content'] is iterable and messages[0]['content'] is not string -%}\n            {%- for item in messages[0]['content'] -%}\n                {%- if item is mapping and 'text' in item -%}{{- item['text'] | trim + ' '-}}{%- endif -%}\n            {%- endfor -%}\n        {%- endif -%}\n        {%- set loop_messages = messages[1:] -%}\n    {%- endif -%}\n    {%- if tools is defined and tools -%}\n        {%- for tool in tools %}\n            {{- '<|tool>' -}}\n            {{- format_function_declaration(tool) | trim -}}\n            {{- '<tool|>' -}}\n        {%- endfor %}\n        {%- set ns.prev_message_type = 'tool' -%}\n    {%- endif -%}\n    {{- '<turn|>\\n' -}}\n{%- endif %}\n\n{#- Pre-scan: find last user message index for reasoning guard -#}\n{%- set ns_turn = namespace(last_user_idx=-1) -%}\n{%- for i in range(loop_messages | length) -%}\n    {%- if loop_messages[i]['role'] == 'user' -%}\n        {%- set ns_turn.last_user_idx = i -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{#- Loop through messages -#}\n{%- for message in loop_messages -%}\n    {%- if message['role'] != 'tool' -%}\n    {%- set ns.prev_message_type = None -%}\n    {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}\n    {%- set message_has_tool_calls = ('tool_calls' in message and message['tool_calls']) -%}\n    {#- Detect continuation using tracked state — O(1) instead of O(n) backward scan -#}\n    {%- set continue_same_model_turn = (role == 'model' and ns.prev_non_tool_role == 'assistant') -%}\n    {%- if not continue_same_model_turn -%}\n        {{- '<|turn>' + role + '\\n' }}\n    {%- endif -%}\n\n    {#- Render reasoning/reasoning_content as thinking channel (tool-call turns only) -#}\n    {%- set thinking_ns = namespace(text='') -%}\n    {%- if 'reasoning' in message and message['reasoning'] -%}\n        {%- set thinking_ns.text = message['reasoning'] -%}\n    {%- elif 'reasoning_content' in message and message['reasoning_content'] -%}\n        {%- set thinking_ns.text = message['reasoning_content'] -%}\n    {%- endif -%}\n    {%- set thinking_gate = (loop.index0 > ns_turn.last_user_idx) or preserve_thinking -%}\n    {%- if thinking_ns.text and thinking_gate and message_has_tool_calls -%}\n        {{- '<|channel>thought\\n' + thinking_ns.text + '\\n<channel|>' -}}\n    {%- endif -%}\n\n            {%- if message_has_tool_calls -%}\n                {%- for tool_call in message['tool_calls'] -%}\n                    {%- set function = tool_call['function'] if tool_call is mapping and 'function' in tool_call else tool_call -%}\n                    {%- set function_name = function['name'] if function is mapping and 'name' in function and function['name'] else 'unknown' -%}\n                    {{- '<|tool_call>call:' + function_name + '{' -}}\n                    {%- if function is mapping and 'arguments' in function and function['arguments'] is mapping -%}\n                        {%- set ns_args = namespace(found_first=false) -%}\n                        {%- for key, value in function['arguments'] | dictsort -%}\n                            {%- if ns_args.found_first %},{% endif -%}\n                            {%- set ns_args.found_first = true -%}\n                            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n                        {%- endfor -%}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is string -%}\n                        {{- function['arguments'] -}}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is not none -%}\n                        {{- format_argument(function['arguments'], escape_keys=False) -}}\n                    {%- endif -%}\n                    {{- '}<tool_call|>' -}}\n                {%- endfor -%}\n                {%- set ns.prev_message_type = 'tool_call' -%}\n            {%- endif -%}\n\n            {%- set ns_tr_out = namespace(flag=false) -%}\n            {%- if 'tool_responses' in message and message['tool_responses'] -%}\n                {#- Legacy: tool_responses embedded on the assistant message (Google/Gemma native) -#}\n                {%- for tool_response in message['tool_responses'] -%}\n                    {%- set tr_name = tool_response['name'] if tool_response is mapping and 'name' in tool_response and tool_response['name'] else 'unknown' -%}\n                    {%- set tr_response = tool_response['response'] if tool_response is mapping and 'response' in tool_response else '' -%}\n                    {{- format_tool_response_block(tr_name, tr_response) -}}\n                    {%- set ns_tr_out.flag = true -%}\n                    {%- set ns.prev_message_type = 'tool_response' -%}\n                {%- endfor -%}\n            {%- elif message_has_tool_calls -%}\n                {#- OpenAI Chat Completions: forward-scan consecutive role:tool messages -#}\n                {%- set ns_tool_scan = namespace(stopped=false) -%}\n                {%- for k in range(loop.index0 + 1, loop_messages | length) -%}\n                    {%- if ns_tool_scan.stopped -%}\n                    {%- elif loop_messages[k]['role'] != 'tool' -%}\n                        {%- set ns_tool_scan.stopped = true -%}\n                    {%- else -%}\n                        {%- set follow = loop_messages[k] -%}\n                        {#- Resolve tool_call_id to function name -#}\n                        {%- set ns_tname = namespace(name='unknown') -%}\n                        {%- if 'name' in follow and follow['name'] -%}\n                            {%- set ns_tname.name = follow['name'] -%}\n                        {%- endif -%}\n                        {%- for tc in message['tool_calls'] -%}\n                            {%- if tc is mapping and 'id' in tc and 'tool_call_id' in follow and tc['id'] == follow['tool_call_id'] -%}\n                                {%- if 'function' in tc and 'name' in tc['function'] and tc['function']['name'] -%}\n                                    {%- set ns_tname.name = tc['function']['name'] -%}\n                                {%- elif 'name' in tc and tc['name'] -%}\n                                    {%- set ns_tname.name = tc['name'] -%}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        {#- Handle content as string, object, or content-parts array -#}\n                        {%- set tool_body = follow['content'] if 'content' in follow else '' -%}\n                        {%- if tool_body is string -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is mapping -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is iterable and tool_body is not string -%}\n                            {%- set ns_txt = namespace(s='') -%}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] == 'text' and 'text' in part -%}\n                                    {%- set ns_txt.s = ns_txt.s + part['text'] -%}\n                                {%- endif -%}\n                            {%- endfor -%}\n                            {{- format_tool_response_block(ns_tname.name, ns_txt.s) -}}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] in ['image', 'image_url'] -%}\n                                    {{- '<|image|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] in ['audio', 'input_audio'] -%}\n                                    {{- '<|audio|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] == 'video' -%}\n                                    {{- '<|video|>' -}}\n                                {%- endif -%}\n                            {%- endfor -%}\n                        {%- else -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- endif -%}\n                        {%- set ns_tr_out.flag = true -%}\n                        {%- set ns.prev_message_type = 'tool_response' -%}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n\n            {%- set captured_content -%}\n            {%- if 'content' in message and message['content'] is string -%}\n                {%- if role == 'model' -%}\n                    {{- strip_thinking(message['content']) -}}\n                {%- else -%}\n                    {{- message['content'] | trim -}}\n                {%- endif -%}\n            {%- elif 'content' in message and message['content'] is iterable and message['content'] is not string -%}\n                {%- for item in message['content'] -%}\n                    {%- if item is mapping and 'type' in item and item['type'] == 'text' and 'text' in item -%}\n                        {%- if role == 'model' -%}\n                            {{- strip_thinking(item['text']) -}}\n                        {%- else -%}\n                            {{- item['text'] | trim -}}\n                        {%- endif -%}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['image', 'image_url'] -%}\n                        {{- '<|image|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['audio', 'input_audio'] -%}\n                        {{- '<|audio|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] == 'video' -%}\n                        {{- '<|video|>' -}}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n            {%- endset -%}\n\n            {{- captured_content -}}\n            {%- set has_content = captured_content | trim | length > 0 -%}\n\n        {#- Forward-scan: find next non-tool message role for continuation detection -#}\n        {%- set next_nt = namespace(role=None, found=false) -%}\n        {%- for j in range(loop.index0 + 1, loop_messages | length) -%}\n            {%- if not next_nt.found -%}\n                {%- if loop_messages[j]['role'] != 'tool' -%}\n                    {%- set next_nt.role = loop_messages[j]['role'] -%}\n                    {%- set next_nt.found = true -%}\n                {%- endif -%}\n            {%- endif -%}\n        {%- endfor -%}\n\n        {%- set continues_into_next = (\n            role == 'model'\n            and next_nt.role == 'assistant'\n            and not message_has_tool_calls\n            and not ns_tr_out.flag\n        ) -%}\n\n        {%- if ns.prev_message_type == 'tool_call' and not ns_tr_out.flag -%}\n            {{- '<|tool_response>' -}}\n        {%- elif continues_into_next -%}\n            {{- '\\n' -}}\n        {%- elif not (ns_tr_out.flag and not has_content) -%}\n            {{- '<turn|>\\n' -}}\n        {%- endif -%}\n\n    {#- Track previous non-tool role for next iteration (avoids O(n) backward scan) -#}\n    {%- set ns.prev_non_tool_role = message['role'] -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{%- if add_generation_prompt is defined and add_generation_prompt -%}\n    {%- if ns.prev_message_type != 'tool_response' and ns.prev_message_type != 'tool_call' -%}\n        {{- '<|turn>model\\n' -}}\n    {%- endif -%}\n\n    {%- if not enable_thinking -%}\n        {#- Suppress thinking — but not when awaiting tool responses -#}\n        {%- if ns.prev_message_type != 'tool_call' -%}\n            {{- '<|channel>thought\\n<channel|>' -}}\n        {%- endif -%}\n    {%- endif -%}\n{%- endif -%}\n",
    "context_length": 262144,
    "eos_token": "<eos>",
    "total": 25233142046,
    "totalFileSize": 14329791488
  },
  "id": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "lastModified": "2026-09-10T23:30:11.000Z",
  "likes": 1,
  "model-index": null,
  "modelId": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "pipeline_tag": "text-generation",
  "private": false,
  "sha": "d3b1db852eb4d3575801663033c4676231ceb65d",
  "siblings": [
    {
      "rfilename": ".eval_results/aime_2026.yaml"
    },
    {
      "rfilename": ".gitattributes"
    },
    {
      "rfilename": "README.md"
    },
    {
      "rfilename": "mmproj-BF16.gguf"
    },
    {
      "rfilename": "obsidian-alpha-26B_q4_0-it.gguf"
    }
  ],
  "spaces": [],
  "tags": [
    "gguf",
    "gemma4",
    "q4_0",
    "moe",
    "text-generation",
    "llama-cpp",
    "ko",
    "en",
    "zh",
    "ja",
    "fr",
    "de",
    "es",
    "it",
    "ru",
    "ar",
    "hi",
    "pt",
    "vi",
    "th",
    "id",
    "nl",
    "da",
    "pl",
    "tr",
    "base_model:google/gemma-4-26B-A4B",
    "base_model:finetune:google/gemma-4-26B-A4B",
    "license:apache-2.0",
    "eval-results",
    "endpoints_compatible",
    "region:us",
    "conversational"
  ],
  "usedStorage": 15524620672
}
likes1
receipt
Source
Hugging Face models
Its words
1
Read by
field:likes
Said since
2026-10-03 18:10 UTC
Last answered
2026-10-05 12:27 UTC
Original
open at the source
2026-10-03 18:10 UTC1
2026-10-02 12:02 UTC0
What the source handed over
{
  "_asked": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "_id": "6aa32e1d1e8778f33b85d1dd",
  "author": "0x795E2795",
  "cardData": {
    "base_model": [
      "google/gemma-4-26B-A4B"
    ],
    "base_model_relation": "finetune",
    "language": [
      "ko",
      "en",
      "zh",
      "ja",
      "fr",
      "de",
      "es",
      "it",
      "ru",
      "ar",
      "hi",
      "pt",
      "vi",
      "th",
      "id",
      "nl",
      "da",
      "pl",
      "tr"
    ],
    "license": "apache-2.0",
    "pipeline_tag": "text-generation",
    "tags": [
      "gemma4",
      "gguf",
      "q4_0",
      "moe",
      "text-generation",
      "llama-cpp"
    ]
  },
  "config": {},
  "createdAt": "2026-09-10T22:24:29.000Z",
  "disabled": false,
  "downloads": 518,
  "gated": false,
  "gguf": {
    "architecture": "gemma4",
    "bos_token": "<bos>",
    "chat_template": "{%- macro format_argument(argument, escape_keys=True) -%}\n    {%- if argument is none -%}\n        {{- 'null' -}}\n    {%- elif argument is string -%}\n        {{- '<|\"|>' + argument + '<|\"|>' -}}\n    {%- elif argument is boolean -%}\n        {{- 'true' if argument else 'false' -}}\n    {%- elif argument is mapping -%}\n        {{- '{' -}}\n        {%- set ns = namespace(found_first=false) -%}\n        {%- for key, value in argument | dictsort -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {%- if escape_keys -%}\n                {{- '<|\"|>' + key + '<|\"|>' -}}\n            {%- else -%}\n                {{- key -}}\n            {%- endif -%}\n            :{{- format_argument(value, escape_keys=escape_keys) -}}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- elif argument is iterable and argument is not string -%}\n        {{- '[' -}}\n        {%- for item in argument -%}\n            {{- format_argument(item, escape_keys=escape_keys) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- ']' -}}\n    {%- else -%}\n        {{- argument -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_type_argument(type_value) -%}\n    {%- if type_value is none -%}\n        <|\"|>OBJECT<|\"|>\n    {%- elif type_value is string -%}\n        <|\"|>{{ type_value | upper }}<|\"|>\n    {%- elif type_value is iterable and type_value is not string -%}\n        [\n        {%- for item in type_value -%}\n            {%- if item is string -%}\n                <|\"|>{{ item | upper }}<|\"|>\n            {%- else -%}\n                {{- format_argument(item) -}}\n            {%- endif -%}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        ]\n    {%- else -%}\n        {{- format_argument(type_value) -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_parameters(properties, required, filter_keys=false) -%}\n    {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}\n    {%- set ns = namespace(found_first=false) -%}\n    {%- for key, value in properties | dictsort -%}\n        {%- if not filter_keys or key not in standard_keys -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {{ key }}:{\n            {%- set add_comma = false -%}\n            {%- if value is mapping -%}\n                {%- set vtype = value['type'] if 'type' in value and value['type'] else none -%}\n                {%- set is_string_type = (vtype is string and vtype | upper == 'STRING') or (vtype is iterable and vtype is not string and ('string' in vtype or 'STRING' in vtype)) -%}\n                {%- set is_array_type = (vtype is string and vtype | upper == 'ARRAY') or (vtype is iterable and vtype is not string and ('array' in vtype or 'ARRAY' in vtype)) -%}\n                {%- set is_object_type = (vtype is string and vtype | upper == 'OBJECT') or (vtype is iterable and vtype is not string and ('object' in vtype or 'OBJECT' in vtype)) -%}\n                {%- if 'description' in value and value['description'] -%}\n                    description:<|\"|>{{ value['description'] }}<|\"|>\n                    {%- set add_comma = true -%}\n                {%- endif -%}\n                {%- if is_string_type -%}\n                    {%- if 'enum' in value and value['enum'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        enum:{{ format_argument(value['enum']) }}\n                    {%- endif -%}\n                {%- elif is_array_type -%}\n                    {%- if 'items' in value and value['items'] is mapping and value['items'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        items:{\n                        {%- set ns_items = namespace(found_first=false) -%}\n                        {%- for item_key, item_value in value['items'] | dictsort -%}\n                            {%- if item_value is not none -%}\n                                {%- if ns_items.found_first %},{% endif -%}\n                                {%- set ns_items.found_first = true -%}\n                                {%- if item_key == 'properties' -%}\n                                    properties:{\n                                    {%- if item_value is mapping -%}\n                                        {{- format_parameters(item_value, value['items']['required'] if 'required' in value['items'] else []) -}}\n                                    {%- endif -%}\n                                    }\n                                {%- elif item_key == 'required' -%}\n                                    required:[\n                                    {%- for req_item in item_value -%}\n                                        <|\"|>{{- req_item -}}<|\"|>\n                                        {%- if not loop.last %},{% endif -%}\n                                    {%- endfor -%}\n                                    ]\n                                {%- elif item_key == 'type' -%}\n                                    type:{{ format_type_argument(item_value) }}\n                                {%- else -%}\n                                    {{ item_key }}:{{ format_argument(item_value) }}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        }\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if 'nullable' in value and value['nullable'] -%}\n                    {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                    nullable:true\n                {%- endif -%}\n                {%- if is_object_type or ('properties' in value and value['properties'] is mapping) -%}\n                    {%- if 'properties' in value and value['properties'] is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value['properties'], value['required'] if 'required' in value else []) -}}\n                        }\n                    {%- elif value is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value, value['required'] if 'required' in value else [], filter_keys=true) -}}\n                        }\n                    {%- endif -%}\n                    {%- if 'required' in value and value['required'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        required:[\n                        {%- for item in value['required'] -%}\n                            <|\"|>{{- item -}}<|\"|>\n                            {%- if not loop.last %},{% endif -%}\n                        {%- endfor -%}\n                        ]\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                type:{{ format_type_argument(vtype if vtype else 'object') }}\n            {%- else -%}\n                type:{{ format_type_argument('object') }}\n            {%- endif -%}\n            }\n        {%- endif -%}\n    {%- endfor -%}\n{%- endmacro -%}\n\n{%- macro format_function_declaration(tool_data) -%}\n    {%- set fn = tool_data['function'] if tool_data is mapping and 'function' in tool_data else tool_data -%}\n    {%- set tool_name = fn['name'] if fn is mapping and 'name' in fn and fn['name'] else 'unknown' -%}\n    {%- set tool_description = fn['description'] if fn is mapping and 'description' in fn and fn['description'] else '' -%}\n    declaration:{{- tool_name -}}{description:<|\"|>{{- tool_description -}}<|\"|>\n    {%- set params = none -%}\n    {%- if fn is mapping and 'parameters' in fn and fn['parameters'] -%}\n        {%- set params = fn['parameters'] -%}\n    {%- elif fn is mapping and 'input_schema' in fn and fn['input_schema'] -%}\n        {%- set params = fn['input_schema'] -%}\n    {%- elif fn is mapping and 'inputSchema' in fn and fn['inputSchema'] -%}\n        {%- set params = fn['inputSchema'] -%}\n    {%- endif -%}\n    {%- if params and params is mapping -%}\n        ,parameters:{\n        {%- if 'properties' in params and params['properties'] -%}\n            properties:{ {{- format_parameters(params['properties'], params['required'] if 'required' in params else []) -}} },\n        {%- endif -%}\n        {%- if 'required' in params and params['required'] -%}\n            required:[\n            {%- for item in params['required'] -%}\n                <|\"|>{{- item -}}<|\"|>\n                {{- ',' if not loop.last -}}\n            {%- endfor -%}\n            ],\n        {%- endif -%}\n        {%- if 'type' in params and params['type'] -%}\n            type:{{- format_type_argument(params['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    {%- if fn is mapping and 'response' in fn and fn['response'] is mapping -%}\n        {%- set response_declaration = fn['response'] -%}\n        ,response:{\n        {%- if 'description' in response_declaration and response_declaration['description'] -%}\n            description:<|\"|>{{- response_declaration['description'] -}}<|\"|>,\n        {%- endif -%}\n        {%- if 'type' in response_declaration and response_declaration['type'] -%}\n            type:{{- format_type_argument(response_declaration['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    }\n{%- endmacro -%}\n\n{%- macro strip_thinking(text) -%}\n    {{- text | trim -}}\n{%- endmacro -%}\n\n{%- macro format_tool_response_block(tool_name, response) -%}\n    {{- '<|tool_response>' -}}\n    {%- if response is mapping -%}\n        {{- 'response:' + tool_name + '{' -}}\n        {%- for key, value in response | dictsort -%}\n            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- else -%}\n        {{- 'response:' + tool_name + '{value:' + format_argument(response, escape_keys=False) + '}' -}}\n    {%- endif -%}\n    {{- '<tool_response|>' -}}\n{%- endmacro -%}\n\n{#- ===== SETUP ===== -#}\n{%- set ns = namespace(prev_message_type=None, prev_non_tool_role=None) -%}\n{%- set loop_messages = messages -%}\n{%- set enable_thinking = enable_thinking if enable_thinking is defined else false -%}\n{%- set preserve_thinking = preserve_thinking if preserve_thinking is defined else true -%}\n{{- bos_token -}}\n{#- Handle System/Tool Definitions Block -#}\n{%- if enable_thinking or (tools is defined and tools) or (messages and messages[0]['role'] in ['system', 'developer']) -%}\n    {{- '<|turn>system\\n' -}}\n    {#- Inject Thinking token at the very top of the FIRST system turn -#}\n    {%- if enable_thinking -%}\n        {{- '<|think|>\\n' -}}\n        {%- set ns.prev_message_type = 'think' -%}\n    {%- endif -%}\n    {%- if messages and messages[0]['role'] in ['system', 'developer'] -%}\n        {%- if messages[0]['content'] is string -%}\n            {{- messages[0]['content'] | trim -}}\n        {%- elif messages[0]['content'] is iterable and messages[0]['content'] is not string -%}\n            {%- for item in messages[0]['content'] -%}\n                {%- if item is mapping and 'text' in item -%}{{- item['text'] | trim + ' '-}}{%- endif -%}\n            {%- endfor -%}\n        {%- endif -%}\n        {%- set loop_messages = messages[1:] -%}\n    {%- endif -%}\n    {%- if tools is defined and tools -%}\n        {%- for tool in tools %}\n            {{- '<|tool>' -}}\n            {{- format_function_declaration(tool) | trim -}}\n            {{- '<tool|>' -}}\n        {%- endfor %}\n        {%- set ns.prev_message_type = 'tool' -%}\n    {%- endif -%}\n    {{- '<turn|>\\n' -}}\n{%- endif %}\n\n{#- Pre-scan: find last user message index for reasoning guard -#}\n{%- set ns_turn = namespace(last_user_idx=-1) -%}\n{%- for i in range(loop_messages | length) -%}\n    {%- if loop_messages[i]['role'] == 'user' -%}\n        {%- set ns_turn.last_user_idx = i -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{#- Loop through messages -#}\n{%- for message in loop_messages -%}\n    {%- if message['role'] != 'tool' -%}\n    {%- set ns.prev_message_type = None -%}\n    {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}\n    {%- set message_has_tool_calls = ('tool_calls' in message and message['tool_calls']) -%}\n    {#- Detect continuation using tracked state — O(1) instead of O(n) backward scan -#}\n    {%- set continue_same_model_turn = (role == 'model' and ns.prev_non_tool_role == 'assistant') -%}\n    {%- if not continue_same_model_turn -%}\n        {{- '<|turn>' + role + '\\n' }}\n    {%- endif -%}\n\n    {#- Render reasoning/reasoning_content as thinking channel (tool-call turns only) -#}\n    {%- set thinking_ns = namespace(text='') -%}\n    {%- if 'reasoning' in message and message['reasoning'] -%}\n        {%- set thinking_ns.text = message['reasoning'] -%}\n    {%- elif 'reasoning_content' in message and message['reasoning_content'] -%}\n        {%- set thinking_ns.text = message['reasoning_content'] -%}\n    {%- endif -%}\n    {%- set thinking_gate = (loop.index0 > ns_turn.last_user_idx) or preserve_thinking -%}\n    {%- if thinking_ns.text and thinking_gate and message_has_tool_calls -%}\n        {{- '<|channel>thought\\n' + thinking_ns.text + '\\n<channel|>' -}}\n    {%- endif -%}\n\n            {%- if message_has_tool_calls -%}\n                {%- for tool_call in message['tool_calls'] -%}\n                    {%- set function = tool_call['function'] if tool_call is mapping and 'function' in tool_call else tool_call -%}\n                    {%- set function_name = function['name'] if function is mapping and 'name' in function and function['name'] else 'unknown' -%}\n                    {{- '<|tool_call>call:' + function_name + '{' -}}\n                    {%- if function is mapping and 'arguments' in function and function['arguments'] is mapping -%}\n                        {%- set ns_args = namespace(found_first=false) -%}\n                        {%- for key, value in function['arguments'] | dictsort -%}\n                            {%- if ns_args.found_first %},{% endif -%}\n                            {%- set ns_args.found_first = true -%}\n                            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n                        {%- endfor -%}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is string -%}\n                        {{- function['arguments'] -}}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is not none -%}\n                        {{- format_argument(function['arguments'], escape_keys=False) -}}\n                    {%- endif -%}\n                    {{- '}<tool_call|>' -}}\n                {%- endfor -%}\n                {%- set ns.prev_message_type = 'tool_call' -%}\n            {%- endif -%}\n\n            {%- set ns_tr_out = namespace(flag=false) -%}\n            {%- if 'tool_responses' in message and message['tool_responses'] -%}\n                {#- Legacy: tool_responses embedded on the assistant message (Google/Gemma native) -#}\n                {%- for tool_response in message['tool_responses'] -%}\n                    {%- set tr_name = tool_response['name'] if tool_response is mapping and 'name' in tool_response and tool_response['name'] else 'unknown' -%}\n                    {%- set tr_response = tool_response['response'] if tool_response is mapping and 'response' in tool_response else '' -%}\n                    {{- format_tool_response_block(tr_name, tr_response) -}}\n                    {%- set ns_tr_out.flag = true -%}\n                    {%- set ns.prev_message_type = 'tool_response' -%}\n                {%- endfor -%}\n            {%- elif message_has_tool_calls -%}\n                {#- OpenAI Chat Completions: forward-scan consecutive role:tool messages -#}\n                {%- set ns_tool_scan = namespace(stopped=false) -%}\n                {%- for k in range(loop.index0 + 1, loop_messages | length) -%}\n                    {%- if ns_tool_scan.stopped -%}\n                    {%- elif loop_messages[k]['role'] != 'tool' -%}\n                        {%- set ns_tool_scan.stopped = true -%}\n                    {%- else -%}\n                        {%- set follow = loop_messages[k] -%}\n                        {#- Resolve tool_call_id to function name -#}\n                        {%- set ns_tname = namespace(name='unknown') -%}\n                        {%- if 'name' in follow and follow['name'] -%}\n                            {%- set ns_tname.name = follow['name'] -%}\n                        {%- endif -%}\n                        {%- for tc in message['tool_calls'] -%}\n                            {%- if tc is mapping and 'id' in tc and 'tool_call_id' in follow and tc['id'] == follow['tool_call_id'] -%}\n                                {%- if 'function' in tc and 'name' in tc['function'] and tc['function']['name'] -%}\n                                    {%- set ns_tname.name = tc['function']['name'] -%}\n                                {%- elif 'name' in tc and tc['name'] -%}\n                                    {%- set ns_tname.name = tc['name'] -%}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        {#- Handle content as string, object, or content-parts array -#}\n                        {%- set tool_body = follow['content'] if 'content' in follow else '' -%}\n                        {%- if tool_body is string -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is mapping -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is iterable and tool_body is not string -%}\n                            {%- set ns_txt = namespace(s='') -%}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] == 'text' and 'text' in part -%}\n                                    {%- set ns_txt.s = ns_txt.s + part['text'] -%}\n                                {%- endif -%}\n                            {%- endfor -%}\n                            {{- format_tool_response_block(ns_tname.name, ns_txt.s) -}}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] in ['image', 'image_url'] -%}\n                                    {{- '<|image|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] in ['audio', 'input_audio'] -%}\n                                    {{- '<|audio|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] == 'video' -%}\n                                    {{- '<|video|>' -}}\n                                {%- endif -%}\n                            {%- endfor -%}\n                        {%- else -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- endif -%}\n                        {%- set ns_tr_out.flag = true -%}\n                        {%- set ns.prev_message_type = 'tool_response' -%}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n\n            {%- set captured_content -%}\n            {%- if 'content' in message and message['content'] is string -%}\n                {%- if role == 'model' -%}\n                    {{- strip_thinking(message['content']) -}}\n                {%- else -%}\n                    {{- message['content'] | trim -}}\n                {%- endif -%}\n            {%- elif 'content' in message and message['content'] is iterable and message['content'] is not string -%}\n                {%- for item in message['content'] -%}\n                    {%- if item is mapping and 'type' in item and item['type'] == 'text' and 'text' in item -%}\n                        {%- if role == 'model' -%}\n                            {{- strip_thinking(item['text']) -}}\n                        {%- else -%}\n                            {{- item['text'] | trim -}}\n                        {%- endif -%}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['image', 'image_url'] -%}\n                        {{- '<|image|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['audio', 'input_audio'] -%}\n                        {{- '<|audio|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] == 'video' -%}\n                        {{- '<|video|>' -}}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n            {%- endset -%}\n\n            {{- captured_content -}}\n            {%- set has_content = captured_content | trim | length > 0 -%}\n\n        {#- Forward-scan: find next non-tool message role for continuation detection -#}\n        {%- set next_nt = namespace(role=None, found=false) -%}\n        {%- for j in range(loop.index0 + 1, loop_messages | length) -%}\n            {%- if not next_nt.found -%}\n                {%- if loop_messages[j]['role'] != 'tool' -%}\n                    {%- set next_nt.role = loop_messages[j]['role'] -%}\n                    {%- set next_nt.found = true -%}\n                {%- endif -%}\n            {%- endif -%}\n        {%- endfor -%}\n\n        {%- set continues_into_next = (\n            role == 'model'\n            and next_nt.role == 'assistant'\n            and not message_has_tool_calls\n            and not ns_tr_out.flag\n        ) -%}\n\n        {%- if ns.prev_message_type == 'tool_call' and not ns_tr_out.flag -%}\n            {{- '<|tool_response>' -}}\n        {%- elif continues_into_next -%}\n            {{- '\\n' -}}\n        {%- elif not (ns_tr_out.flag and not has_content) -%}\n            {{- '<turn|>\\n' -}}\n        {%- endif -%}\n\n    {#- Track previous non-tool role for next iteration (avoids O(n) backward scan) -#}\n    {%- set ns.prev_non_tool_role = message['role'] -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{%- if add_generation_prompt is defined and add_generation_prompt -%}\n    {%- if ns.prev_message_type != 'tool_response' and ns.prev_message_type != 'tool_call' -%}\n        {{- '<|turn>model\\n' -}}\n    {%- endif -%}\n\n    {%- if not enable_thinking -%}\n        {#- Suppress thinking — but not when awaiting tool responses -#}\n        {%- if ns.prev_message_type != 'tool_call' -%}\n            {{- '<|channel>thought\\n<channel|>' -}}\n        {%- endif -%}\n    {%- endif -%}\n{%- endif -%}\n",
    "context_length": 262144,
    "eos_token": "<eos>",
    "total": 25233142046,
    "totalFileSize": 14329791488
  },
  "id": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "lastModified": "2026-09-10T23:30:11.000Z",
  "likes": 1,
  "model-index": null,
  "modelId": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "pipeline_tag": "text-generation",
  "private": false,
  "sha": "d3b1db852eb4d3575801663033c4676231ceb65d",
  "siblings": [
    {
      "rfilename": ".eval_results/aime_2026.yaml"
    },
    {
      "rfilename": ".gitattributes"
    },
    {
      "rfilename": "README.md"
    },
    {
      "rfilename": "mmproj-BF16.gguf"
    },
    {
      "rfilename": "obsidian-alpha-26B_q4_0-it.gguf"
    }
  ],
  "spaces": [],
  "tags": [
    "gguf",
    "gemma4",
    "q4_0",
    "moe",
    "text-generation",
    "llama-cpp",
    "ko",
    "en",
    "zh",
    "ja",
    "fr",
    "de",
    "es",
    "it",
    "ru",
    "ar",
    "hi",
    "pt",
    "vi",
    "th",
    "id",
    "nl",
    "da",
    "pl",
    "tr",
    "base_model:google/gemma-4-26B-A4B",
    "base_model:finetune:google/gemma-4-26B-A4B",
    "license:apache-2.0",
    "eval-results",
    "endpoints_compatible",
    "region:us",
    "conversational"
  ],
  "usedStorage": 15524620672
}
tasktext-generation
receipt
Source
Hugging Face models
Its words
text-generation
Read by
field:pipeline_tag
Said since
2026-10-02 12:02 UTC
Last answered
2026-10-05 12:27 UTC
Original
open at the source
What the source handed over
{
  "_asked": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "_id": "6aa32e1d1e8778f33b85d1dd",
  "author": "0x795E2795",
  "cardData": {
    "base_model": [
      "google/gemma-4-26B-A4B"
    ],
    "base_model_relation": "finetune",
    "language": [
      "ko",
      "en",
      "zh",
      "ja",
      "fr",
      "de",
      "es",
      "it",
      "ru",
      "ar",
      "hi",
      "pt",
      "vi",
      "th",
      "id",
      "nl",
      "da",
      "pl",
      "tr"
    ],
    "license": "apache-2.0",
    "pipeline_tag": "text-generation",
    "tags": [
      "gemma4",
      "gguf",
      "q4_0",
      "moe",
      "text-generation",
      "llama-cpp"
    ]
  },
  "config": {},
  "createdAt": "2026-09-10T22:24:29.000Z",
  "disabled": false,
  "downloads": 518,
  "gated": false,
  "gguf": {
    "architecture": "gemma4",
    "bos_token": "<bos>",
    "chat_template": "{%- macro format_argument(argument, escape_keys=True) -%}\n    {%- if argument is none -%}\n        {{- 'null' -}}\n    {%- elif argument is string -%}\n        {{- '<|\"|>' + argument + '<|\"|>' -}}\n    {%- elif argument is boolean -%}\n        {{- 'true' if argument else 'false' -}}\n    {%- elif argument is mapping -%}\n        {{- '{' -}}\n        {%- set ns = namespace(found_first=false) -%}\n        {%- for key, value in argument | dictsort -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {%- if escape_keys -%}\n                {{- '<|\"|>' + key + '<|\"|>' -}}\n            {%- else -%}\n                {{- key -}}\n            {%- endif -%}\n            :{{- format_argument(value, escape_keys=escape_keys) -}}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- elif argument is iterable and argument is not string -%}\n        {{- '[' -}}\n        {%- for item in argument -%}\n            {{- format_argument(item, escape_keys=escape_keys) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- ']' -}}\n    {%- else -%}\n        {{- argument -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_type_argument(type_value) -%}\n    {%- if type_value is none -%}\n        <|\"|>OBJECT<|\"|>\n    {%- elif type_value is string -%}\n        <|\"|>{{ type_value | upper }}<|\"|>\n    {%- elif type_value is iterable and type_value is not string -%}\n        [\n        {%- for item in type_value -%}\n            {%- if item is string -%}\n                <|\"|>{{ item | upper }}<|\"|>\n            {%- else -%}\n                {{- format_argument(item) -}}\n            {%- endif -%}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        ]\n    {%- else -%}\n        {{- format_argument(type_value) -}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro format_parameters(properties, required, filter_keys=false) -%}\n    {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}\n    {%- set ns = namespace(found_first=false) -%}\n    {%- for key, value in properties | dictsort -%}\n        {%- if not filter_keys or key not in standard_keys -%}\n            {%- if ns.found_first %},{% endif -%}\n            {%- set ns.found_first = true -%}\n            {{ key }}:{\n            {%- set add_comma = false -%}\n            {%- if value is mapping -%}\n                {%- set vtype = value['type'] if 'type' in value and value['type'] else none -%}\n                {%- set is_string_type = (vtype is string and vtype | upper == 'STRING') or (vtype is iterable and vtype is not string and ('string' in vtype or 'STRING' in vtype)) -%}\n                {%- set is_array_type = (vtype is string and vtype | upper == 'ARRAY') or (vtype is iterable and vtype is not string and ('array' in vtype or 'ARRAY' in vtype)) -%}\n                {%- set is_object_type = (vtype is string and vtype | upper == 'OBJECT') or (vtype is iterable and vtype is not string and ('object' in vtype or 'OBJECT' in vtype)) -%}\n                {%- if 'description' in value and value['description'] -%}\n                    description:<|\"|>{{ value['description'] }}<|\"|>\n                    {%- set add_comma = true -%}\n                {%- endif -%}\n                {%- if is_string_type -%}\n                    {%- if 'enum' in value and value['enum'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        enum:{{ format_argument(value['enum']) }}\n                    {%- endif -%}\n                {%- elif is_array_type -%}\n                    {%- if 'items' in value and value['items'] is mapping and value['items'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        items:{\n                        {%- set ns_items = namespace(found_first=false) -%}\n                        {%- for item_key, item_value in value['items'] | dictsort -%}\n                            {%- if item_value is not none -%}\n                                {%- if ns_items.found_first %},{% endif -%}\n                                {%- set ns_items.found_first = true -%}\n                                {%- if item_key == 'properties' -%}\n                                    properties:{\n                                    {%- if item_value is mapping -%}\n                                        {{- format_parameters(item_value, value['items']['required'] if 'required' in value['items'] else []) -}}\n                                    {%- endif -%}\n                                    }\n                                {%- elif item_key == 'required' -%}\n                                    required:[\n                                    {%- for req_item in item_value -%}\n                                        <|\"|>{{- req_item -}}<|\"|>\n                                        {%- if not loop.last %},{% endif -%}\n                                    {%- endfor -%}\n                                    ]\n                                {%- elif item_key == 'type' -%}\n                                    type:{{ format_type_argument(item_value) }}\n                                {%- else -%}\n                                    {{ item_key }}:{{ format_argument(item_value) }}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        }\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if 'nullable' in value and value['nullable'] -%}\n                    {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                    nullable:true\n                {%- endif -%}\n                {%- if is_object_type or ('properties' in value and value['properties'] is mapping) -%}\n                    {%- if 'properties' in value and value['properties'] is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value['properties'], value['required'] if 'required' in value else []) -}}\n                        }\n                    {%- elif value is mapping -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        properties:{\n                        {{- format_parameters(value, value['required'] if 'required' in value else [], filter_keys=true) -}}\n                        }\n                    {%- endif -%}\n                    {%- if 'required' in value and value['required'] -%}\n                        {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                        required:[\n                        {%- for item in value['required'] -%}\n                            <|\"|>{{- item -}}<|\"|>\n                            {%- if not loop.last %},{% endif -%}\n                        {%- endfor -%}\n                        ]\n                    {%- endif -%}\n                {%- endif -%}\n                {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n                type:{{ format_type_argument(vtype if vtype else 'object') }}\n            {%- else -%}\n                type:{{ format_type_argument('object') }}\n            {%- endif -%}\n            }\n        {%- endif -%}\n    {%- endfor -%}\n{%- endmacro -%}\n\n{%- macro format_function_declaration(tool_data) -%}\n    {%- set fn = tool_data['function'] if tool_data is mapping and 'function' in tool_data else tool_data -%}\n    {%- set tool_name = fn['name'] if fn is mapping and 'name' in fn and fn['name'] else 'unknown' -%}\n    {%- set tool_description = fn['description'] if fn is mapping and 'description' in fn and fn['description'] else '' -%}\n    declaration:{{- tool_name -}}{description:<|\"|>{{- tool_description -}}<|\"|>\n    {%- set params = none -%}\n    {%- if fn is mapping and 'parameters' in fn and fn['parameters'] -%}\n        {%- set params = fn['parameters'] -%}\n    {%- elif fn is mapping and 'input_schema' in fn and fn['input_schema'] -%}\n        {%- set params = fn['input_schema'] -%}\n    {%- elif fn is mapping and 'inputSchema' in fn and fn['inputSchema'] -%}\n        {%- set params = fn['inputSchema'] -%}\n    {%- endif -%}\n    {%- if params and params is mapping -%}\n        ,parameters:{\n        {%- if 'properties' in params and params['properties'] -%}\n            properties:{ {{- format_parameters(params['properties'], params['required'] if 'required' in params else []) -}} },\n        {%- endif -%}\n        {%- if 'required' in params and params['required'] -%}\n            required:[\n            {%- for item in params['required'] -%}\n                <|\"|>{{- item -}}<|\"|>\n                {{- ',' if not loop.last -}}\n            {%- endfor -%}\n            ],\n        {%- endif -%}\n        {%- if 'type' in params and params['type'] -%}\n            type:{{- format_type_argument(params['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    {%- if fn is mapping and 'response' in fn and fn['response'] is mapping -%}\n        {%- set response_declaration = fn['response'] -%}\n        ,response:{\n        {%- if 'description' in response_declaration and response_declaration['description'] -%}\n            description:<|\"|>{{- response_declaration['description'] -}}<|\"|>,\n        {%- endif -%}\n        {%- if 'type' in response_declaration and response_declaration['type'] -%}\n            type:{{- format_type_argument(response_declaration['type']) -}}}\n        {%- else -%}\n            type:{{- format_type_argument('object') -}}}\n        {%- endif -%}\n    {%- endif -%}\n    }\n{%- endmacro -%}\n\n{%- macro strip_thinking(text) -%}\n    {{- text | trim -}}\n{%- endmacro -%}\n\n{%- macro format_tool_response_block(tool_name, response) -%}\n    {{- '<|tool_response>' -}}\n    {%- if response is mapping -%}\n        {{- 'response:' + tool_name + '{' -}}\n        {%- for key, value in response | dictsort -%}\n            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n            {%- if not loop.last %},{% endif -%}\n        {%- endfor -%}\n        {{- '}' -}}\n    {%- else -%}\n        {{- 'response:' + tool_name + '{value:' + format_argument(response, escape_keys=False) + '}' -}}\n    {%- endif -%}\n    {{- '<tool_response|>' -}}\n{%- endmacro -%}\n\n{#- ===== SETUP ===== -#}\n{%- set ns = namespace(prev_message_type=None, prev_non_tool_role=None) -%}\n{%- set loop_messages = messages -%}\n{%- set enable_thinking = enable_thinking if enable_thinking is defined else false -%}\n{%- set preserve_thinking = preserve_thinking if preserve_thinking is defined else true -%}\n{{- bos_token -}}\n{#- Handle System/Tool Definitions Block -#}\n{%- if enable_thinking or (tools is defined and tools) or (messages and messages[0]['role'] in ['system', 'developer']) -%}\n    {{- '<|turn>system\\n' -}}\n    {#- Inject Thinking token at the very top of the FIRST system turn -#}\n    {%- if enable_thinking -%}\n        {{- '<|think|>\\n' -}}\n        {%- set ns.prev_message_type = 'think' -%}\n    {%- endif -%}\n    {%- if messages and messages[0]['role'] in ['system', 'developer'] -%}\n        {%- if messages[0]['content'] is string -%}\n            {{- messages[0]['content'] | trim -}}\n        {%- elif messages[0]['content'] is iterable and messages[0]['content'] is not string -%}\n            {%- for item in messages[0]['content'] -%}\n                {%- if item is mapping and 'text' in item -%}{{- item['text'] | trim + ' '-}}{%- endif -%}\n            {%- endfor -%}\n        {%- endif -%}\n        {%- set loop_messages = messages[1:] -%}\n    {%- endif -%}\n    {%- if tools is defined and tools -%}\n        {%- for tool in tools %}\n            {{- '<|tool>' -}}\n            {{- format_function_declaration(tool) | trim -}}\n            {{- '<tool|>' -}}\n        {%- endfor %}\n        {%- set ns.prev_message_type = 'tool' -%}\n    {%- endif -%}\n    {{- '<turn|>\\n' -}}\n{%- endif %}\n\n{#- Pre-scan: find last user message index for reasoning guard -#}\n{%- set ns_turn = namespace(last_user_idx=-1) -%}\n{%- for i in range(loop_messages | length) -%}\n    {%- if loop_messages[i]['role'] == 'user' -%}\n        {%- set ns_turn.last_user_idx = i -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{#- Loop through messages -#}\n{%- for message in loop_messages -%}\n    {%- if message['role'] != 'tool' -%}\n    {%- set ns.prev_message_type = None -%}\n    {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}\n    {%- set message_has_tool_calls = ('tool_calls' in message and message['tool_calls']) -%}\n    {#- Detect continuation using tracked state — O(1) instead of O(n) backward scan -#}\n    {%- set continue_same_model_turn = (role == 'model' and ns.prev_non_tool_role == 'assistant') -%}\n    {%- if not continue_same_model_turn -%}\n        {{- '<|turn>' + role + '\\n' }}\n    {%- endif -%}\n\n    {#- Render reasoning/reasoning_content as thinking channel (tool-call turns only) -#}\n    {%- set thinking_ns = namespace(text='') -%}\n    {%- if 'reasoning' in message and message['reasoning'] -%}\n        {%- set thinking_ns.text = message['reasoning'] -%}\n    {%- elif 'reasoning_content' in message and message['reasoning_content'] -%}\n        {%- set thinking_ns.text = message['reasoning_content'] -%}\n    {%- endif -%}\n    {%- set thinking_gate = (loop.index0 > ns_turn.last_user_idx) or preserve_thinking -%}\n    {%- if thinking_ns.text and thinking_gate and message_has_tool_calls -%}\n        {{- '<|channel>thought\\n' + thinking_ns.text + '\\n<channel|>' -}}\n    {%- endif -%}\n\n            {%- if message_has_tool_calls -%}\n                {%- for tool_call in message['tool_calls'] -%}\n                    {%- set function = tool_call['function'] if tool_call is mapping and 'function' in tool_call else tool_call -%}\n                    {%- set function_name = function['name'] if function is mapping and 'name' in function and function['name'] else 'unknown' -%}\n                    {{- '<|tool_call>call:' + function_name + '{' -}}\n                    {%- if function is mapping and 'arguments' in function and function['arguments'] is mapping -%}\n                        {%- set ns_args = namespace(found_first=false) -%}\n                        {%- for key, value in function['arguments'] | dictsort -%}\n                            {%- if ns_args.found_first %},{% endif -%}\n                            {%- set ns_args.found_first = true -%}\n                            {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n                        {%- endfor -%}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is string -%}\n                        {{- function['arguments'] -}}\n                    {%- elif function is mapping and 'arguments' in function and function['arguments'] is not none -%}\n                        {{- format_argument(function['arguments'], escape_keys=False) -}}\n                    {%- endif -%}\n                    {{- '}<tool_call|>' -}}\n                {%- endfor -%}\n                {%- set ns.prev_message_type = 'tool_call' -%}\n            {%- endif -%}\n\n            {%- set ns_tr_out = namespace(flag=false) -%}\n            {%- if 'tool_responses' in message and message['tool_responses'] -%}\n                {#- Legacy: tool_responses embedded on the assistant message (Google/Gemma native) -#}\n                {%- for tool_response in message['tool_responses'] -%}\n                    {%- set tr_name = tool_response['name'] if tool_response is mapping and 'name' in tool_response and tool_response['name'] else 'unknown' -%}\n                    {%- set tr_response = tool_response['response'] if tool_response is mapping and 'response' in tool_response else '' -%}\n                    {{- format_tool_response_block(tr_name, tr_response) -}}\n                    {%- set ns_tr_out.flag = true -%}\n                    {%- set ns.prev_message_type = 'tool_response' -%}\n                {%- endfor -%}\n            {%- elif message_has_tool_calls -%}\n                {#- OpenAI Chat Completions: forward-scan consecutive role:tool messages -#}\n                {%- set ns_tool_scan = namespace(stopped=false) -%}\n                {%- for k in range(loop.index0 + 1, loop_messages | length) -%}\n                    {%- if ns_tool_scan.stopped -%}\n                    {%- elif loop_messages[k]['role'] != 'tool' -%}\n                        {%- set ns_tool_scan.stopped = true -%}\n                    {%- else -%}\n                        {%- set follow = loop_messages[k] -%}\n                        {#- Resolve tool_call_id to function name -#}\n                        {%- set ns_tname = namespace(name='unknown') -%}\n                        {%- if 'name' in follow and follow['name'] -%}\n                            {%- set ns_tname.name = follow['name'] -%}\n                        {%- endif -%}\n                        {%- for tc in message['tool_calls'] -%}\n                            {%- if tc is mapping and 'id' in tc and 'tool_call_id' in follow and tc['id'] == follow['tool_call_id'] -%}\n                                {%- if 'function' in tc and 'name' in tc['function'] and tc['function']['name'] -%}\n                                    {%- set ns_tname.name = tc['function']['name'] -%}\n                                {%- elif 'name' in tc and tc['name'] -%}\n                                    {%- set ns_tname.name = tc['name'] -%}\n                                {%- endif -%}\n                            {%- endif -%}\n                        {%- endfor -%}\n                        {#- Handle content as string, object, or content-parts array -#}\n                        {%- set tool_body = follow['content'] if 'content' in follow else '' -%}\n                        {%- if tool_body is string -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is mapping -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- elif tool_body is iterable and tool_body is not string -%}\n                            {%- set ns_txt = namespace(s='') -%}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] == 'text' and 'text' in part -%}\n                                    {%- set ns_txt.s = ns_txt.s + part['text'] -%}\n                                {%- endif -%}\n                            {%- endfor -%}\n                            {{- format_tool_response_block(ns_tname.name, ns_txt.s) -}}\n                            {%- for part in tool_body -%}\n                                {%- if part is mapping and 'type' in part and part['type'] in ['image', 'image_url'] -%}\n                                    {{- '<|image|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] in ['audio', 'input_audio'] -%}\n                                    {{- '<|audio|>' -}}\n                                {%- elif part is mapping and 'type' in part and part['type'] == 'video' -%}\n                                    {{- '<|video|>' -}}\n                                {%- endif -%}\n                            {%- endfor -%}\n                        {%- else -%}\n                            {{- format_tool_response_block(ns_tname.name, tool_body) -}}\n                        {%- endif -%}\n                        {%- set ns_tr_out.flag = true -%}\n                        {%- set ns.prev_message_type = 'tool_response' -%}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n\n            {%- set captured_content -%}\n            {%- if 'content' in message and message['content'] is string -%}\n                {%- if role == 'model' -%}\n                    {{- strip_thinking(message['content']) -}}\n                {%- else -%}\n                    {{- message['content'] | trim -}}\n                {%- endif -%}\n            {%- elif 'content' in message and message['content'] is iterable and message['content'] is not string -%}\n                {%- for item in message['content'] -%}\n                    {%- if item is mapping and 'type' in item and item['type'] == 'text' and 'text' in item -%}\n                        {%- if role == 'model' -%}\n                            {{- strip_thinking(item['text']) -}}\n                        {%- else -%}\n                            {{- item['text'] | trim -}}\n                        {%- endif -%}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['image', 'image_url'] -%}\n                        {{- '<|image|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] in ['audio', 'input_audio'] -%}\n                        {{- '<|audio|>' -}}\n                    {%- elif item is mapping and 'type' in item and item['type'] == 'video' -%}\n                        {{- '<|video|>' -}}\n                    {%- endif -%}\n                {%- endfor -%}\n            {%- endif -%}\n            {%- endset -%}\n\n            {{- captured_content -}}\n            {%- set has_content = captured_content | trim | length > 0 -%}\n\n        {#- Forward-scan: find next non-tool message role for continuation detection -#}\n        {%- set next_nt = namespace(role=None, found=false) -%}\n        {%- for j in range(loop.index0 + 1, loop_messages | length) -%}\n            {%- if not next_nt.found -%}\n                {%- if loop_messages[j]['role'] != 'tool' -%}\n                    {%- set next_nt.role = loop_messages[j]['role'] -%}\n                    {%- set next_nt.found = true -%}\n                {%- endif -%}\n            {%- endif -%}\n        {%- endfor -%}\n\n        {%- set continues_into_next = (\n            role == 'model'\n            and next_nt.role == 'assistant'\n            and not message_has_tool_calls\n            and not ns_tr_out.flag\n        ) -%}\n\n        {%- if ns.prev_message_type == 'tool_call' and not ns_tr_out.flag -%}\n            {{- '<|tool_response>' -}}\n        {%- elif continues_into_next -%}\n            {{- '\\n' -}}\n        {%- elif not (ns_tr_out.flag and not has_content) -%}\n            {{- '<turn|>\\n' -}}\n        {%- endif -%}\n\n    {#- Track previous non-tool role for next iteration (avoids O(n) backward scan) -#}\n    {%- set ns.prev_non_tool_role = message['role'] -%}\n    {%- endif -%}\n{%- endfor -%}\n\n{%- if add_generation_prompt is defined and add_generation_prompt -%}\n    {%- if ns.prev_message_type != 'tool_response' and ns.prev_message_type != 'tool_call' -%}\n        {{- '<|turn>model\\n' -}}\n    {%- endif -%}\n\n    {%- if not enable_thinking -%}\n        {#- Suppress thinking — but not when awaiting tool responses -#}\n        {%- if ns.prev_message_type != 'tool_call' -%}\n            {{- '<|channel>thought\\n<channel|>' -}}\n        {%- endif -%}\n    {%- endif -%}\n{%- endif -%}\n",
    "context_length": 262144,
    "eos_token": "<eos>",
    "total": 25233142046,
    "totalFileSize": 14329791488
  },
  "id": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "lastModified": "2026-09-10T23:30:11.000Z",
  "likes": 1,
  "model-index": null,
  "modelId": "0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0",
  "pipeline_tag": "text-generation",
  "private": false,
  "sha": "d3b1db852eb4d3575801663033c4676231ceb65d",
  "siblings": [
    {
      "rfilename": ".eval_results/aime_2026.yaml"
    },
    {
      "rfilename": ".gitattributes"
    },
    {
      "rfilename": "README.md"
    },
    {
      "rfilename": "mmproj-BF16.gguf"
    },
    {
      "rfilename": "obsidian-alpha-26B_q4_0-it.gguf"
    }
  ],
  "spaces": [],
  "tags": [
    "gguf",
    "gemma4",
    "q4_0",
    "moe",
    "text-generation",
    "llama-cpp",
    "ko",
    "en",
    "zh",
    "ja",
    "fr",
    "de",
    "es",
    "it",
    "ru",
    "ar",
    "hi",
    "pt",
    "vi",
    "th",
    "id",
    "nl",
    "da",
    "pl",
    "tr",
    "base_model:google/gemma-4-26B-A4B",
    "base_model:finetune:google/gemma-4-26B-A4B",
    "license:apache-2.0",
    "eval-results",
    "endpoints_compatible",
    "region:us",
    "conversational"
  ],
  "usedStorage": 15524620672
}

Text

This source's terms allow its title, its values and a link here, not its text. It is at https://huggingface.co/0x795E2795/Obsidian-Alpha-26B-A4B-it-qat-q4_0.