File size: 5,250 Bytes
c2d1562
 
 
 
 
1
2
3
4
5
{{ bos_token }}{%- set system_token = '<SPECIAL_61>' -%}{%- set end_system_token = '<SPECIAL_62>' -%}{%- set developer_token = '<SPECIAL_63>' -%}{%- set end_developer_token = '<SPECIAL_64>' -%}{%- set user_token = '<SPECIAL_65>' -%}{%- set end_user_token = '<SPECIAL_66>' -%}{%- set assistant_token = '<SPECIAL_67>' -%}{%- set end_assistant_token = '<SPECIAL_68>' -%}{%- set inner_token = '<SPECIAL_69>' -%}{%- set outer_token = '<SPECIAL_70>' -%}{%- set tool_calls_token = '<SPECIAL_71>' -%}{%- set end_tool_calls_token = '<SPECIAL_72>' -%}{%- if messages and messages[0].role == 'system' -%}   {%- set system_content = messages[0].content -%}    {{ system_token }}    {%- if system_content is string -%}        {{ system_content }}    {%- elif system_content is mapping and "text" in system_content -%}        {{ system_content.text }}    {%- else -%}        {{- raise_exception("Invalid system content: " + str(system_content)) -}}    {%- endif -%}    {{ end_system_token }}    {%- set messages_without_system = messages[1:] -%}{%- else -%}    {{ system_token + end_system_token }}    {%- set messages_without_system = messages -%}{%- endif -%}{%- if messages_without_system and messages_without_system[0].role == 'developer' -%}    {%- set developer_content = messages_without_system[0].content -%}    {{ developer_token }}    {%- if "has_thinking" in developer_content -%}        {{ 'Deliberation: ' }}        {%- if developer_content.has_thinking -%}            {{ 'enabled' }}        {%- else -%}            {{ 'disabled' }}        {%- endif -%}        {{ '
' }}    {%- else -%}        {{ 'Deliberation: disabled
' }}    {%- endif -%}    {%- if "formatted_tools" in developer_content and developer_content.formatted_tools -%}        {{ 'Tool Capabilities:
' + developer_content.formatted_tools }}    {%- else -%}        {{ 'Tool Capabilities: disabled' }}    {%- endif -%}    {{ end_developer_token }}    {%- set loop_messages = messages_without_system[1:] -%}{%- else -%}    {{ developer_token + 'Deliberation: disabled
Tool Capabilities: disabled' + end_developer_token }}    {%- set loop_messages = messages_without_system -%}{%- endif -%}{%- for message in loop_messages -%}    {%- set content = message.content -%}    {%- if message.role == 'user' -%}        {{ user_token }}        {%- if content is string -%}            {{ content }}        {%- elif content is sequence -%}            {%- for part in content.parts -%}                {%- if part.type == 'text' -%}                    {{ part.text }}                {%- endif -%}            {%- endfor -%}        {%- else -%}            {{- raise_exception("Invalid user content: " + str(content)) -}}        {%- endif -%}        {{ end_user_token }}    {%- elif message.role == 'assistant' -%}        {{ assistant_token }}        {%- if content is string -%}            {{ content }}        {%- elif content is sequence -%}            {%- set ns = namespace(in_inner=false) -%}            {%- for block in content.blocks -%}                {%- if block.type == 'thoughts' -%}                    {%- if not ns.in_inner -%}                        {%- set ns.in_inner = true -%}                        {{ inner_token }}                    {%- endif -%}                    {{ block.text }}                {%- elif block.type == 'tool_calls' -%}                    {%- if ns.in_inner and not loop.first and block.calls|length == 1 and block.calls[0].name == 'display_answers' -%}                        {%- set ns.in_inner = false -%}                        {{ outer_token }}                    {%- endif -%}                    {{ tool_calls_token + '[' }}                    {%- for tool_call in block.calls -%}                        {{- '{"' + tool_call.name + '": ' + tool_call.arguments + '}' }}                        {%- if not loop.last -%}                            {{- ", " }}                        {%- endif -%}                    {%- endfor -%}                    {{ ']' + end_tool_calls_token }}                {%- elif block.type == 'tool_outputs' -%}                    {{ '[' }}                    {%- for tool_output in block.outputs -%}                        {{- tool_output.output }}                        {%- if not loop.last -%}                            {{- ", " }}                        {%- endif -%}                    {%- endfor -%}                    {{- ']' }}                    {%- if not loop.last -%}                        {{- ' ' }}                    {%- endif -%}                {%- elif block.type == 'response' -%}                    {%- if not loop.first and ns.in_inner -%}                        {%- set ns.in_inner = false -%}                        {{ outer_token }}                    {%- endif -%}                    {{ block.text }}                {%- else -%}                    {{- raise_exception("Invalid block type: " + block.type) -}}                {%- endif -%}            {%- endfor -%}        {%- else -%}            {{- raise_exception("Invalid assistant content: " + str(content)) -}}        {%- endif -%}        {{ end_assistant_token }}    {%- else -%}        {{- raise_exception("Invalid message role: " + message.role) -}}    {%- endif -%}{%- endfor -%}{%- if add_generation_prompt -%}    {{ assistant_token }}{%- endif -%}