| { | |
| "backend": "tokenizers", | |
| "boi_token": "<start_of_image>", | |
| "bos_token": "<bos>", | |
| "clean_up_tokenization_spaces": false, | |
| "eoi_token": "<end_of_image>", | |
| "eos_token": "<eos>", | |
| "extra_special_tokens": [ | |
| "<start_of_turn>", | |
| "<end_of_turn>", | |
| "<instruction>", | |
| "</instruction>", | |
| "<think>", | |
| "</think>" | |
| ], | |
| "image_token": "<image_soft_token>", | |
| "is_local": true, | |
| "mask_token": "<mask>", | |
| "model_max_length": 1000000000000000019884624838656, | |
| "model_specific_special_tokens": { | |
| "boi_token": "<start_of_image>", | |
| "eoi_token": "<end_of_image>", | |
| "image_token": "<image_soft_token>" | |
| }, | |
| "pad_token": "<pad>", | |
| "processor_class": "Gemma3Processor", | |
| "sp_model_kwargs": null, | |
| "spaces_between_special_tokens": false, | |
| "tokenizer_class": "GemmaTokenizer", | |
| "unk_token": "<unk>", | |
| "use_default_system_prompt": false, | |
| "chat_template": "{{ bos_token }}\\n{%- if messages[0]['role'] == 'system' -%}\\n {%- if messages[0]['content'] is string -%}\\n {%- set first_user_prefix = '<instruction>\\n' + messages[0]['content'] + '\\n</instruction>\\n\\n' -%}\\n {%- else -%}\\n {%- set first_user_prefix = '<instruction>\\n' + messages[0]['content'][0]['text'] + '\\n</instruction>\\n\\n' -%}\\n {%- endif -%}\\n {%- set loop_messages = messages[1:] -%}\\n{%- else -%}\\n {%- set first_user_prefix = \"\" -%}\\n {%- set loop_messages = messages -%}\\n{%- endif -%}\\n{%- for message in loop_messages -%}\\n {%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) -%}\\n {{ raise_exception(\"Conversation roles must alternate user/assistant/user/assistant/...\") }}\\n {%- endif -%}\\n {%- if (message['role'] == 'assistant') -%}\\n {%- set role = \"model\" -%}\\n {%- else -%}\\n {%- set role = message['role'] -%}\\n {%- endif -%}\\n {{ '<start_of_turn>' + role + '\\n' + (first_user_prefix if loop.first else \"\") }}\\n {%- if message['content'] is string -%}\\n {{ message['content'] | trim }}\\n {%- elif message['content'] is iterable -%}\\n {%- for item in message['content'] -%}\\n {%- if item['type'] == 'image' -%}\\n {{ '<start_of_image>' }}\\n {%- elif item['type'] == 'text' -%}\\n {{ item['text'] | trim }}\\n {%- endif -%}\\n {%- endfor -%}\\n {%- else -%}\\n {{ raise_exception(\"Invalid content type\") }}\\n {%- endif -%}\\n {{ '<end_of_turn>\\n' }}\\n{%- endfor -%}\\n{%- if add_generation_prompt -%}\\n {{'<start_of_turn>model\\n<think>\\n'}}\\n{%- endif -%}\\n" | |
| } |