CoolFace
Modelpublic

baseten/Llama-3.2-3B-Instruct-pythonic

sourceHugging Facellama3.2updated 1y agoView on Hugging Face
0likes31kdownloads
chat_template.jinja102 linesDownload Raw Back to root
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 = false %}7{%- endif %}8{%- if not date_string is defined %}9    {%- if strftime_now is defined %}10        {%- set date_string = strftime_now("%d %b %Y") %}11    {%- else %}12        {%- set date_string = "26 Jul 2024" %}13    {%- endif %}14{%- endif %}15{%- if not tools is defined %}16    {%- set tools = none %}17{%- endif %}18 19{#- This block extracts the system message, so we can slot it into the right place. #}20{%- if messages[0]['role'] == 'system' %}21    {%- set system_message = messages[0]['content']|trim %}22    {%- set messages = messages[1:] %}23{%- else %}24    {%- set system_message = "You are a helpful assistant with tool calling capabilities. Only reply with a tool call if the function exists in the library provided by the user. If it doesn't exist, just reply directly in natural language. When you receive a tool call response, use the output to format an answer to the original user question." %}25{%- endif %}26 27{#- System message #}28{{- "<|start_header_id|>system<|end_header_id|>\n\n" }}29{%- if tools is not none %}30    {{- "Environment: ipython\n" }}31{%- endif %}32{{- "Cutting Knowledge Date: January 2024\n" }}33{{- "Today Date: " + date_string + "\n\n" }}34{%- if tools is not none and not tools_in_user_message %}35    {{- "You have access to the following functions. To call functions, please respond with a python list of the calls. " }}36    {{- 'Respond in the format [func_name1(params_name1=params_value1, params_name2=params_value2...), func_name2(params)] ' }}37    {{- "Do not use variables.\n\n" }}38    {%- for t in tools %}39        {{- t | tojson(indent=4) }}40        {{- "\n\n" }}41    {%- endfor %}42{%- endif %}43{{- system_message }}44{{- "<|eot_id|>" }}45 46{#- Custom tools are passed in a user message with some extra guidance #}47{%- if tools_in_user_message and not tools is none %}48    {#- Extract the first user message so we can plug it in here #}49    {%- if messages | length != 0 %}50        {%- set first_user_message = messages[0]['content']|trim %}51        {%- set messages = messages[1:] %}52    {%- else %}53        {{- raise_exception("Cannot put tools in the first user message when there's no first user message!") }}54    {%- endif %}55    {{- '<|start_header_id|>user<|end_header_id|>\n\n' -}}56    {{- "Given the following functions, please respond with a python list for function calls " }}57    {{- "with their proper arguments to best answer the given prompt.\n\n" }}58    {{- 'Respond in the format [func_name1(params_name1=params_value1, params_name2=params_value2...), func_name2(params)] ' }}59    {{- "Do not use variables.\n\n" }}60    {%- for t in tools %}61        {{- t | tojson(indent=4) }}62        {{- "\n\n" }}63    {%- endfor %}64    {{- first_user_message + "<|eot_id|>"}}65{%- endif %}66 67{%- for message in messages %}68    {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}69        {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' }}70    {%- elif 'tool_calls' in message %}71        {{- '<|start_header_id|>assistant<|end_header_id|>\n\n[' -}}72        {%- for tool_call in message.tool_calls %}73            {%- if tool_call.function is defined %}74                {%- set tool_call = tool_call.function %}75            {%- endif %}76            {{- tool_call.name + '(' -}}77            {%- if tool_call.arguments is string %}78                {{- tool_call.arguments[2:-2] | replace('\\', '') | replace('\"', '') -}}79            {%- else %}80                {%- for param in tool_call.arguments %}81                    {{- param + '=' -}}82                    {{- "%s" | format(tool_call.arguments[param]) -}}83                    {% if not loop.last %}, {% endif %}84                {%- endfor %}85            {%- endif %}86            {{- ')' -}}87            {% if not loop.last %}, {% endif %}88        {%- endfor %}89        {{- ']<|eot_id|>' -}}90    {%- elif message.role == "tool" or message.role == "ipython" %}91        {{- "<|start_header_id|>ipython<|end_header_id|>\n\n" }}92        {%- if message.content is mapping %}93            {{- message.content | tojson }}94        {%- else %}95            {{- { "output": message.content } | tojson }}96        {%- endif %}97        {{- "<|eot_id|>" }}98    {%- endif %}99{%- endfor %}100{%- if add_generation_prompt %}101    {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }}102{%- endif %}