{"id":476462,"date":"2026-04-18T13:26:30","date_gmt":"2026-04-18T13:26:30","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=476462"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=476462","title":{"rendered":"\u041a\u0430\u043a \u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u044b\u0439 Qwen 3.6 \u0438 Gemma 4"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442 <br \/><strong>! \u0422\u0435\u043a\u0441\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c \u0438 \u043d\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u0418\u0418 !<\/strong><\/p>\n<p>\u041d\u0430 \u0434\u043d\u044f\u0445 \u0432\u044b\u0448\u043b\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0442 \u0430\u043b\u0438\u0431\u0430\u0431\u044b &#8212;<strong> Qwen 3.6<\/strong>, \u0432\u0435\u0441\u044c \u0440\u0435\u0434\u0434\u0438\u0442 \u0437\u0430\u0431\u0438\u0442 \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u043e\u0439. \u0418 \u044f \u0440\u0438\u0441\u043a\u043d\u0443\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0447\u0442\u043e \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 <strong>Gemma 4 <\/strong><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/411\/d90\/120\/411d90120b28733350dfb6e55f3d0bbf.png\" width=\"1587\" height=\"831\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/411\/d90\/120\/411d90120b28733350dfb6e55f3d0bbf.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/411\/d90\/120\/411d90120b28733350dfb6e55f3d0bbf.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b (\u043d\u043e\u0443\u0442\u0431\u0443\u043a <strong>Asus Tuf Gaming + \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u0430\u044f Nvidia rtx 4070 8GB<\/strong>): <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e71\/3b2\/4e0\/e713b24e054937cc1e57d286519e059f.png\" alt=\"\" title=\"\" width=\"827\" height=\"237\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e71\/3b2\/4e0\/e713b24e054937cc1e57d286519e059f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e71\/3b2\/4e0\/e713b24e054937cc1e57d286519e059f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u0421\u043e\u0444\u0442: Windows + LMstudio + Zed IDE<\/strong><\/p>\n<p><strong>* \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u0432\u0435\u0447\u0443 \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b opencode\/claude\/pi.dev \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 cli \u043a\u043b\u0438\u0435\u043d\u0442\u044b, <\/strong>\u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430 tools \u0432 \u043d\u0438\u0445 \u0441\u043b\u0430\u0431\u0430\u044f, \u043c\u043d\u043e\u0433\u043e\u0435 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f, \u043b\u0438\u0431\u043e \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0434\u043e\u043b\u0433\u043e \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u043c\u043f\u0442\u043e\u0432, \u0438\u043b\u0438 \u0444\u0430\u0439\u043b\u044b \u043d\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f, \u0438\u043b\u0438 \u0441\u0431\u043e\u0438\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438 LLM \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u044c \u0432 \u043a\u0430\u043a\u043e\u0439 \u043e\u043d\u0430 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0435 &#8212; bash \u0438\u043b\u0438 powershell. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432 <strong>Zed IDE<\/strong> \u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c <strong>AI<\/strong><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/198\/a2c\/404\/198a2c404dcaa4524d99853d8836dd8f.png\" alt=\"\u0427\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0442 \u0441 \u0430\u0433\u0435\u043d\u0442\u043e\u043c - \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u043f\u0440\u0430\u0432\u043e\u043c \u0443\u0433\u043b\u0443 \u0437\u043d\u0430\u0447\u043e\u043a \u201c\u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0438\u201d. \u0415\u0441\u043b\u0438 \u0435\u0435 \u043d\u0435\u0442 - \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043f\u0443\u043d\u043a\u0442 AI \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c\" title=\"\u0427\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0442 \u0441 \u0430\u0433\u0435\u043d\u0442\u043e\u043c - \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u043f\u0440\u0430\u0432\u043e\u043c \u0443\u0433\u043b\u0443 \u0437\u043d\u0430\u0447\u043e\u043a \u201c\u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0438\u201d. \u0415\u0441\u043b\u0438 \u0435\u0435 \u043d\u0435\u0442 - \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043f\u0443\u043d\u043a\u0442 AI \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c\" width=\"2559\" height=\"1375\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/198\/a2c\/404\/198a2c404dcaa4524d99853d8836dd8f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/198\/a2c\/404\/198a2c404dcaa4524d99853d8836dd8f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0427\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0442 \u0441 \u0430\u0433\u0435\u043d\u0442\u043e\u043c &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u043f\u0440\u0430\u0432\u043e\u043c \u0443\u0433\u043b\u0443 \u0437\u043d\u0430\u0447\u043e\u043a \u201c\u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0438\u201d. \u0415\u0441\u043b\u0438 \u0435\u0435 \u043d\u0435\u0442 &#8212; \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043f\u0443\u043d\u043a\u0442 AI \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u0414\u043b\u044f \u0442\u0435\u0445 \u043a\u0442\u043e \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0445\u043e\u0447\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 cli<\/strong> &#8212; \u0435\u0441\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f qwen3.\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 <strong>LMstudio<\/strong> \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u0441\u043b\u0435\u0432\u0430 \u043d\u0430 \u0437\u043d\u0430\u0447\u043e\u043a &#171;<strong>MyModels<\/strong>&#187; (\u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043c\u044b\u0448\u0438)  , \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e qwen \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u0441\u043f\u0440\u0430\u0432\u0430 \u043e\u0442 \u043d\u0435\u0435 \u043d\u0430\u0436\u0430\u0442\u044c \u0438\u043a\u043e\u043d\u043a\u0443 \u0448\u0435\u0441\u0442\u0435\u0440\u0435\u043d\u043a\u0438, \u0434\u0430\u043b\u0435\u0435 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 <strong>inference<\/strong> \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u0443 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d jinja \u043d\u0430 \u044d\u0442\u043e\u0442<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">{%- set image_count = namespace(value=0) %}{%- set video_count = namespace(value=0) %}{%- macro render_content(content, do_vision_count, is_system_content=false) %}    {%- if content is string %}        {{- content }}    {%- elif content is iterable and content is not mapping %}        {%- for item in content %}            {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}                {%- if is_system_content %}                    {{- raise_exception('System message cannot contain images.') }}                {%- endif %}                {%- if do_vision_count %}                    {%- set image_count.value = image_count.value + 1 %}                {%- endif %}                {%- if add_vision_id %}                    {{- 'Picture ' ~ image_count.value ~ ': ' }}                {%- endif %}                {{- '&lt;|vision_start|&gt;&lt;|image_pad|&gt;&lt;|vision_end|&gt;' }}            {%- elif 'video' in item or item.type == 'video' %}                {%- if is_system_content %}                    {{- raise_exception('System message cannot contain videos.') }}                {%- endif %}                {%- if do_vision_count %}                    {%- set video_count.value = video_count.value + 1 %}                {%- endif %}                {%- if add_vision_id %}                    {{- 'Video ' ~ video_count.value ~ ': ' }}                {%- endif %}                {{- '&lt;|vision_start|&gt;&lt;|video_pad|&gt;&lt;|vision_end|&gt;' }}            {%- elif 'text' in item %}                {{- item.text }}            {%- else %}                {{- raise_exception('Unexpected item type in content.') }}            {%- endif %}        {%- endfor %}    {%- elif content is none or content is undefined %}        {{- '' }}    {%- else %}        {{- raise_exception('Unexpected content type.') }}    {%- endif %}{%- endmacro %}{%- if not messages %}    {{- raise_exception('No messages provided.') }}{%- endif %}{%- if tools and tools is iterable and tools is not mapping %}    {{- '&lt;|im_start|&gt;system\\n' }}    {{- \"# Tools\\n\\nYou have access to the following functions:\\n\\n&lt;tools&gt;\" }}    {%- for tool in tools %}        {{- \"\\n\" }}        {{- tool | tojson }}    {%- endfor %}    {{- \"\\n&lt;\/tools&gt;\" }}    {{- '\\n\\nIf you choose to call a function ONLY reply in the following format with NO suffix:\\n\\n&lt;tool_call&gt;\\n&lt;function=example_function_name&gt;\\n&lt;parameter=example_parameter_1&gt;\\nvalue_1\\n&lt;\/parameter&gt;\\n&lt;parameter=example_parameter_2&gt;\\nThis is the value for the second parameter\\nthat can span\\nmultiple lines\\n&lt;\/parameter&gt;\\n&lt;\/function&gt;\\n&lt;\/tool_call&gt;\\n\\n&lt;IMPORTANT&gt;\\nReminder:\\n- Function calls MUST follow the specified format: an inner &lt;function=...&gt;&lt;\/function&gt; block must be nested within &lt;tool_call&gt;&lt;\/tool_call&gt; XML tags\\n- Required parameters MUST be specified\\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\\n&lt;\/IMPORTANT&gt;' }}    {%- if messages[0].role == 'system' %}        {%- set content = render_content(messages[0].content, false, true)|trim %}        {%- if content %}            {{- '\\n\\n' + content }}        {%- endif %}    {%- endif %}    {{- '&lt;|im_end|&gt;\\n' }}{%- else %}    {%- if messages[0].role == 'system' %}        {%- set content = render_content(messages[0].content, false, true)|trim %}        {{- '&lt;|im_start|&gt;system\\n' + content + '&lt;|im_end|&gt;\\n' }}    {%- endif %}{%- endif %}{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}{%- for message in messages[::-1] %}    {%- set index = (messages|length - 1) - loop.index0 %}    {%- if ns.multi_step_tool and message.role == \"user\" %}        {%- set content = render_content(message.content, false)|trim %}        {%- if not(content.startswith('&lt;tool_response&gt;') and content.endswith('&lt;\/tool_response&gt;')) %}            {%- set ns.multi_step_tool = false %}            {%- set ns.last_query_index = index %}        {%- endif %}    {%- endif %}{%- endfor %}{%- if ns.multi_step_tool %}    {{- raise_exception('No user query found in messages.') }}{%- endif %}{%- for message in messages %}    {%- set content = render_content(message.content, true)|trim %}    {%- if message.role == \"system\" %}        {%- if not loop.first %}            {{- raise_exception('System message must be at the beginning.') }}        {%- endif %}    {%- elif message.role == \"user\" %}        {{- '&lt;|im_start|&gt;' + message.role + '\\n' + content + '&lt;|im_end|&gt;' + '\\n' }}    {%- elif message.role == \"assistant\" %}        {%- set reasoning_content = '' %}        {%- if message.reasoning_content is string %}            {%- set reasoning_content = message.reasoning_content %}        {%- else %}            {%- if '&lt;\/think&gt;' in content %}                {%- set reasoning_content = content.split('&lt;\/think&gt;')[0].rstrip('\\n').split('&lt;think&gt;')[-1].lstrip('\\n') %}                {%- set content = content.split('&lt;\/think&gt;')[-1].lstrip('\\n') %}            {%- endif %}        {%- endif %}        {%- set reasoning_content = reasoning_content|trim %}        {%- if loop.index0 &gt; ns.last_query_index %}            {{- '&lt;|im_start|&gt;' + message.role + '\\n&lt;think&gt;\\n' + 'I cannot call a tool until I stop thinking.' + reasoning_content + '\\n&lt;\/think&gt;\\n\\n' + content }}        {%- else %}            {{- '&lt;|im_start|&gt;' + message.role + '\\n' + content }}        {%- endif %}        {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}            {%- for tool_call in message.tool_calls %}                {%- if tool_call.function is defined %}                    {%- set tool_call = tool_call.function %}                {%- endif %}                {%- if loop.first %}                    {%- if content|trim %}                        {{- '\\n\\n&lt;tool_call&gt;\\n&lt;function=' + tool_call.name + '&gt;\\n' }}                    {%- else %}                        {{- '&lt;tool_call&gt;\\n&lt;function=' + tool_call.name + '&gt;\\n' }}                    {%- endif %}                {%- else %}                    {{- '\\n&lt;tool_call&gt;\\n&lt;function=' + tool_call.name + '&gt;\\n' }}                {%- endif %}                {%- if tool_call.arguments is mapping %}                    {%- for args_name in tool_call.arguments %}                        {%- set args_value = tool_call.arguments[args_name] %}                        {{- '&lt;parameter=' + args_name + '&gt;\\n' }}                        {%- set args_value = args_value | tojson if args_value is mapping or (args_value is iterable and args_value is not string) else args_value | string %}                        {{- args_value }}                        {{- '\\n&lt;\/parameter&gt;\\n' }}                    {%- endfor %}                {%- endif %}                {{- '&lt;\/function&gt;\\n&lt;\/tool_call&gt;' }}            {%- endfor %}        {%- endif %}        {{- '&lt;|im_end|&gt;\\n' }}    {%- elif message.role == \"tool\" %}        {%- if loop.previtem and loop.previtem.role != \"tool\" %}            {{- '&lt;|im_start|&gt;user' }}        {%- endif %}        {{- '\\n&lt;tool_response&gt;\\n' }}        {{- content }}        {{- '\\n&lt;\/tool_response&gt;' }}        {%- if not loop.last and loop.nextitem.role != \"tool\" %}            {{- '&lt;|im_end|&gt;\\n' }}        {%- elif loop.last %}            {{- '&lt;|im_end|&gt;\\n' }}        {%- endif %}    {%- else %}        {{- raise_exception('Unexpected message role.') }}    {%- endif %}{%- endfor %}{%- if add_generation_prompt %}    {{- '&lt;|im_start|&gt;assistant\\n' }}    {%- if enable_thinking is defined and enable_thinking is false %}        {{- '&lt;think&gt;\\n\\n&lt;\/think&gt;\\n\\n' }}    {%- else %}        {{- '&lt;think&gt;\\n' }}    {%- endif %}{%- endif %}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><\/p>\n<\/div>\n<\/details>\n<p><strong>\u0418 \u041f\u0415\u0420\u0415\u0414 \u0442\u0435\u0441\u0442\u043e\u043c, \u0442\u0430\u043c \u0436\u0435 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 LMstudio<\/strong>, \u0433\u0434\u0435 jinja \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0432 \u043d\u0435\u043c  \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u043c thinkining, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0432\u0435\u0442\u044b \u0431\u044b\u043b\u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u044d\u0442\u043e<\/p>\n<p><code><strong>{%- set enable_thinking = false %}<\/strong><\/code><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e4b\/bc9\/78f\/e4bbc978f90d5860adda25fb222480e5.png\" width=\"1641\" height=\"1137\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e4b\/bc9\/78f\/e4bbc978f90d5860adda25fb222480e5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e4b\/bc9\/78f\/e4bbc978f90d5860adda25fb222480e5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0435\u0441\u043b\u0438 \u043e\u0442\u043c\u043e\u0442\u0430\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u043e\u043a\u043d\u0435 \u0432\u044b\u0448\u0435 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442\u0430 jinja-\u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c <strong>\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442<\/strong>, \u0443 \u043c\u0435\u043d\u044f \u043e\u043d \u0442\u0430\u043a\u043e\u0439 \ud83d\ude01 <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/54c\/ed7\/5b0\/54ced75b0e43aa5931a6fa697f151375.png\" alt=\"\u0418\u0434\u0435\u044f \u0431\u044b\u043b\u0430, \u0447\u0442\u043e\u0431\u044b llm \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043b\u0430 \u0442\u043e\u043a\u0435\u043d\u044b \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u041f\u043e \u0444\u0430\u043a\u0442\u0443 \u043d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u0438\u043b\u0438 \u043d\u0435\u0442, \u043d\u043e \u0442\u043e\u0447\u043d\u043e llm \u043f\u043e\u043a\u043e\u0440\u043e\u0447\u0435 \u0441\u0442\u0430\u043b\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c\" title=\"\u0418\u0434\u0435\u044f \u0431\u044b\u043b\u0430, \u0447\u0442\u043e\u0431\u044b llm \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043b\u0430 \u0442\u043e\u043a\u0435\u043d\u044b \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u041f\u043e \u0444\u0430\u043a\u0442\u0443 \u043d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u0438\u043b\u0438 \u043d\u0435\u0442, \u043d\u043e \u0442\u043e\u0447\u043d\u043e llm \u043f\u043e\u043a\u043e\u0440\u043e\u0447\u0435 \u0441\u0442\u0430\u043b\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c\" width=\"612\" height=\"508\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/54c\/ed7\/5b0\/54ced75b0e43aa5931a6fa697f151375.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/54c\/ed7\/5b0\/54ced75b0e43aa5931a6fa697f151375.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0434\u0435\u044f \u0431\u044b\u043b\u0430, \u0447\u0442\u043e\u0431\u044b llm \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043b\u0430 \u0442\u043e\u043a\u0435\u043d\u044b \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u041f\u043e \u0444\u0430\u043a\u0442\u0443 \u043d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u0438\u043b\u0438 \u043d\u0435\u0442, \u043d\u043e \u0442\u043e\u0447\u043d\u043e llm \u043f\u043e\u043a\u043e\u0440\u043e\u0447\u0435 \u0441\u0442\u0430\u043b\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0433\u043e\u0442\u043e\u0432\u043e! \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0430\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0438\u0441\u043a \u0441\u043b\u0435\u0432\u0430. \u0410 \u043f\u043e\u0442\u043e\u043c \u0433\u0440\u0443\u0437\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0432 \u043f\u0430\u043c\u044f\u0442\u044c, \u043d\u0430\u0447\u043d\u0435\u043c \u0441 <strong>\u041d\u041e\u0412\u0415\u041d\u042c\u041a\u041e\u0419 Qwen3.6-35B-A3B-Q4_K_M <\/strong>\u0433\u0440\u0443\u0437\u0438\u043c \u0435\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c! \u0412 \u0441\u0430\u043c\u043e\u0439 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 LMstudio \u043f\u043e \u0446\u0435\u043d\u0442\u0440\u0443 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <strong>\u0417\u0410\u0413\u0420\u0423\u0416\u0415\u041d\u041d\u0423\u042e<\/strong> \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438!<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d43\/baf\/8d7\/d43baf8d74c3c9cd1a3381473faedff2.png\" alt=\"\u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0438\u0436\u0435 \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0442\u044c. \u0415\u0441\u043b\u0438 LLM \u043d\u0430\u0447\u0430\u043b\u0430 \u0433\u0430\u043b\u043b\u044e\u0446\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u0442\u0432\u0435\u0442\u0430\u0445, \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u043c \u0438\u043b\u0438 \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u043e\u043c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0440\u0443\u0441\u0441\u043a\u0438\u043c, \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u044b &quot;\u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438&quot; \u0435\u0435, \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u0435 \u0432\u0441\u0435 \u043d\u0430\u0437\u0430\u0434\" title=\"\u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0438\u0436\u0435 \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0442\u044c. \u0415\u0441\u043b\u0438 LLM \u043d\u0430\u0447\u0430\u043b\u0430 \u0433\u0430\u043b\u043b\u044e\u0446\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u0442\u0432\u0435\u0442\u0430\u0445, \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u043c \u0438\u043b\u0438 \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u043e\u043c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0440\u0443\u0441\u0441\u043a\u0438\u043c, \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u044b &quot;\u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438&quot; \u0435\u0435, \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u0435 \u0432\u0441\u0435 \u043d\u0430\u0437\u0430\u0434\" width=\"1125\" height=\"917\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d43\/baf\/8d7\/d43baf8d74c3c9cd1a3381473faedff2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d43\/baf\/8d7\/d43baf8d74c3c9cd1a3381473faedff2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0438\u0436\u0435 \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0442\u044c. \u0415\u0441\u043b\u0438 LLM \u043d\u0430\u0447\u0430\u043b\u0430 \u0433\u0430\u043b\u043b\u044e\u0446\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u0442\u0432\u0435\u0442\u0430\u0445, \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u043c \u0438\u043b\u0438 \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u043e\u043c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0440\u0443\u0441\u0441\u043a\u0438\u043c, \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u044b &#171;\u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438&#187; \u0435\u0435, \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u0435 \u0432\u0441\u0435 \u043d\u0430\u0437\u0430\u0434<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0431\u0440\u0430\u0449\u0430\u0435\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u0440\u0430\u0441\u043d\u043e\u0435 \u0441\u0432\u0435\u0440\u0445\u0443, \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c! <strong>\u0412\u0410\u0416\u041d\u041e<\/strong> \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0437\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <strong>80-90%<\/strong> \u0435\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0435 <strong>&#171;\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043d\u0430 GPU&#187;<\/strong>, \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 <strong>90%<\/strong> \u043e\u0431\u0449\u0435\u0439 VRAM. \u0418 <strong>&#171;\u0414\u043b\u0438\u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430&#187;<\/strong> \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 <strong>60\u043a<\/strong> \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043d\u0443 \u0438\u043b\u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u043d\u0443\u0436\u0434\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0439 <strong>RAM <\/strong>(\u0437\u0434\u0435\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0439 RAM \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b)<\/p>\n<p><strong>\u041d\u0410\u0428 \u041e\u0421\u041d\u041e\u0412\u041d\u041e\u0419 \u041f\u0420\u041e\u041c\u041f\u0422 \u0414\u041b\u042f \u041f\u0420\u041e\u0415\u041a\u0422\u0410:<\/strong><\/p>\n<p><em>\u041f\u0440\u0438\u0432\u0435\u0442. \u0422\u044b \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a React\/NextJS. \u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0442\u044b \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439,\u0441\u0442\u0438\u043b\u044c\u043d\u044b\u0439 \u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 \u0432 \u0442\u0435\u043c\u043d\u043e\u0439 \u0441\u0442\u0438\u043b\u0438\u0441\u0442\u0438\u043a\u0435 Deep Blue &amp; Violet \u043d\u0430 \u0442\u0435\u043c\u0443 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432, \u0438 \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0431\u044b\u043b \u043a\u0440\u0443\u0442\u043e\u0439 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043f\u043e\u0442\u0435\u0447\u043d\u044b\u0439 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440. \u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0442\u0435\u043a: react \/ nextjs \/ tailwind css. \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u044b\u043c \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u043c \u043a \u043f\u043e\u043a\u0430\u0437\u0443 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 npm run dev. \u041e\u0431\u0440\u0430\u0442\u0438 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0442\u043a\u0443! \u0427\u0442\u043e\u0431\u044b \u0441\u0430\u0439\u0442 \u0431\u044b\u043b \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u043c \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u0446\u0435\u043d\u0442\u0440\u043e\u0432\u0430\u043d\u043e \u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u043e<\/em><br \/>(\u0434\u0430\u043b\u0435\u0435 \u044f \u0431\u0443\u0434\u0443 \u0443\u0431\u0438\u0440\u0430\u0442\u044c\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c <em>Deep Blue &amp; Violet , \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c)<\/em> <\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0441 <strong>Qwen3.6-35B-A3B-Q4_K_M  <\/strong>\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u0441\u0430\u0439\u0442 \u0437\u0430 ~20-30 \u043c\u0438\u043d\u0443\u0442, \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 15-20 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u041f\u0440\u0438 \u0443\u0434\u043b\u0438\u043d\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0447\u0443\u0442\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434<\/p>\n<pre><code>next.config.ts  node_modules\/  package-lock.json   public\/  tsconfig.jsonnext-env.d.ts   package.json   postcss.config.mjs  src\/<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e22\/bc5\/085\/e22bc5085220a7c5e8706ec62bb010dd.png\" width=\"2533\" height=\"1245\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e22\/bc5\/085\/e22bc5085220a7c5e8706ec62bb010dd.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e22\/bc5\/085\/e22bc5085220a7c5e8706ec62bb010dd.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/408\/90e\/6ee\/40890e6ee67db4e9e1e2158f2e6d9500.png\" width=\"2553\" height=\"1238\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/408\/90e\/6ee\/40890e6ee67db4e9e1e2158f2e6d9500.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/408\/90e\/6ee\/40890e6ee67db4e9e1e2158f2e6d9500.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u0438\u0434\u0438\u043c \u0432 \u0446\u0435\u043b\u043e\u043c &#171;<strong>\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e<\/strong>&#187; \u0440\u0430\u0431\u043e\u0442\u0443 \ud83d\ude01  \u0421 \u0432\u0435\u0440\u0441\u0442\u043a\u043e\u0439 \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c LLM. \u041f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u044b\u0432\u0430\u0442\u044c \u0438 \u0444\u0438\u043a\u0441\u0438\u0442\u044c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043d\u0443\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439.<\/p>\n<p><strong>Qwen3.6-35B-A3B-Q4_K_M  <\/strong>\u0442\u0435\u0441\u0442 \u0437\u0430\u0432\u0430\u043b\u0438\u043b\u0430!<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u0435<strong> Qwen3.6-35B-A3B-Q6, <\/strong>\u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u043a\u0436\u0435 \u0432 \u0413\u0411 \u043d\u0430 10% \u0432\u044b\u0448\u0435 Q4. \u041f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 30 \u043c\u0438\u043d\u0443\u0442 \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 &#171;\u043f\u0440\u043e\u0435\u043a\u0442&#187;<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 <strong>\u0420\u0415\u0417\u0423\u041b\u042c\u0422\u0410\u0422<\/strong>:<\/p>\n<pre><code>AGENTS.md          next-env.d.ts      postcss.config.mjs  srccomponents\/            srccomponentsfooter\/  srchooks\/CLAUDE.md          node_modules\/      public\/             srccomponentscalculator\/  srccomponentshero\/    srclib\/eslint.config.mjs  package.json       README.md           srccomponentscharts\/      srccomponentsnav\/     tsconfig.jsonnext.config.ts     package-lock.json  src\/                srccomponentsfeatures\/    srccomponentsstats\/<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/828\/751\/b37\/828751b374bb73fd658915e9dbe0e7b1.png\" width=\"2545\" height=\"1219\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/828\/751\/b37\/828751b374bb73fd658915e9dbe0e7b1.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/828\/751\/b37\/828751b374bb73fd658915e9dbe0e7b1.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fbf\/64a\/642\/fbf64a64225ab3a81695b2c2403cd4ab.png\" width=\"2170\" height=\"1114\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/fbf\/64a\/642\/fbf64a64225ab3a81695b2c2403cd4ab.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fbf\/64a\/642\/fbf64a64225ab3a81695b2c2403cd4ab.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>Qwen3.6-35B-A3B-Q6  <\/strong>\u0442\u0435\u0441\u0442<strong> \u0417\u0410\u0412\u0410\u041b\u0418\u041b\u0410!<\/strong><\/p>\n<p><strong>\u0414\u0430\u043b\u0435\u0435 qwen-3.5<\/strong> (\u0442\u0443\u0442 \u043d\u0435 \u043f\u043e\u043c\u043d\u044e, \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u044d\u0442\u043e 9b \u0431\u044b\u043b\u0430)<strong>. <\/strong>\u0422\u0430\u043a\u0436\u0435 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 20-<strong>30 \u043c\u0438\u043d\u0443\u0442<\/strong> \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/03d\/629\/b6f\/03d629b6f351d10aedb540344161197d.png\" width=\"2519\" height=\"1234\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/03d\/629\/b6f\/03d629b6f351d10aedb540344161197d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/03d\/629\/b6f\/03d629b6f351d10aedb540344161197d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c35\/ba7\/19f\/c35ba719f9680e8c83438d392d80bfa3.png\" width=\"2212\" height=\"1242\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c35\/ba7\/19f\/c35ba719f9680e8c83438d392d80bfa3.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c35\/ba7\/19f\/c35ba719f9680e8c83438d392d80bfa3.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u0418\u0442\u043e\u0433 \u0434\u043b\u044f QWEN&#8217;\u043e\u0432<\/strong>:<\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430 \u043a\u0432\u0438\u043d\u043e\u0432 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e \u043b\u0443\u0447\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f openclaw \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u0433\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447, \u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0438\u0434\u0438\u043c\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0438 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a &#171;\u0434\u043e\u0440\u043e\u0433\u0438\u043c&#187; \u043c\u043e\u0434\u0435\u043b\u044f\u043c \u0437\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043f\u043b\u0430\u043d\u043e\u043c \u0438 \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u0430\u043f\u044b(\u0444\u0430\u0437\u044b)<\/p>\n<p><strong>\u0414\u0430\u043b\u0435\u0435<\/strong> <strong>\u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a<\/strong> <strong>Gemma-4-26b-a4b<\/strong> (\u0434\u0438\u0437\u0430\u0439\u043d \u043d\u0435 Deep Blue)<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bcf\/4c6\/16c\/bcf4c616cc7ee5bb8dd41729b0bed0b1.png\" width=\"2557\" height=\"1239\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/bcf\/4c6\/16c\/bcf4c616cc7ee5bb8dd41729b0bed0b1.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bcf\/4c6\/16c\/bcf4c616cc7ee5bb8dd41729b0bed0b1.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/893\/26d\/3fc\/89326d3fc79a7b9a775d207fa4ade176.png\" width=\"2559\" height=\"1223\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/893\/26d\/3fc\/89326d3fc79a7b9a775d207fa4ade176.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/893\/26d\/3fc\/89326d3fc79a7b9a775d207fa4ade176.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f, \u0432\u0441\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0445\u043e\u0442\u044c \u0438 \u043f\u0440\u043e\u0449\u0435. <br \/><strong>Gemma-4-26b-a4b<\/strong>  <strong>TEST PASSED!<\/strong><\/p>\n<p><strong>\u0414\u0430\u043b\u0435\u0435<\/strong> <strong>Gemma-4-31b<\/strong> , \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u043e\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435, \u043d\u043e \u0414\u041e\u041b\u0413\u0418\u0419! \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u043e\u0432.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ec\/269\/dca\/9ec269dcaa1c7e24c429b0724de0608d.png\" width=\"2557\" height=\"1233\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/9ec\/269\/dca\/9ec269dcaa1c7e24c429b0724de0608d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ec\/269\/dca\/9ec269dcaa1c7e24c429b0724de0608d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa3\/1c7\/cb9\/fa31c7cb9bf084f61409da45c7a1a070.png\" width=\"2555\" height=\"1239\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/fa3\/1c7\/cb9\/fa31c7cb9bf084f61409da45c7a1a070.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa3\/1c7\/cb9\/fa31c7cb9bf084f61409da45c7a1a070.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u0435\u0442. \u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.<br \/><strong>Gemma-4-31b<\/strong> <strong>TEST PASSED! <\/strong>\u0414\u0430 \u0434\u043e\u043b\u0433\u043e, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0435\u0440\u043f\u0435\u0442\u044c)<\/p>\n<p><strong>\u0411\u041e\u041d\u0423\u0421!<\/strong><br \/><strong>Claude Opus 4.7 <\/strong>\u0442\u0430\u043a \u0438 \u043d\u0435 \u0441\u043c\u043e\u0433 \u043f\u043e\u0444\u0438\u043a\u0441\u0438\u0442\u044c \u0437\u0430 5-6 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0435\u0440\u0441\u0442\u043a\u0443 &#171;\u043a\u0432\u0438\u043d\u043e\u0432&#187; \ud83d\ude2d<\/p>\n<p><strong>\u0417\u0410\u041c\u0415\u0427\u0410\u041d\u0418\u042f<\/strong><br \/>\u041f\u0440\u0435\u0434\u0432\u0438\u0436\u0443 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0432 \u0441\u0442\u0438\u043b\u0435 &#171;\u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043b\u0430\u043d \u0432 Opus\/Gemini 3.1 pro, \u0430 \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0443\u043b\u044f\u0442\u044c&#187;. \u0421 \u0447\u0435\u043c <strong>\u041d\u0415 \u0421\u041e\u0413\u041b\u0410\u0428\u0423\u0421\u042c, <\/strong>\u0442\u0430\u043a \u043a\u0430\u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c <strong>\u041e\u0411\u042f\u0417\u0410\u041d\u0410<\/strong> \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u0430\u043a\u0436\u0435, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0447\u0442\u043e \u0441 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043f\u043b\u0430\u043d\u043e\u043c \u0438\u0437 <strong>Opus\/Gemini<\/strong> \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u044f\u0442 \u0431\u044b\u043b \u0431\u044b \u0434\u0440\u0443\u0433\u0438\u043c, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0447\u0438\u0441\u0442\u044b\u0439 \u0442\u0435\u0441\u0442.<\/p>\n<p><strong>\u041c\u043e\u0438 \u0432\u044b\u0432\u043e\u0434\u044b:<\/strong><br \/>\u0412\u0440\u0435\u043c\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 <strong>\u0420\u0415\u0410\u041b\u042c\u041d\u041e<\/strong> \u043c\u043e\u0433\u0443\u0442 \u0443\u0436\u0435 \u043f\u0440\u0438\u0448\u043b\u043e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043d\u043e\u0443\u0442\u0431\u0443\u043a \u043f\u0440\u0435\u043c\u0438\u0443\u043c \u043a\u043b\u0430\u0441\u0441\u0430 \u0441 DDR5 \u0438\u043b\u0438 \u0442\u043e\u0442 \u0436\u0435 <strong>mac<\/strong> \u0441 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c \u043a\u043e\u043b-\u0432\u043e\u043c <strong>RAM<\/strong>. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0441 \u0434\u043b\u0438\u043d\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0435\u0449\u0435 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c llm, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u04452 RAM \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u0445, \u0438 \u043c\u043e\u0433\u0443\u0442 \u0442\u0435\u0440\u044f\u0442\u044c\u0441\u044f \u0434\u0435\u0442\u0430\u043b\u0438, \u043b\u0443\u0447\u0448\u0435 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0435 \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447 \u0438 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0432 \u0444\u0430\u0439\u043b\u044b. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0447\u0430\u0442\u0430 \u0441 \u0430\u0433\u0435\u043d\u0442\u043e\u043c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0436\u0430\u0442\u044c \u0435\u0435 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p><strong>\u041c\u0438\u043d\u0443\u0441\u044b \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430: <\/strong>\u0436\u0430\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0442\u0435\u0440\u043f\u0435\u0442\u044c \u0442\u043e\u0440\u043c\u043e\u0437\u0430  \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0432\u0441\u0435\u043c \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442.<\/p>\n<p>\u0422\u0443\u0442 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c, \u043d\u043e \u0435\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442) \u043d\u0443 \u0438\u043b\u0438 \u0438\u0449\u0438\u0442\u0435 <strong>linuxlife <\/strong>)<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1024932\/\">https:\/\/habr.com\/ru\/articles\/1024932\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442 ! \u0422\u0435\u043a\u0441\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c \u0438 \u043d\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u0418\u0418 !\u041d\u0430 \u0434\u043d\u044f\u0445 \u0432\u044b\u0448\u043b\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0442 \u0430\u043b\u0438\u0431\u0430\u0431\u044b &#8212; Qwen 3.6, \u0432\u0435\u0441\u044c \u0440\u0435\u0434\u0434\u0438\u0442 \u0437\u0430\u0431\u0438\u0442 \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u043e\u0439. \u0418 \u044f \u0440\u0438\u0441\u043a\u043d\u0443\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0447\u0442\u043e \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 Gemma 4 \u041e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b (\u043d\u043e\u0443\u0442\u0431\u0443\u043a Asus Tuf Gaming + \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u0430\u044f Nvidia rtx 4070 8GB): \u0421\u043e\u0444\u0442: Windows + LMstudio + Zed IDE* \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u0432\u0435\u0447\u0443 \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b opencode\/claude\/pi.dev \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 cli \u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430 tools \u0432 \u043d\u0438\u0445 \u0441\u043b\u0430\u0431\u0430\u044f, \u043c\u043d\u043e\u0433\u043e\u0435 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f, \u043b\u0438\u0431\u043e \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0434\u043e\u043b\u0433\u043e \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u043c\u043f\u0442\u043e\u0432, \u0438\u043b\u0438 \u0444\u0430\u0439\u043b\u044b \u043d\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f, \u0438\u043b\u0438 \u0441\u0431\u043e\u0438\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438 LLM \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u044c \u0432 \u043a\u0430\u043a\u043e\u0439 \u043e\u043d\u0430 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0435 &#8212; bash \u0438\u043b\u0438 powershell. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432 Zed IDE \u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c AI\u0427\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0442 \u0441 \u0430\u0433\u0435\u043d\u0442\u043e\u043c &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u043f\u0440\u0430\u0432\u043e\u043c \u0443\u0433\u043b\u0443 \u0437\u043d\u0430\u0447\u043e\u043a \u201c\u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0438\u201d. \u0415\u0441\u043b\u0438 \u0435\u0435 \u043d\u0435\u0442 &#8212; \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043f\u0443\u043d\u043a\u0442 AI \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0414\u043b\u044f \u0442\u0435\u0445 \u043a\u0442\u043e \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0445\u043e\u0447\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 cli &#8212; \u0435\u0441\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f qwen3.\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 LMstudio \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u0441\u043b\u0435\u0432\u0430 \u043d\u0430 \u0437\u043d\u0430\u0447\u043e\u043a &#171;MyModels&#187; (\u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043c\u044b\u0448\u0438)  , \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e qwen \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u0441\u043f\u0440\u0430\u0432\u0430 \u043e\u0442 \u043d\u0435\u0435 \u043d\u0430\u0436\u0430\u0442\u044c \u0438\u043a\u043e\u043d\u043a\u0443 \u0448\u0435\u0441\u0442\u0435\u0440\u0435\u043d\u043a\u0438, \u0434\u0430\u043b\u0435\u0435 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 inference \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u0443 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d jinja \u043d\u0430 \u044d\u0442\u043e\u0442\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442{%- set image_count = namespace(value=0) %}{%- set video_count = namespace(value=0) %}{%- macro render_content(content, do_vision_count, is_system_content=false) %}    {%- if content is string %}        {{- content }}    {%- elif content is iterable and content is not mapping %}        {%- for item in content %}            {%- if &#8216;image&#8217; in item or &#8216;image_url&#8217; in item or item.type == &#8216;image&#8217; %}                {%- if is_system_content %}                    {{- raise_exception(&#8216;System message cannot contain images.&#8217;) }}                {%- endif %}                {%- if do_vision_count %}                    {%- set image_count.value = image_count.value + 1 %}                {%- endif %}                {%- if add_vision_id %}                    {{- &#8216;Picture &#8216; ~ image_count.value ~ &#8216;: &#8216; }}                {%- endif %}                {{- &#8216;&lt;|vision_start|&gt;&lt;|image_pad|&gt;&lt;|vision_end|&gt;&#8217; }}            {%- elif &#8216;video&#8217; in item or item.type == &#8216;video&#8217; %}                {%- if is_system_content %}                    {{- raise_exception(&#8216;System message cannot contain videos.&#8217;) }}                {%- endif %}                {%- if do_vision_count %}                    {%- set video_count.value = video_count.value + 1 %}                {%- endif %}                {%- if add_vision_id %}                    {{- &#8216;Video &#8216; ~ video_count.value ~ &#8216;: &#8216; }}                {%- endif %}                {{- &#8216;&lt;|vision_start|&gt;&lt;|video_pad|&gt;&lt;|vision_end|&gt;&#8217; }}            {%- elif &#8216;text&#8217; in item %}                {{- item.text }}            {%- else %}                {{- raise_exception(&#8216;Unexpected item type in content.&#8217;) }}            {%- endif %}        {%- endfor %}    {%- elif content is none or content is undefined %}        {{- &#187; }}    {%- else %}        {{- raise_exception(&#8216;Unexpected content type.&#8217;) }}    {%- endif %}{%- endmacro %}{%- if not messages %}    {{- raise_exception(&#8216;No messages provided.&#8217;) }}{%- endif %}{%- if tools and tools is iterable and tools is not mapping %}    {{- &#8216;&lt;|im_start|&gt;system\\n&#8217; }}    {{- &#171;# Tools\\n\\nYou have access to the following functions:\\n\\n&lt;tools&gt;&#187; }}    {%- for tool in tools %}        {{- &#171;\\n&#187; }}        {{- tool | tojson }}    {%- endfor %}    {{- &#171;\\n&lt;\/tools&gt;&#187; }}    {{- &#8216;\\n\\nIf you choose to call a function ONLY reply in the following format with NO suffix:\\n\\n&lt;tool_call&gt;\\n&lt;function=example_function_name&gt;\\n&lt;parameter=example_parameter_1&gt;\\nvalue_1\\n&lt;\/parameter&gt;\\n&lt;parameter=example_parameter_2&gt;\\nThis is the value for the second parameter\\nthat can span\\nmultiple lines\\n&lt;\/parameter&gt;\\n&lt;\/function&gt;\\n&lt;\/tool_call&gt;\\n\\n&lt;IMPORTANT&gt;\\nReminder:\\n- Function calls MUST follow the specified format: an inner &lt;function=&#8230;&gt;&lt;\/function&gt; block must be nested within &lt;tool_call&gt;&lt;\/tool_call&gt; XML tags\\n- Required parameters MUST be specified\\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\\n&lt;\/IMPORTANT&gt;&#8217; }}    {%- if messages[0].role == &#8216;system&#8217; %}        {%- set content = render_content(messages[0].content, false, true)|trim %}        {%- if content %}            {{- &#8216;\\n\\n&#8217; + content }}        {%- endif %}    {%- endif %}    {{- &#8216;&lt;|im_end|&gt;\\n&#8217; }}{%- else %}    {%- if messages[0].role == &#8216;system&#8217; %}        {%- set content = render_content(messages[0].content, false, true)|trim %}        {{- &#8216;&lt;|im_start|&gt;system\\n&#8217; + content + &#8216;&lt;|im_end|&gt;\\n&#8217; }}    {%- endif %}{%- endif %}{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length &#8212; 1) %}{%- for message in messages[::-1] %}    {%- set index = (messages|length &#8212; 1) &#8212; loop.index0 %}    {%- if ns.multi_step_tool and message.role == &#171;user&#187; %}        {%- set content = render_content(message.content, false)|trim %}        {%- if not(content.startswith(&#8216;&lt;tool_response&gt;&#8217;) and content.endswith(&#8216;&lt;\/tool_response&gt;&#8217;)) %}            {%- set ns.multi_step_tool = false %}            {%- set ns.last_query_index = index %}        {%- endif %}    {%- endif %}{%- endfor %}{%- if ns.multi_step_tool %}    {{- raise_exception(&#8216;No user query found in messages.&#8217;) }}{%- endif %}{%- for message in messages %}    {%- set content = render_content(message.content, true)|trim %}    {%- if message.role == &#171;system&#187; %}        {%- if not loop.first %}            {{- raise_exception(&#8216;System message must be at the beginning.&#8217;) }}        {%- endif %}    {%- elif message.role == &#171;user&#187; %}        {{- &#8216;&lt;|im_start|&gt;&#8217; + message.role + &#8216;\\n&#8217; + content + &#8216;&lt;|im_end|&gt;&#8217; + &#8216;\\n&#8217; }}    {%- elif message.role == &#171;assistant&#187; %}        {%- set reasoning_content = &#187; %}        {%- if message.reasoning_content is string %}            {%- set reasoning_content = message.reasoning_content %}        {%- else %}            {%- if &#8216;&lt;\/think&gt;&#8217; in content %}                {%- set reasoning_content = content.split(&#8216;&lt;\/think&gt;&#8217;)[0].rstrip(&#8216;\\n&#8217;).split(&#8216;&lt;think&gt;&#8217;)[-1].lstrip(&#8216;\\n&#8217;) %}                {%- set content = content.split(&#8216;&lt;\/think&gt;&#8217;)[-1].lstrip(&#8216;\\n&#8217;) %}            {%- endif %}        {%- endif %}        {%- set reasoning_content = reasoning_content|trim %}        {%- if loop.index0 &gt; ns.last_query_index %}            {{- &#8216;&lt;|im_start|&gt;&#8217; + message.role + &#8216;\\n&lt;think&gt;\\n&#8217; + &#8216;I cannot call a tool until I stop thinking.&#8217; + reasoning_content + &#8216;\\n&lt;\/think&gt;\\n\\n&#8217; + content }}        {%- else %}            {{- &#8216;&lt;|im_start|&gt;&#8217; + message.role + &#8216;\\n&#8217; + content }}        {%- endif %}        {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}            {%- for tool_call in message.tool_calls %}                {%- if tool_call.function is defined %}                    {%- set tool_call = tool_call.function %}                {%- endif %}                {%- if loop.first %}                    {%- if content|trim %}                        {{- &#8216;\\n\\n&lt;tool_call&gt;\\n&lt;function=&#8217; + tool_call.name + &#8216;&gt;\\n&#8217; }}                    {%- else %}                        {{- &#8216;&lt;tool_call&gt;\\n&lt;function=&#8217; + tool_call.name + &#8216;&gt;\\n&#8217; }}                    {%- endif %}                {%- else %}                    {{- &#8216;\\n&lt;tool_call&gt;\\n&lt;function=&#8217; + tool_call.name + &#8216;&gt;\\n&#8217; }}                {%- endif %}                {%- if tool_call.arguments is mapping %}                    {%- for args_name in tool_call.arguments %}                        {%- set args_value = tool_call.arguments[args_name] %}                        {{- &#8216;&lt;parameter=&#8217; + args_name + &#8216;&gt;\\n&#8217; }}                        {%- set args_value = args_value | tojson if args_value is mapping or (args_value is iterable and args_value is not string) else args_value | string %}                        {{- args_value }}                        {{- &#8216;\\n&lt;\/parameter&gt;\\n&#8217; }}                    {%- endfor %}                {%- endif %}                {{- &#8216;&lt;\/function&gt;\\n&lt;\/tool_call&gt;&#8217; }}            {%- endfor %}        {%- endif %}        {{- &#8216;&lt;|im_end|&gt;\\n&#8217; }}    {%- elif message.role == &#171;tool&#187; %}        {%- if loop.previtem and loop.previtem.role != &#171;tool&#187; %}            {{- &#8216;&lt;|im_start|&gt;user&#8217; }}        {%- endif %}        {{- &#8216;\\n&lt;tool_response&gt;\\n&#8217; }}        {{- content }}        {{- &#8216;\\n&lt;\/tool_response&gt;&#8217; }}        {%- if not loop.last and loop.nextitem.role != &#171;tool&#187; %}            {{- &#8216;&lt;|im_end|&gt;\\n&#8217; }}        {%- elif loop.last %}            {{- &#8216;&lt;|im_end|&gt;\\n&#8217; }}        {%- endif %}    {%- else %}        {{- raise_exception(&#8216;Unexpected message role.&#8217;) }}    {%- endif %}{%- endfor %}{%- if add_generation_prompt %}    {{- &#8216;&lt;|im_start|&gt;assistant\\n&#8217; }}    {%- if enable_thinking is defined and enable_thinking is false %}        {{- &#8216;&lt;think&gt;\\n\\n&lt;\/think&gt;\\n\\n&#8217; }}    {%- else %}        {{- &#8216;&lt;think&gt;\\n&#8217; }}    {%- endif %}{%- endif %}\u0418 \u041f\u0415\u0420\u0415\u0414 \u0442\u0435\u0441\u0442\u043e\u043c, \u0442\u0430\u043c \u0436\u0435 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 LMstudio, \u0433\u0434\u0435 jinja \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0432 \u043d\u0435\u043c  \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u043c thinkining, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0432\u0435\u0442\u044b \u0431\u044b\u043b\u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u044d\u0442\u043e{%- set enable_thinking = false %}\u0414\u0430\u043b\u0435\u0435 \u0435\u0441\u043b\u0438 \u043e\u0442\u043c\u043e\u0442\u0430\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u043e\u043a\u043d\u0435 \u0432\u044b\u0448\u0435 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442\u0430 jinja-\u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442, \u0443 \u043c\u0435\u043d\u044f \u043e\u043d \u0442\u0430\u043a\u043e\u0439 \ud83d\ude01 \u0418\u0434\u0435\u044f \u0431\u044b\u043b\u0430, \u0447\u0442\u043e\u0431\u044b llm \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043b\u0430 \u0442\u043e\u043a\u0435\u043d\u044b \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u041f\u043e \u0444\u0430\u043a\u0442\u0443 \u043d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u0438\u043b\u0438 \u043d\u0435\u0442, \u043d\u043e \u0442\u043e\u0447\u043d\u043e llm \u043f\u043e\u043a\u043e\u0440\u043e\u0447\u0435 \u0441\u0442\u0430\u043b\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c\u0422\u0435\u043f\u0435\u0440\u044c \u0433\u043e\u0442\u043e\u0432\u043e! \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0430\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0438\u0441\u043a \u0441\u043b\u0435\u0432\u0430. \u0410 \u043f\u043e\u0442\u043e\u043c \u0433\u0440\u0443\u0437\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0432 \u043f\u0430\u043c\u044f\u0442\u044c, \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u041d\u041e\u0412\u0415\u041d\u042c\u041a\u041e\u0419 Qwen3.6-35B-A3B-Q4_K_M \u0433\u0440\u0443\u0437\u0438\u043c \u0435\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c! \u0412 \u0441\u0430\u043c\u043e\u0439 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 LMstudio \u043f\u043e \u0446\u0435\u043d\u0442\u0440\u0443 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0417\u0410\u0413\u0420\u0423\u0416\u0415\u041d\u041d\u0423\u042e \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438!\u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-476462","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/476462","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=476462"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/476462\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=476462"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=476462"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=476462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}