{"id":478423,"date":"2026-05-04T04:13:46","date_gmt":"2026-05-04T04:13:46","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=478423"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=478423","title":{"rendered":"\u0421\u0435\u043f\u0430\u0440\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u043b\u043e\u0433\u043e\u0432. \u0421\u0436\u0438\u043c\u0430\u0435\u043c \u043b\u043e\u0433\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 LLM \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u0438"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u042f \u0434\u0443\u043c\u0430\u044e, \u043c\u043d\u043e\u0433\u0438\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0435\u043f\u0430\u0440\u0430\u0442\u043e\u0440-\u0442\u043e, \u0447\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043b\u0438\u0432\u043a\u0438 \u043e\u0442 \u043c\u043e\u043b\u043e\u043a\u0430. \u041c\u043e\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 logzip \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0435\u043c \u0436\u0435 \u0441\u0430\u043c\u044b\u043c &#8212; \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043b\u0438\u0432\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043b\u043e\u0433\u043e\u0432, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0441\u0430\u043c\u0443\u044e \u0441\u0443\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0434\u0430\u0447\u0435\u0439 \u0438\u0445 \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437 \u0432 LLM.<\/p>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0443 \u0441\u0440\u0430\u0437\u0443 &#8212; \u044f \u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c, \u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c,  \u043d\u043e \u043d\u0435 \u043c\u043e\u0433 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0448\u0443 \u0441\u0443\u0434\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u0433\u043e \u0437\u0430 \u043f\u043e\u0434\u0430\u0447\u0443 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430. <\/p>\n<p>\u041d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0435 \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044f \u0437\u0434\u0435\u0441\u044c \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u044e <a href=\"https:\/\/habr.com\/ru\/articles\/1026040\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/1026040\/<\/a> \u043a\u0430\u043c\u0440\u0430\u0434\u0430 <a class=\"mention\" href=\"\/users\/sergeivsk\">@sergeivsk<\/a> \u0438 \u043a\u0430\u043a \u0440\u0430\u0437 \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u043a\u043e\u0434\u0430. \u041f\u0440\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f\u0445 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043c\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0441\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0436\u0430\u043b\u0435\u0442\u044c \u0442\u043e\u043a\u0435\u043d\u044b, \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0432\u043f\u0443\u0441\u0442\u0443\u044e \u043d\u0430 \u043e\u0442\u0441\u0435\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 LLM \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0441\u0442\u0440\u043e\u043a, \u043d\u0435 \u043d\u0435\u0441\u0443\u0449\u0438\u0445 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u043c\u044b\u0441\u043b\u043e\u0432\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0422\u0430\u043a \u0438 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f logzip. \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 <a class=\"mention\" href=\"\/users\/sergeivsk\">@sergeivsk<\/a>\u044f \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u043b, \u0431\u044b\u043b\u0430 \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0434\u0435\u044f. \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0442\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0447\u0435\u043c \u0442\u043e \u0441\u043e\u0432\u043f\u0430\u043b\u0430.<\/p>\n<hr\/>\n<p>\u0418\u0442\u0430\u043a, \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f: \u0443 \u0432\u0430\u0441 \u043f\u0430\u0434\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441, \u0432\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0435 \u043b\u043e\u0433 \u0438 \u0432\u0438\u0434\u0438\u0442\u0435&#8230;. ~48k \u0441\u0442\u0440\u043e\u043a, \u0430 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 10 \u041c\u0411 \u0441\u044b\u0440\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u0438\u043b\u0438 2-3 \u043c\u043b\u043d \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0434\u043b\u044f Claude:<\/p>\n<p><code><em>\u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u043b\u043e\u0433<\/em><\/code><\/p>\n<pre><code>INFO: 127.0.0.1:45678 - \"GET \/api\/v1\/status HTTP\/1.1\" 200 OK [12 ms]INFO: 127.0.0.1:45679 - \"GET \/api\/v1\/status HTTP\/1.1\" 200 OK [11 ms]INFO: 127.0.0.1:45680 - \"GET \/api\/v1\/status HTTP\/1.1\" 200 OK [13 ms]... (5000 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u043e\u043a) ...ERROR: 127.0.0.1:51234 - \"POST \/api\/v1\/submit HTTP\/1.1\" 500 timeout [5000 ms]... (\u0435\u0449\u0451 5000 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445) ...<\/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><strong>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430<\/strong>: \u041c\u043e\u0434\u0435\u043b\u044c \u0432\u0438\u0434\u0438\u0442 5000+ \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0442\u0435\u0440\u044f\u0435\u0442 \u043e\u0434\u043d\u0443 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435. \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 \u0440\u0430\u0437\u043c\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u042d\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 LLM &#8212; Lost in the Middle, \u043a\u043e\u0433\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0445\u0443\u0436\u0435 \u0447\u0435\u043c \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0438\u043b\u0438 \u0432 \u043a\u043e\u043d\u0446\u0435. \u041c\u043e\u0434\u0435\u043b\u044c \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0442\u043e\u043d\u0435\u0442 \u0432 \u0441\u043e\u0442\u043d\u044f\u0445 \u043e\u0434\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a.<\/p>\n<p><strong>\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430<\/strong>, \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 &#8212; \u0432\u044b \u043f\u043b\u0430\u0442\u0438\u0442\u0435 \u0437\u0430 \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0435 \u043d\u0435\u0441\u0443\u0449\u0438\u0435 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u043c\u044b\u0441\u043b\u043e\u0432\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. 90% \u043b\u043e\u0433\u0430 &#8212; \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 INFO: 200 OK. <\/p>\n<hr\/>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u0430\u0436\u0443\u0442, &#171;\u0437\u0430\u0447\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440?&#187;, &#171;\u0435\u0441\u0442\u044c grep! \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0432\u0435\u0449\u0435\u0439&#187;. \u0418 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0430\u0432\u044b, \u043d\u043e \u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u043c.  \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e grep\/gzip\/zstd  \u0438 logzip &#8212; \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439. <\/p>\n<pre><code>gzip &lt; app.log | wc -c819 KB #\u0421\u0436\u0430\u0442\u0438\u0435 \u043d\u0430 90%! \u0421\u0443\u043f\u0435\u0440!<\/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<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043a\u043e\u0440\u043c\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0442\u043e\u0442 \u0436\u0435 Claude. \u041c\u043e\u0434\u0435\u043b\u044c \u043e\u0442\u043a\u0430\u0436\u0435\u0442 &#8212; \u043e\u043d\u0430 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435:<br \/>&#8212; \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442;<br \/>&#8212; \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u043c (\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438);<br \/>&#8212; \u0441\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435: \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0439;<br \/>&#8212; \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0442\u043e\u043a\u0435\u043d\u044b.<\/p>\n<pre><code>grep -i \"error\" # \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0433\u0440\u0435\u043f\u043d\u0443\u0442\u044c \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440ERROR: 127.0.0.1:51234 - \"POST \/api\/v1\/submit HTTP\/1.1\" 500 timeout [5000 ms]<\/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<p>&#171;\u0410 \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0441\u0442\u0430\u0440\u044b\u0439 \u0434\u043e\u0431\u0440\u044b\u0439 grep?&#187; \u0441\u043f\u0440\u043e\u0441\u044f\u0442 \u043e\u043b\u0434\u044b. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e grep \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u0435\u043d. \u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u0442\u0435 \u0438\u0437 \u043b\u043e\u0433\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438, \u0432\u044b \u043b\u0438\u0448\u0430\u0435\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. <\/p>\n<ul>\n<li>\n<p>\u041a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439?<\/p>\n<\/li>\n<li>\n<p>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0437\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u043c\u0438\u043d\u0443\u0442\u0443 \u0434\u043e \u043e\u0448\u0438\u0431\u043a\u0438?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0448\u043b\u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e?<\/p>\n<\/li>\n<li>\n<p>\u0411\u044b\u043b \u043b\u0438 \u0432\u0441\u043f\u043b\u0435\u0441\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438?<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0451, (\u043a\u0430\u043a gzip), \u0438\u043b\u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u043e \u043e\u0448\u0438\u0431\u043a\u0443 (\u043a\u0430\u043a grep), \u044f \u0440\u0435\u0448\u0438\u043b \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u043c\u0443\u0441\u043e\u0440. \u0422\u0443\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u043a\u0430\u043a \u0438 \u043f\u043e\u0434\u0445\u043e\u0434 <a class=\"mention\" href=\"\/users\/sergeivsk\">@sergeivsk<\/a>:<\/p>\n<ul>\n<li>\n<p>\u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430 INFO, GET \/api\/v1\/status, 127.0.0.1<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u044b #0#, #1#, #2#<\/p>\n<\/li>\n<li>\n<p>\u0425\u0440\u0430\u043d\u0438\u0442\u044c \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 LEGEND<\/p>\n<\/li>\n<li>\n<p>\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438 \u0438 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 BODY \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0432\u0438\u0434\u0435<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438:<\/p>\n<pre><code>2026-04-21T14:32:00Z INFO uvicorn.access 127.0.0.1 - \"GET \/api\/v1\/users HTTP\/1.1\" 200 45ms2026-04-21T14:32:01Z INFO uvicorn.access 127.0.0.1 - \"GET \/api\/v1\/users HTTP\/1.1\" 200 52ms2026-04-21T14:32:02Z INFO uvicorn.access 127.0.0.1 - \"POST \/api\/v1\/orders HTTP\/1.1\" 201 123ms2026-04-21T14:32:03Z INFO uvicorn.access 127.0.0.1 - \"GET \/api\/v1\/status HTTP\/1.1\" 200 3ms... (100 \u0441\u0442\u0440\u043e\u043a \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445) ...2026-04-21T14:33:45Z ERROR uvicorn.error Database connection timeout after 30s<\/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<p>\u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438:<\/p>\n<pre><code>--- PREFIX ---2026-04-21T14:32 INFO uvicorn.access 127.0.0.1 ---- LEGEND ---#0# = GET \/api\/v1\/users HTTP\/1.1\" 200#1# = GET \/api\/v1\/orders HTTP\/1.1\" 201#2# = GET \/api\/v1\/status HTTP\/1.1\" 200!1! = #0# 45ms       \u2190 \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434: \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0442\u0435\u0433\u043e\u0432--- BODY ---:00Z #0# 45ms:01Z #0# 52ms:02Z #1# 123ms:03Z #2# 3ms... (\u043a\u043e\u0440\u043e\u0447\u0435) ...:45Z ERROR uvicorn.error Database connection timeout after 30s  \u2190 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u044f \u0432\u0438\u0434\u043d\u0430!<\/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<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: <\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043c\u0435\u0440 8 \u041c\u0431 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u0434\u043e 3,4 \u041c\u0431 (~58%)<\/p>\n<\/li>\n<li>\n<p>\u0427\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c 10\/10 (\u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043b\u0451\u0442\u0443)<\/p>\n<\/li>\n<li>\n<p>\u0412\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a: 10\/10 (\u043e\u043d\u0438 \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u044b \u043c\u0443\u0441\u043e\u0440\u043e\u043c)<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<p><strong>\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/strong><\/p>\n<p>\u041c\u043d\u043e\u044e \u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d Rust + PyO3, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e:<br \/>1. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c ~200x \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0447\u0438\u0441\u0442\u044b\u043c Python. \u041d\u0430 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0445 \u043b\u043e\u0433\u0430\u0445 \u044d\u0442\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e. \u0422\u0430\u043a, \u0442\u0435 \u0436\u0435 8 \u041c\u0411 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0447\u0438\u0441\u0442\u043e \u043f\u0430\u0439\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u043a\u043e\u043b\u043e 2 \u043c\u0438\u043d\u0443\u0442.<br \/>2. \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c. \u041d\u0435\u0442 unsafe \u0431\u043b\u043e\u043a\u043e\u0432. Memory safety \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430.<br \/>3. PyO3: Rust \u043a\u043e\u0434 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 Python API \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 <em>pip install logzip<\/em><\/p>\n<p><em>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c:<\/em><\/p>\n<pre><code>raw log   \u2193[1] Profile Detection     \u2190 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0444\u043e\u0440\u043c\u0430\u0442 (journalctl\/docker\/uvicorn\/pino)   \u2193[2] Normalizer           \u2190 \u0443\u0431\u0438\u0440\u0430\u0435\u043c ANSI, \u043d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u044b, leading zeros   \u2193[3] Frequency Analysis   \u2190 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0441\u0447\u0451\u0442 n-\u0433\u0440\u0430\u043c\u043c (rayon)   \u2193[4] Legend Selection     \u2190 \u0436\u0430\u0434\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c (O(N), \u043d\u0435 O(N\u00b2))   \u2193[5] AhoCorasick Replace  \u2190 \u043e\u0434\u043d\u043e\u0445\u043e\u0434\u043d\u0430\u044f \u0437\u0430\u043c\u0435\u043d\u0430 \u0432\u0441\u0435\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432   \u2193[6] Recursive BPE        \u2190 \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434: \u0441\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0442\u043e\u043a\u0435\u043d\u043e\u0432   \u2193compressed text<\/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<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u043e?<\/p>\n<p><em>\u0423\u0437\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e (\u0431\u044b\u043b\u043e):<\/em> \u0432 Python \u0432\u0435\u0440\u0441\u0438\u0438 \u044f \u0441\u0447\u0438\u0442\u0430\u043b <em>working.count(value)<\/em> \u0432 \u0446\u0438\u043a\u043b\u0435 &#8212; O(N\u00b2) \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u041d\u0430 8 \u041c\u0431 \u044d\u0442\u043e \u0434\u0432\u0435 \u043c\u0438\u043d\u0443\u0442\u044b.<br \/><em>\u0420\u0435\u0448\u0435\u043d\u0438\u0435: <\/em>\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 O(N)), \u043f\u043e\u0442\u043e\u043c \u0436\u0430\u0434\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b \u0441 \u043c\u0435\u043c\u043e\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438. \u0418\u0442\u043e\u0433\u043e O(N log N).<br \/>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:  2 \u043c\u0438\u043d\u0443\u0442\u044b \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0434\u043e 0,4 \u0441\u0435\u043a\u0443\u043d\u0434. \u0423\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0432 215 \u0440\u0430\u0437<sup>.<\/sup><\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439<sup> <\/sup>\u043f\u0440\u043e\u0445\u043e\u0434<sup> <\/sup>-Recursive BPE<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u044f \u0442\u0435\u043a\u0441\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>#0# #1# 200 45ms#0# #1# 200 52ms#0# #1# 200 48ms<\/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<p>\u0412\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c #0# #1# 200 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f. \u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u0441\u0436\u0438\u043c\u0430\u0435\u0442 \u0435\u0435 \u0432 !1!:<\/p>\n<pre><code>!1! 45ms!1! 52ms!1! 48ms<\/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<p>\u042d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0434\u0430\u0435\u0442 \u0435\u0449\u0435 5-10% \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u0437\u0430 18 \u043c\u0441 \u0434\u043e\u043f. \u0432\u0440\u0435\u043c\u0435\u043d\u0438. BPE (Byte Pair Encoding) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u0440\u043e\u0434\u0435 #0# #1# \u0432 \u043d\u043e\u0432\u044b\u0439 \u0441\u0443\u043f\u0435\u0440-\u0442\u043e\u043a\u0435\u043d !1!\u00bb<\/p>\n<hr\/>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0435\u043f\u043b\u043e\u044f 1 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432 GitHub \u0438 \u043d\u0430 PyPI \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435 \u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0441\u044f &#8212; \u0430 \u043f\u043e\u0447\u0435\u043c \u0431\u044b \u043d\u0435 \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c MCP? \u0427\u0442\u043e \u043d\u0430\u043c \u0441\u0442\u043e\u0438\u0442 <s>\u0434\u043e\u043c<\/s> MCP \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c? \u0421\u043a\u0430\u0437\u0430\u043d\u043e &#8212; \u0441\u0434\u0435\u043b\u0430\u043d\u043e! <br \/>\u0411\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d MCP \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d \u0432 Claude \u0438 Cursor.<\/p>\n<pre><code>{  \"mcpServers\": {    \"logzip\": {      \"command\": \"logzip\",      \"args\": [\"mcp\", \"--allow-dir\", \"\/var\/log\"]    }  }}<\/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<p>MCP \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0441\u043f\u044b\u0442\u0430\u043d \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043c\u043d\u0435 \u043b\u043e\u0433\u0430\u0445.<\/p>\n<pre><code># \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442:&gt; Analyze \/var\/log\/app.log# Claude \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438:1. \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442 get_stats \/var\/log\/app.log   \u2192 Size: 15 MB (~3.7M tokens)   \u2192 After compression: ~6.3 MB (~1.5M tokens)   2. \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442 compress_file \/var\/log\/app.log --quality balanced --bpe-passes 23. \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0436\u0430\u0442\u044b\u0439 \u043b\u043e\u0433 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u04424. \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0437<\/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<hr\/>\n<p><strong>\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438 \u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430 <\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td colspan=\"5\" data-colwidth=\"50,0,0,0,0\" width=\"50\">\n<p align=\"center\">Benchmark \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c ~8\u041c\u0411 \u043b\u043e\u0433\u0435 (Uvicorn + Docker)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">\u0420\u0435\u0436\u0438\u043c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0440\u0435\u043c\u044f (\u043c\u0441)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0437\u043c\u0435\u0440 (\u041a\u0411)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0436\u0430\u0442\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">fast<\/p>\n<\/td>\n<td>\n<p align=\"left\">200<\/p>\n<\/td>\n<td>\n<p align=\"left\">4.900<\/p>\n<\/td>\n<td>\n<p align=\"left\">~40%<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u043e\u0447\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">balanced<\/p>\n<\/td>\n<td>\n<p align=\"left\">404<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.928<\/p>\n<\/td>\n<td>\n<p align=\"left\">~52%<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0432\u044b\u0431\u043e\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">balanced+BPE\u04452<\/p>\n<\/td>\n<td>\n<p align=\"left\">418<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.404<\/p>\n<\/td>\n<td>\n<p align=\"left\">~58%<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u043f\u0442\u0438\u043c\u0443\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"50\" width=\"50\">\n<p align=\"left\">max<\/p>\n<\/td>\n<td>\n<p align=\"left\">507<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.511<\/p>\n<\/td>\n<td>\n<p align=\"left\">~57%<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0432\u043e\u0445\u0430 max: \u043f\u043e\u0447\u0435\u043c\u0443 &#8212;quality max \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a  &#8212;quality balanced?<br \/>\u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e:<br \/>1. \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0430 \u0441 512 entries \u043c\u044b \u0443\u0436\u0435 \u0440\u0430\u0437\u0434\u0430\u0432\u0438\u043b\u0438 57% \u043e\u0431\u044a\u0435\u043c\u0430.<br \/>2. \u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0411\u0415\u0417 \u0442\u043e\u0433\u043e \u0436\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430.<br \/>3. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 400 \u044d\u043a\u0441\u0442\u0440\u0430 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043b\u0435\u0433\u0435\u043d\u0434\u0443- \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437\u0434\u0443\u0442\u044c \u0432\u044b\u0432\u043e\u0434.<br \/>4. \u0410 bpe-passes \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u041f\u0420\u041e\u0425\u041e\u0414, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044b  \u0432 \u0423\u0416\u0415 \u0441\u0436\u0430\u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435. \u0417\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0443\u0436\u0435\u043d? \u0417\u0430\u0442\u0435\u043c \u0447\u0442\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u0438\u0449\u0435\u0442 \u043d\u0435 \u043d\u043e\u0432\u044b\u0435 &#171;\u043a\u0440\u0443\u043f\u043d\u044b\u0435&#187; \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0430 \u041a\u041e\u041c\u0411\u0418\u041d\u0410\u0426\u0418\u0418 \u0443\u0436\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0433\u043e\u0432. \u042d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e, \u0447\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c 400 \u0440\u0435\u0434\u043a\u043e\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043b\u0435\u0433\u0435\u043d\u0434\u0443.<\/p>\n<pre><code>--quality max:      512 entries, 1 pass   \u2192 507ms, -57%--quality balanced: 99 entries, 1 pass    \u2192 404ms, -52%--quality balanced --bpe-passes 2:        \u2192 418ms, -58% \u2190 \u041f\u041e\u0411\u0415\u0414\u0418\u0422\u0415\u041b\u042c<\/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<p>\u0412\u044b\u0432\u043e\u0434: &#8212;quality max &#8212; \u043f\u0435\u0440\u0435\u043f\u043b\u0430\u0442\u0430 \u0437\u0430 \u043c\u0435\u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432.<\/p>\n<p><strong>\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430<\/strong><\/p>\n<pre><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502 \u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439: 10 \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c             \u2502\u2502 \u043f\u043e 7.96 \u041c\u0411 \u043b\u043e\u0433\u043e\u0432 \u043a\u0430\u0436\u0434\u044b\u0439                  \u2502\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\u2502                                          \u2502\u2502 \u0411\u0415\u0417 logzip:                              \u2502\u2502 \u2022 \u0420\u0430\u0437\u043c\u0435\u0440: 8 \u041c\u0411 = ~1,960,000 \u0442\u043e\u043a\u0435\u043d\u043e\u0432      \u2502\u2502 \u2022 \u041d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441: ~$2.00                      \u2502\u2502 \u2022 10 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432: $20\/\u0434\u0435\u043d\u044c = $600\/\u043c\u0435\u0441\u044f\u0446     \u2502\u2502                                          \u2502\u2502 \u0421 logzip (balanced --bpe-passes 2):      \u2502\u2502 \u2022 \u0420\u0430\u0437\u043c\u0435\u0440: 3.4 \u041c\u0411 = ~830,000 \u0442\u043e\u043a\u0435\u043d\u043e\u0432      \u2502\u2502 \u2022 \u041d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441: ~$0.85                      \u2502\u2502 \u2022 10 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432: $8.50\/\u0434\u0435\u043d\u044c = $255\/\u043c\u0435\u0441\u044f\u0446   \u2502\u2502                                          \u2502\u2502 \u042d\u043a\u043e\u043d\u043e\u043c\u0438\u044f: $345\/\u043c\u0435\u0441\u044f\u0446                     \u2502\u2502 \u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u044f: 10 \u043c\u0438\u043d\u0443\u0442 \u043d\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e       \u2502\u2502 ROI: 2070% \u0432 \u043c\u0435\u0441\u044f\u0446                       \u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/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<p>\u0421\u044b\u0440\u043e\u0439 \u043b\u043e\u0433:<\/p>\n<pre><code>... (3449 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432) ...INFO: 127.0.0.1:45678 - \"GET \/api\/v1\/status HTTP\/1.1\" 200 OKINFO: 127.0.0.1:45679 - \"GET \/api\/v1\/status HTTP\/1.1\" 200 OKERROR: Database connection timeout (\u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 \u0432 \u0448\u0443\u043c\u0435!)INFO: 127.0.0.1:45681 - \"GET \/api\/v1\/status HTTP\/1.1\" 200 OK... (\u0435\u0449\u0451 1500 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445) ...<\/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<p>\u043f\u043e\u0441\u043b\u0435 logzip:<\/p>\n<pre><code>--- LEGEND ---#0# = INFO: 127.0.0.1:... - \"GET \/api\/v1\/status HTTP\/1.1\" 200 OK--- BODY ---#0##0##0#ERROR: Database connection timeout \u2190 \u041a\u0440\u0438\u0447\u0438\u0442 \u043d\u0430 \u0432\u0441\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443!#0##0#...<\/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<p>\u041c\u043e\u0434\u0435\u043b\u044c \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u043d\u0435 \u0443\u0442\u043e\u043d\u0443\u0432 \u0432 5000 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 200 \u041e\u041a.<\/p>\n<p>\u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u043d\u044c\u0433\u0438.<br \/>\u0411\u044b\u043b\u043e (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u0437\u044f\u0442 \u0441 &#171;\u043f\u043e\u0442\u043e\u043b\u043a\u0430&#187;): $20\/\u043c\u0435\u0441\u044f\u0446 \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437 \u043b\u043e\u0433\u043e\u0432<br \/>\u0421\u0442\u0430\u043b\u043e: 8.5$\/\u043c\u0435\u0441\u044f\u0446<\/p>\n<hr\/>\n<p><strong>\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/strong><\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/p>\n<p><em>pip install logzip<\/em><\/p>\n<p>CLI <\/p>\n<p><em>logzip compress &#8212;quality balanced &#8212;bpe-passes 2 &lt; app.log | pbcopy<\/em><\/p>\n<p>Python API<\/p>\n<pre><code>from logzip import compressresult = compress(open(\"app.log\").read(), bpe_passes=2)print(result.render(with_preamble=True))  # \u2192 \u0432 Claudeprint(result.stats_str())                  # \u2192 \u043c\u0435\u0442\u0440\u0438\u043a\u0438<\/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<p>MCP <\/p>\n<p>1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a<\/p>\n<p> <em>cargo install logzip<\/em><\/p>\n<p>2.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 ~\/Library\/Application Support\/Claude\/claude_desktop_config.json<\/p>\n<p>3.\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Claude Code<\/p>\n<hr\/>\n<p>\u0421\u0441\u044b\u043b\u043a\u0438. \u041f\u043b\u0430\u043d\u044b. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u0438.<br \/>MIT \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f. <\/p>\n<p><a href=\"https:\/\/github.com\/NailShakurov\/logzip\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u043e\u0435\u043a\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 Github<\/a><\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044e @sergeivsk \u0437\u0430 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u0438\u0435<\/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\/1030964\/\">https:\/\/habr.com\/ru\/articles\/1030964\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u042f \u0434\u0443\u043c\u0430\u044e, \u043c\u043d\u043e\u0433\u0438\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0435\u043f\u0430\u0440\u0430\u0442\u043e\u0440-\u0442\u043e, \u0447\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043b\u0438\u0432\u043a\u0438 \u043e\u0442 \u043c\u043e\u043b\u043e\u043a\u0430. \u041c\u043e\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 logzip \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0435\u043c \u0436\u0435 \u0441\u0430\u043c\u044b\u043c &#8212; \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043b\u0438\u0432\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043b\u043e\u0433\u043e\u0432, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0441\u0430\u043c\u0443\u044e \u0441\u0443\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0434\u0430\u0447\u0435\u0439 \u0438\u0445 \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437 \u0432 LLM.\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0443 \u0441\u0440\u0430\u0437\u0443 &#8212; \u044f \u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c, \u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c,  \u043d\u043e \u043d\u0435 \u043c\u043e\u0433 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0448\u0443 \u0441\u0443\u0434\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u0433\u043e \u0437\u0430 \u043f\u043e\u0434\u0430\u0447\u0443 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430. \u041d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0435 \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044f \u0437\u0434\u0435\u0441\u044c \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u044e https:\/\/habr.com\/ru\/articles\/1026040\/ \u043a\u0430\u043c\u0440\u0430\u0434\u0430 @sergeivsk \u0438 \u043a\u0430\u043a \u0440\u0430\u0437 \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u043a\u043e\u0434\u0430. \u041f\u0440\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f\u0445 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043c\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0441\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0436\u0430\u043b\u0435\u0442\u044c \u0442\u043e\u043a\u0435\u043d\u044b, \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0432\u043f\u0443\u0441\u0442\u0443\u044e \u043d\u0430 \u043e\u0442\u0441\u0435\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 LLM \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0441\u0442\u0440\u043e\u043a, \u043d\u0435 \u043d\u0435\u0441\u0443\u0449\u0438\u0445 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u043c\u044b\u0441\u043b\u043e\u0432\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0422\u0430\u043a \u0438 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f logzip. \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 @sergeivsk\u044f \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u043b, \u0431\u044b\u043b\u0430 \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0434\u0435\u044f. \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0442\u043e\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0447\u0435\u043c \u0442\u043e \u0441\u043e\u0432\u043f\u0430\u043b\u0430.\u0418\u0442\u0430\u043a, \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f: \u0443 \u0432\u0430\u0441 \u043f\u0430\u0434\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441, \u0432\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0435 \u043b\u043e\u0433 \u0438 \u0432\u0438\u0434\u0438\u0442\u0435&#8230;. ~48k \u0441\u0442\u0440\u043e\u043a, \u0430 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 10 \u041c\u0411 \u0441\u044b\u0440\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u0438\u043b\u0438 2-3 \u043c\u043b\u043d \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0434\u043b\u044f Claude:\u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u043b\u043e\u0433INFO: 127.0.0.1:45678 &#8212; &#171;GET \/api\/v1\/status HTTP\/1.1&#187; 200 OK [12 ms]INFO: 127.0.0.1:45679 &#8212; &#171;GET \/api\/v1\/status HTTP\/1.1&#187; 200 OK [11 ms]INFO: 127.0.0.1:45680 &#8212; &#171;GET \/api\/v1\/status HTTP\/1.1&#187; 200 OK [13 ms]&#8230; (5000 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u043e\u043a) &#8230;ERROR: 127.0.0.1:51234 &#8212; &#171;POST \/api\/v1\/submit HTTP\/1.1&#187; 500 timeout [5000 ms]&#8230; (\u0435\u0449\u0451 5000 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445) &#8230;\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430: \u041c\u043e\u0434\u0435\u043b\u044c \u0432\u0438\u0434\u0438\u0442 5000+ \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0442\u0435\u0440\u044f\u0435\u0442 \u043e\u0434\u043d\u0443 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435. \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 \u0440\u0430\u0437\u043c\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u042d\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 LLM &#8212; Lost in the Middle, \u043a\u043e\u0433\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0445\u0443\u0436\u0435 \u0447\u0435\u043c \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0438\u043b\u0438 \u0432 \u043a\u043e\u043d\u0446\u0435. \u041c\u043e\u0434\u0435\u043b\u044c \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0442\u043e\u043d\u0435\u0442 \u0432 \u0441\u043e\u0442\u043d\u044f\u0445 \u043e\u0434\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a.\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 &#8212; \u0432\u044b \u043f\u043b\u0430\u0442\u0438\u0442\u0435 \u0437\u0430 \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0435 \u043d\u0435\u0441\u0443\u0449\u0438\u0435 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u043c\u044b\u0441\u043b\u043e\u0432\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. 90% \u043b\u043e\u0433\u0430 &#8212; \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 INFO: 200 OK. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u0430\u0436\u0443\u0442, &#171;\u0437\u0430\u0447\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440?&#187;, &#171;\u0435\u0441\u0442\u044c grep! \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0432\u0435\u0449\u0435\u0439&#187;. \u0418 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0430\u0432\u044b, \u043d\u043e \u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u043c.  \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e grep\/gzip\/zstd  \u0438 logzip &#8212; \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439. gzip &lt; app.log | wc -c819 KB #\u0421\u0436\u0430\u0442\u0438\u0435 \u043d\u0430 90%! \u0421\u0443\u043f\u0435\u0440!\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043a\u043e\u0440\u043c\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0442\u043e\u0442 \u0436\u0435 Claude. \u041c\u043e\u0434\u0435\u043b\u044c \u043e\u0442\u043a\u0430\u0436\u0435\u0442 &#8212; \u043e\u043d\u0430 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435:- \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442;- \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u043c (\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438);- \u0441\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435: \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0439;- \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0442\u043e\u043a\u0435\u043d\u044b.grep -i &#171;error&#187; # \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0433\u0440\u0435\u043f\u043d\u0443\u0442\u044c \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440ERROR: 127.0.0.1:51234 &#8212; &#171;POST \/api\/v1\/submit HTTP\/1.1&#8243; 500 timeout [5000 ms]&#187;\u0410 \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0441\u0442\u0430\u0440\u044b\u0439 \u0434\u043e\u0431\u0440\u044b\u0439 grep?&#187; \u0441\u043f\u0440\u043e\u0441\u044f\u0442 \u043e\u043b\u0434\u044b. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e grep \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u0435\u043d. \u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u0442\u0435 \u0438\u0437 \u043b\u043e\u0433\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438, \u0432\u044b \u043b\u0438\u0448\u0430\u0435\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. \u041a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439?\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0437\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u043c\u0438\u043d\u0443\u0442\u0443 \u0434\u043e \u043e\u0448\u0438\u0431\u043a\u0438?\u041a\u0430\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0448\u043b\u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e?\u0411\u044b\u043b \u043b\u0438 \u0432\u0441\u043f\u043b\u0435\u0441\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438?\u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0451, (\u043a\u0430\u043a gzip), \u0438\u043b\u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u043e \u043e\u0448\u0438\u0431\u043a\u0443 (\u043a\u0430\u043a grep), \u044f \u0440\u0435\u0448\u0438\u043b \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u043c\u0443\u0441\u043e\u0440. \u0422\u0443\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u043a\u0430\u043a \u0438 \u043f\u043e\u0434\u0445\u043e\u0434 @sergeivsk:\u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430 INFO, GET \/api\/v1\/status, 127.0.0.1\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u044b #0#, #1#, #2#\u0425\u0440\u0430\u043d\u0438\u0442\u044c \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432 LEGEND\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438 \u0438 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 BODY \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0432\u0438\u0434\u0435\u0414\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438:2026-04-21T14:32:00Z INFO uvicorn.access 127.0.0.1 &#8212; &#171;GET \/api\/v1\/users HTTP\/1.1&#187; 200 45ms2026-04-21T14:32:01Z INFO uvicorn.access 127.0.0.1 &#8212; &#171;GET \/api\/v1\/users HTTP\/1.1&#187; 200 52ms2026-04-21T14:32:02Z INFO uvicorn.access 127.0.0.1 &#8212; &#171;POST \/api\/v1\/orders HTTP\/1.1&#187; 201 123ms2026-04-21T14:32:03Z INFO uvicorn.access 127.0.0.1 &#8212; &#171;GET \/api\/v1\/status HTTP\/1.1&#8243; 200 3ms&#8230; (100 \u0441\u0442\u0440\u043e\u043a \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445) &#8230;2026-04-21T14:33:45Z ERROR uvicorn.error Database connection timeout after 30s\u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438:&#8212; PREFIX &#8212;2026-04-21T14:32 INFO uvicorn.access 127.0.0.1 &#8212;- LEGEND &#8212;#0# = GET \/api\/v1\/users HTTP\/1.1&#8243; 200#1# = GET \/api\/v1\/orders HTTP\/1.1&#8243; 201#2# = GET \/api\/v1\/status HTTP\/1.1&#187; 200!1! = #0# 45ms       \u2190 \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434: \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0442\u0435\u0433\u043e\u0432&#8212; BODY &#8212;:00Z #0# 45ms:01Z #0# 52ms:02Z #1# 123ms:03Z #2# 3ms&#8230; (\u043a\u043e\u0440\u043e\u0447\u0435) &#8230;:45Z ERROR uvicorn.error Database connection timeout after 30s  \u2190 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u044f \u0432\u0438\u0434\u043d\u0430!\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: \u0440\u0430\u0437\u043c\u0435\u0440 8 \u041c\u0431 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u0434\u043e 3,4 \u041c\u0431 (~58%)\u0427\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c 10\/10 (\u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043b\u0451\u0442\u0443)\u0412\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a: 10\/10 (\u043e\u043d\u0438 \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u044b \u043c\u0443\u0441\u043e\u0440\u043e\u043c)\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.\u041c\u043d\u043e\u044e \u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d Rust + PyO3, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e:1. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c ~200x \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0447\u0438\u0441\u0442\u044b\u043c Python. \u041d\u0430 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0445 \u043b\u043e\u0433\u0430\u0445 \u044d\u0442\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e. \u0422\u0430\u043a, \u0442\u0435 \u0436\u0435 8 \u041c\u0411 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0447\u0438\u0441\u0442\u043e \u043f\u0430\u0439\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u043a\u043e\u043b\u043e 2 \u043c\u0438\u043d\u0443\u0442.2. \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c. \u041d\u0435\u0442 unsafe \u0431\u043b\u043e\u043a\u043e\u0432. Memory safety \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430.3. PyO3: Rust \u043a\u043e\u0434 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 Python API \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 pip install logzip\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c:raw log   \u2193[1] Profile Detection     \u2190 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0444\u043e\u0440\u043c\u0430\u0442 (journalctl\/docker\/uvicorn\/pino)   \u2193[2] Normalizer           \u2190 \u0443\u0431\u0438\u0440\u0430\u0435\u043c ANSI, \u043d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u044b, leading zeros   \u2193[3] Frequency Analysis   \u2190 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0441\u0447\u0451\u0442 n-\u0433\u0440\u0430\u043c\u043c (rayon)   \u2193[4] Legend Selection     \u2190 \u0436\u0430\u0434\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c (O(N), \u043d\u0435 O(N\u00b2))   \u2193[5] AhoCorasick Replace  \u2190 \u043e\u0434\u043d\u043e\u0445\u043e\u0434\u043d\u0430\u044f \u0437\u0430\u043c\u0435\u043d\u0430 \u0432\u0441\u0435\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432   \u2193[6] Recursive BPE        \u2190 \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434: \u0441\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0442\u043e\u043a\u0435\u043d\u043e\u0432   \u2193compressed text\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u043e?\u0423\u0437\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e (\u0431\u044b\u043b\u043e): \u0432 Python \u0432\u0435\u0440\u0441\u0438\u0438 \u044f \u0441\u0447\u0438\u0442\u0430\u043b working.count(value) \u0432 \u0446\u0438\u043a\u043b\u0435 &#8212; O(N\u00b2) \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u041d\u0430 8 \u041c\u0431 \u044d\u0442\u043e \u0434\u0432\u0435 \u043c\u0438\u043d\u0443\u0442\u044b.\u0420\u0435\u0448\u0435\u043d\u0438\u0435: \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 O(N)), \u043f\u043e\u0442\u043e\u043c \u0436\u0430\u0434\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b \u0441 \u043c\u0435\u043c\u043e\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438. \u0418\u0442\u043e\u0433\u043e O(N log N).\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:  2 \u043c\u0438\u043d\u0443\u0442\u044b \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0434\u043e 0,4 \u0441\u0435\u043a\u0443\u043d\u0434. \u0423\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0432 215 \u0440\u0430\u0437.\u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 -Recursive BPE\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u044f \u0442\u0435\u043a\u0441\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:#0# #1# 200 45ms#0# #1# 200 52ms#0# #1# 200 48ms\u0412\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c #0# #1# 200 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f. \u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u0441\u0436\u0438\u043c\u0430\u0435\u0442 \u0435\u0435 \u0432 !1!:!1! 45ms!1! 52ms!1! 48ms\u042d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0434\u0430\u0435\u0442 \u0435\u0449\u0435 5-10% \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u0437\u0430 18 \u043c\u0441 \u0434\u043e\u043f. \u0432\u0440\u0435\u043c\u0435\u043d\u0438. BPE (Byte Pair Encoding) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u0440\u043e\u0434\u0435 #0# #1# \u0432 \u043d\u043e\u0432\u044b\u0439 \u0441\u0443\u043f\u0435\u0440-\u0442\u043e\u043a\u0435\u043d !1!\u00bb\u041f\u043e\u0441\u043b\u0435 \u0434\u0435\u043f\u043b\u043e\u044f 1 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432 GitHub \u0438 \u043d\u0430 PyPI \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435 \u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0441\u044f &#8212; \u0430 \u043f\u043e\u0447\u0435\u043c \u0431\u044b \u043d\u0435 \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c MCP? \u0427\u0442\u043e \u043d\u0430\u043c \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u043c MCP \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c? \u0421\u043a\u0430\u0437\u0430\u043d\u043e &#8212; \u0441\u0434\u0435\u043b\u0430\u043d\u043e! \u0411\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d MCP \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d \u0432 Claude \u0438 Cursor.{  &#171;mcpServers&#187;: {    &#171;logzip&#187;: {      &#171;command&#187;: &#171;logzip&#187;,      &#171;args&#187;: [&#171;mcp&#187;, &#171;&#8212;allow-dir&#187;, &#171;\/var\/log&#187;]    }  }}MCP \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0441\u043f\u044b\u0442\u0430\u043d \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043c\u043d\u0435 \u043b\u043e\u0433\u0430\u0445.# \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442:&gt; Analyze \/var\/log\/app.log# Claude \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438:1. \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442 get_stats \/var\/log\/app.log   \u2192 Size: 15 MB (~3.7M tokens)   \u2192 After compression: ~6.3 MB (~1.5M tokens)   2. \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442 compress_file \/var\/log\/app.log &#8212;quality balanced &#8212;bpe-passes 23. \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0436\u0430\u0442\u044b\u0439 \u043b\u043e\u0433 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u04424. \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438 \u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430 Benchmark \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c ~8\u041c\u0411 \u043b\u043e\u0433\u0435 (Uvicorn + Docker)\u0420\u0435\u0436\u0438\u043c\u0412\u0440\u0435\u043c\u044f (\u043c\u0441)\u0420\u0430\u0437\u043c\u0435\u0440 (\u041a\u0411)\u0421\u0436\u0430\u0442\u0438\u0435\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439fast2004.900~40%\u0421\u0440\u043e\u0447\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437balanced4043.928~52%\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0432\u044b\u0431\u043e\u0440balanced+BPE\u044524183.404~58%\u041e\u043f\u0442\u0438\u043c\u0443\u043cmax5073.511~57%\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0432\u043e\u0445\u0430 max: \u043f\u043e\u0447\u0435\u043c\u0443 &#8212;quality max \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a  &#8212;quality balanced?\u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e:1. \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0430 \u0441 512 entries \u043c\u044b \u0443\u0436\u0435 \u0440\u0430\u0437\u0434\u0430\u0432\u0438\u043b\u0438 57% \u043e\u0431\u044a\u0435\u043c\u0430.2. \u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0411\u0415\u0417 \u0442\u043e\u0433\u043e \u0436\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430.3. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 400 \u044d\u043a\u0441\u0442\u0440\u0430 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043b\u0435\u0433\u0435\u043d\u0434\u0443- \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437\u0434\u0443\u0442\u044c \u0432\u044b\u0432\u043e\u0434.4. \u0410 bpe-passes \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u041f\u0420\u041e\u0425\u041e\u0414, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044b  \u0432 \u0423\u0416\u0415 \u0441\u0436\u0430\u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435. \u0417\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0443\u0436\u0435\u043d? \u0417\u0430\u0442\u0435\u043c \u0447\u0442\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u0438\u0449\u0435\u0442 \u043d\u0435 \u043d\u043e\u0432\u044b\u0435 &#171;\u043a\u0440\u0443\u043f\u043d\u044b\u0435&#187; \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0430 \u041a\u041e\u041c\u0411\u0418\u041d\u0410\u0426\u0418\u0418 \u0443\u0436\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0433\u043e\u0432. \u042d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e, \u0447\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c 400 \u0440\u0435\u0434\u043a\u043e\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043b\u0435\u0433\u0435\u043d\u0434\u0443.&#8212;quality max:      512 entries, 1 pass   \u2192 507ms, -57%&#8212;quality balanced: 99 entries, 1 pass    \u2192 404ms, -52%&#8212;quality balanced &#8212;bpe-passes 2:        \u2192 418ms, -58% \u2190 \u041f\u041e\u0411\u0415\u0414\u0418\u0422\u0415\u041b\u042c\u0412\u044b\u0432\u043e\u0434: &#8212;quality max &#8212; \u043f\u0435\u0440\u0435\u043f\u043b\u0430\u0442\u0430 \u0437\u0430 \u043c\u0435\u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432.\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502 \u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439: 10 \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c             \u2502\u2502 \u043f\u043e 7.96 \u041c\u0411 \u043b\u043e\u0433\u043e\u0432 \u043a\u0430\u0436\u0434\u044b\u0439                  \u2502\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\u2502                                          \u2502\u2502 \u0411\u0415\u0417 logzip:                              \u2502\u2502 \u2022 \u0420\u0430\u0437\u043c\u0435\u0440: 8 \u041c\u0411 = ~1,960,000 \u0442\u043e\u043a\u0435\u043d\u043e\u0432      \u2502\u2502 \u2022 \u041d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441: ~$2.00                      \u2502\u2502 \u2022 10 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432: $20\/\u0434\u0435\u043d\u044c = $600\/\u043c\u0435\u0441\u044f\u0446     \u2502\u2502                                          \u2502\u2502 \u0421 logzip (balanced &#8212;bpe-passes 2):      \u2502\u2502 \u2022 \u0420\u0430\u0437\u043c\u0435\u0440: 3.4 \u041c\u0411 = ~830,000 \u0442\u043e\u043a\u0435\u043d\u043e\u0432      \u2502\u2502 \u2022 \u041d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441: ~$0.85                      \u2502\u2502 \u2022 10 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432: $8.50\/\u0434\u0435\u043d\u044c = $255\/\u043c\u0435\u0441\u044f\u0446   \u2502\u2502                                          \u2502\u2502 \u042d\u043a\u043e\u043d\u043e\u043c\u0438\u044f: $345\/\u043c\u0435\u0441\u044f\u0446                     \u2502\u2502 \u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u044f: 10 \u043c\u0438\u043d\u0443\u0442 \u043d\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e       \u2502\u2502 ROI: 2070% \u0432 \u043c\u0435\u0441\u044f\u0446                       \u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u0421\u044b\u0440\u043e\u0439 \u043b\u043e\u0433:&#8230; (3449 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432) &#8230;INFO: 127.0.0.1:45678 &#8212; &#171;GET \/api\/v1\/status HTTP\/1.1&#187; 200 OKINFO: 127.0.0.1:45679 &#8212; &#171;GET \/api\/v1\/status HTTP\/1.1&#187; 200 OKERROR: Database connection timeout (\u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 \u0432 \u0448\u0443\u043c\u0435!)INFO: 127.0.0.1:45681 &#8212; &#171;GET \/api\/v1\/status HTTP\/1.1&#187; 200 OK&#8230; (\u0435\u0449\u0451 1500 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445) &#8230;\u043f\u043e\u0441\u043b\u0435 logzip:&#8212; LEGEND &#8212;#0# = INFO: 127.0.0.1:&#8230; &#8212; &#171;GET \/api\/v1\/status HTTP\/1.1&#187; 200 OK&#8212; BODY &#8212;#0##0##0#ERROR: Database connection timeout \u2190 \u041a\u0440\u0438\u0447\u0438\u0442 \u043d\u0430 \u0432\u0441\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443!#0##0#&#8230;\u041c\u043e\u0434\u0435\u043b\u044c \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u043d\u0435 \u0443\u0442\u043e\u043d\u0443\u0432 \u0432 5000 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 200 \u041e\u041a.\u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u043d\u044c\u0433\u0438.\u0411\u044b\u043b\u043e (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u0437\u044f\u0442 \u0441 &#171;\u043f\u043e\u0442\u043e\u043b\u043a\u0430&#187;): $20\/\u043c\u0435\u0441\u044f\u0446 \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437 \u043b\u043e\u0433\u043e\u0432\u0421\u0442\u0430\u043b\u043e: 8.5$\/\u043c\u0435\u0441\u044f\u0446\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430pip install logzipCLI logzip compress &#8212;quality balanced &#8212;bpe-passes 2 &lt; app.log | pbcopyPython APIfrom logzip import compressresult = compress(open(&#171;app.log&#187;).read(), bpe_passes=2)print(result.render(with_preamble=True))  # \u2192 \u0432 Claudeprint(result.stats_str())                  # \u2192 \u043c\u0435\u0442\u0440\u0438\u043a\u0438MCP 1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a cargo install logzip2.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 ~\/Library\/Application Support\/Claude\/claude_desktop_config.json3.\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Claude Code\u0421\u0441\u044b\u043b\u043a\u0438. \u041f\u043b\u0430\u043d\u044b. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u0438.MIT \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f. \u041f\u0440\u043e\u0435\u043a\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 Github\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044e @sergeivsk \u0437\u0430 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u0438\u0435\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 https:\/\/habr.com\/ru\/articles\/1030964\/<\/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-478423","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/478423","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=478423"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/478423\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=478423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=478423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=478423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}