char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
8b576b6c5
char/aliceai-t5-moe
1{{ - bos_token }} 2{%- if custom_tools is defined %} 3{%- set tools = custom_tools %} 4{%- endif %} 5{%- if not tools_in_user_message is defined %} 6{%- set tools_in_user_message = true %} 7{%- endif %} 8{%- if not date_string is defined %} 9{%- set date_string = "26 Jul 2024" %} 10{%- endif %} 11{%- if not tools is defined %} 12{%- set tools = none %} 13{%- endif %} 14 15{#- This block extracts the system message, so we can slot it into the right place. #} 16{%- if messages [ 0 ][ 'role' ] == 'system' %} 17{%- set system_message = messages [ 0 ][ 'content' ]| trim %} 18{%- set messages = messages [ 1 :] %} 19{%- else %} 20{%- set system_message = "" %} 21{%- endif %} 22 23{#- System message + builtin tools #} 24{{ - "<|start_header_id|>system<|end_header_id|>\n\n" }} 25{%- if builtin_tools is defined or tools is not none %} 26{{ - "Environment: ipython\n" }} 27{%- endif %} 28{%- if builtin_tools is defined %} 29{{ - "Tools: " + builtin_tools | reject ( 'equalto' , 'code_interpreter' ) | join ( ", " ) + "\n\n"}} 30{%- endif %} 31{{ - "Cutting Knowledge Date: December 2023\n" }} 32{{ - "Today Date: " + date_string + "\n\n" }} 33{%- if tools is not none and not tools_in_user_message %} 34{{ - "You have access to the following functions. To call a function, please respond with JSON for a function call." }} 35{{ - 'Respond in the format {" name ": function name, " parameters ": dictionary of argument name and its value}.' }} 36{{ - "Do not use variables.\n\n" }} 37{%- for t in tools %} 38{{ - t | tojson ( indent = 4 ) }} 39{{ - "\n\n" }} 40{%- endfor %} 41{%- endif %} 42{{ - system_message }} 43{{ - "<|eot_id|>" }} 44 45{#- Custom tools are passed in a user message with some extra guidance #} 46{%- if tools_in_user_message and not tools is none %} 47{#- Extract the first user message so we can plug it in here #} 48{%- if messages | length != 0 %} 49{%- set first_user_message = messages [ 0 ][ 'content' ]| trim %} 50{%- set messages = messages [ 1 :] %} 51{%- else %} 52{{ - raise_exception ( "Cannot put tools in the first user message when there' s no first user message ! ") }} 53{%- endif %} 54{{- ' <| start_header_id |> user <| end_header_id |>\ n \ n ' -}} 55{{- " Given the following functions , please respond with a JSON for a function call " }} 56{{- " with its proper arguments that best answers the given prompt .\ n \ n " }} 57{{- ' Respond in the format {"name" : function name , "parameters" : dictionary of argument name and its value } . ' }} 58{{- " Do not use variables .\ n \ n " }} 59{%- for t in tools %} 60{{- t | tojson(indent=4) }} 61{{- " \ n \ n " }} 62{%- endfor %} 63{{- first_user_message + " <| eot_id |> "}} 64{%- endif %} 65 66{%- for message in messages %} 67{%- if not (message.role == ' ipython ' or message.role == ' tool ' or ' tool_calls ' in message) %} 68{{- ' <| start_header_id |> ' + message[' role '] + ' <| end_header_id |>\ n \ n '+ message[' content '] | trim + ' <| eot_id |> ' }} 69{%- elif ' tool_calls ' in message %} 70{%- if not message.tool_calls|length == 1 %} 71{{- raise_exception(" This model only supports single tool - calls at once ! ") }} 72{%- endif %} 73{%- set tool_call = message.tool_calls[0].function %} 74{%- if builtin_tools is defined and tool_call.name in builtin_tools %} 75{{- ' <| start_header_id |> assistant <| end_header_id |>\ n \ n ' -}} 76{{- " <| python_tag |> " + tool_call.name + " . call ( " }} 77{%- for arg_name, arg_val in tool_call.arguments | items %} 78{{- arg_name + ' = "' + arg_val + '"' }} 79{%- if not loop.last %} 80{{- " , " }} 81{%- endif %} 82{%- endfor %} 83{{- " ) " }} 84{%- else %} 85{{- ' <| start_header_id |> assistant <| end_header_id |>\ n \ n ' -}} 86{{- '{"name" : "' + tool_call . name + '" , ' }} 87{{- '"parameters" : ' }} 88{{- tool_call.arguments | tojson }} 89{{- "}" }} 90{%- endif %} 91{%- if builtin_tools is defined %} 92{#- This means we' re in ipython mode #} 93 {{ - "<|eom_id|>" }} 94{%- else %} 95{{ - "<|eot_id|>" }} 96{%- endif %} 97{%- elif message . role == "tool" or message . role == "ipython" %} 98{{ - "<|start_header_id|>ipython<|end_header_id|>\n\n" }} 99{%- if message . content is mapping or message . content is iterable %} 100{{ - message . content | tojson }} 101{%- else %} 102{{ - message . content }} 103{%- endif %} 104{{ - "<|eot_id|>" }} 105{%- endif %} 106{%- endfor %} 107{%- if add_generation_prompt %} 108{{ - '<|start_header_id|>assistant<|end_header_id|>\n\n' }} 109{%- endif %}