Commit ·
9420e67
1
Parent(s): 78269b2
Fix chat_template crash when assistant message omits the `content` key (#1)
Browse files- Fix chat_template crash when assistant message omits the `content` key (52618a346da46c420bc9ad386266cc9acad6393e)
Co-authored-by: Quentin Gallouédec <qgallouedec@users.noreply.huggingface.co>
- tokenizer_config.json +2 -2
tokenizer_config.json
CHANGED
|
@@ -149,7 +149,7 @@
|
|
| 149 |
}
|
| 150 |
},
|
| 151 |
"bos_token": "<|begin▁of▁sentence|>",
|
| 152 |
-
"chat_template": "{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% set ns = namespace(is_first=false, is_tool=false, is_output_first=true, system_prompt='') %}{%- for message in messages %}{%- if message['role'] == 'system' %}{% set ns.system_prompt = message['content'] %}{%- endif %}{%- endfor %}{{bos_token}}{{ns.system_prompt}}{%- for message in messages %}{%- if message['role'] == 'user' %}{%- set ns.is_tool = false -%}{{'<|User|>' + message['content']}}{%- endif %}{%- if message['role'] == 'assistant' and message
|
| 153 |
"clean_up_tokenization_spaces": false,
|
| 154 |
"eos_token": "<|end▁of▁sentence|>",
|
| 155 |
"extra_special_tokens": {},
|
|
@@ -160,4 +160,4 @@
|
|
| 160 |
"tokenizer_class": "LlamaTokenizer",
|
| 161 |
"unk_token": null,
|
| 162 |
"use_default_system_prompt": false
|
| 163 |
-
}
|
|
|
|
| 149 |
}
|
| 150 |
},
|
| 151 |
"bos_token": "<|begin▁of▁sentence|>",
|
| 152 |
+
"chat_template": "{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% set ns = namespace(is_first=false, is_tool=false, is_output_first=true, system_prompt='') %}{%- for message in messages %}{%- if message['role'] == 'system' %}{% set ns.system_prompt = message['content'] %}{%- endif %}{%- endfor %}{{bos_token}}{{ns.system_prompt}}{%- for message in messages %}{%- if message['role'] == 'user' %}{%- set ns.is_tool = false -%}{{'<|User|>' + message['content']}}{%- endif %}{%- if message['role'] == 'assistant' and message.get('content') is none %}{%- set ns.is_tool = false -%}{%- for tool in message['tool_calls']%}{%- if not ns.is_first %}{{'<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{%- set ns.is_first = true -%}{%- else %}{{'\\n' + '<|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{{'<|tool▁calls▁end|><|end▁of▁sentence|>'}}{%- endif %}{%- endfor %}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is not none %}{%- if ns.is_tool %}{{'<|tool▁outputs▁end|>' + message['content'] + '<|end▁of▁sentence|>'}}{%- set ns.is_tool = false -%}{%- else %}{{'<|Assistant|>' + message['content'] + '<|end▁of▁sentence|>'}}{%- endif %}{%- endif %}{%- if message['role'] == 'tool' %}{%- set ns.is_tool = true -%}{%- if ns.is_output_first %}{{'<|tool▁outputs▁begin|><|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- set ns.is_output_first = false %}{%- else %}{{'\\n<|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- endif %}{%- endif %}{%- endfor -%}{% if ns.is_tool %}{{'<|tool▁outputs▁end|>'}}{% endif %}{% if add_generation_prompt and not ns.is_tool %}{{'<|Assistant|>'}}{% endif %}",
|
| 153 |
"clean_up_tokenization_spaces": false,
|
| 154 |
"eos_token": "<|end▁of▁sentence|>",
|
| 155 |
"extra_special_tokens": {},
|
|
|
|
| 160 |
"tokenizer_class": "LlamaTokenizer",
|
| 161 |
"unk_token": null,
|
| 162 |
"use_default_system_prompt": false
|
| 163 |
+
}
|