char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
5e54d51b1
char/aliceai-t5-moe
1{%- if not add_generation_prompt is defined -%} 2{%- set add_generation_prompt = false -%} 3{%- endif -%} 4{%- set ns = namespace ( is_first = false , is_tool_outputs = false , is_output_first = true , system_prompt = '' ) - %} 5{%- for message in messages -%} 6{%- if message [ 'role' ] == 'system' -%} 7{%- set ns . system_prompt = message [ 'content' ] - %} 8{%- endif -%} 9{%- endfor -%} 10{{ bos_token }} 11{%- if tools %} 12You can call any of the following function tools to satisfy the user's requests:{{ tools | map ( attribute = 'function' ) | tojson ( indent = 2 ) }} 13 14Example function tool call syntax: 15 16<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|>example_function_name 17```json 18{ 19 "arg1": "some_value" 20 ... 21} 22``` 23<|tool▁call▁end|><|tool▁calls▁end|> 24 25{% endif -%} 26{{ ns . system_prompt }} 27{%- macro flush_tool_outputs () - %} 28{%- if ns . is_tool_outputs -%} 29{{ - '<|tool▁outputs▁end|><|end▁of▁sentence|>' - }} 30{%- set ns . is_tool_outputs = false -%} 31{%- endif -%} 32{%- endmacro -%} 33{{ - flush_tool_outputs () - }} 34{%- for message in messages -%} 35{%- if message [ 'role' ] != 'tool' -%} 36{{ - flush_tool_outputs () - }} 37{%- endif -%} 38{%- if message [ 'role' ] == 'user' -%} 39{{ - '<|User|>' + message [ 'content' ] + '<|end▁of▁sentence|>' - }} 40{%- endif -%} 41{%- if message [ 'role' ] == 'assistant' and not message [ 'content' ] - %} 42{{ - '<|Assistant|><|tool▁calls▁begin|>' - }} 43{%- set ns . is_first = true -%} 44{%- for tc in message [ 'tool_calls' ] - %} 45{%- if ns . is_first -%} 46{%- set ns . is_first = false -%} 47{%- else -%} 48{{ - '\n' - }} 49{%- endif -%} 50{%- set tool_name = tc [ 'function' ][ 'name' ] - %} 51{%- set tool_args = tc [ 'function' ][ 'arguments' ] - %} 52{{ - '<|tool▁call▁begin|>' + tc [ 'type' ] + '<|tool▁sep|>' + tool_name + '\n' + '```json' + '\n' + tool_args | tojson + '\n' + '```' + '<|tool▁call▁end|>' - }} 53{%- endfor -%} 54{{ - '<|tool▁calls▁end|><|end▁of▁sentence|>' - }} 55{%- endif -%} 56{%- if message [ 'role' ] == 'assistant' and message [ 'content' ] - %} 57{{ - flush_tool_outputs () - }} 58{%- set content = message [ 'content' ] - %} 59{%- if '</think>' in content -%} 60{%- set content = content . split ( '</think>' )[- 1 ] - %} 61{%- endif -%} 62{{ - '<|Assistant|>' + content + '<|end▁of▁sentence|>' - }} 63{%- endif -%} 64{%- if message [ 'role' ] == 'tool' -%} 65{%- set ns . is_tool_outputs = true -%} 66{%- if ns . is_output_first -%} 67{{ - '<|tool▁outputs▁begin|>' - }} 68{%- set ns . is_output_first = false -%} 69{%- endif -%} 70{{ - '\n<|tool▁output▁begin|>' + message [ 'content' ] + '<|tool▁output▁end|>' - }} 71{%- endif -%} 72{%- endfor -%} 73{{ - flush_tool_outputs () - }} 74{%- if add_generation_prompt and not ns . is_tool_outputs -%} 75{{ - '<|Assistant|><think>\n' - }} 76{%- endif -%}