{"id":358187,"date":"2024-05-21T00:06:25","date_gmt":"2024-05-21T00:06:25","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=358187"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-21T00:06:25","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=358187","title":{"rendered":"<span>\u041e\u043f\u044b\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f AI \u0434\u043b\u044f QA: \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u044b\u0445\u043e\u0434?<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0418\u043b\u044c\u044f. \u0418 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e LLM \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0443\u0436\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430. \u0425\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c\u0438, \u043a\u0430\u043a \u0418\u0418 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b. \u0418 \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0431\u043e\u044f\u0442\u044c\u0441\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c \u0437\u0430\u043c\u0435\u043d\u044b \u0436\u0435\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u043c\u043e\u0437\u0433\u0430\u043c\u0438 \u0438 \u0440\u0443\u043a\u0430\u043c\u0438?<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/549\/a04\/a84\/549a04a8424acf6641ca4530a64b3758.png\" alt=\"\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0441 \u0418\u0418 \u043b\u0438\u0446\u043e\u043c \u043a \u043b\u0438\u0446\u0443\" title=\"\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0441 \u0418\u0418 \u043b\u0438\u0446\u043e\u043c \u043a \u043b\u0438\u0446\u0443\" width=\"1456\" height=\"816\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/549\/a04\/a84\/549a04a8424acf6641ca4530a64b3758.png\"\/><\/p>\n<div><figcaption>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0441 \u0418\u0418 \u043b\u0438\u0446\u043e\u043c \u043a \u043b\u0438\u0446\u0443<\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u0443\u0434\u0435\u0442 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u044b\u043c \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0418\u0418, LLM &#8212; \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0431\u0430\u0437\u0430 \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430 \u0441 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u044c\u044e \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u043c, \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 &#8212; \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0418\u0418 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c \u0442\u0435\u043e\u0440\u0438\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b, \u0441\u0441\u044b\u043b\u0430\u044f\u0441\u044c \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438, \u043a\u043d\u0438\u0433\u0438, \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043f\u043e\u043c\u043e\u0447\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u043c\u0443 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0443. \u0420\u0430\u0437 \u0442\u0430\u043a, \u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0440\u0435\u0437\u043e\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 &#8212; \u0441\u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0418\u0418 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430? \u0418 \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u0439. \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0442\u0435\u043c\u043f\u044b \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0418\u0418 &#8212; \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0432 \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438?<\/p>\n<h2>\u0420\u0443\u0447\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0431\u0430\u0437\u0430 \u0437\u043d\u0430\u043d\u0438\u0439<\/h2>\n<p>\u042f \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0418\u0418 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0430\u043c\u0438 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435, \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0418\u0418 \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 Junior-\u043f\u043e\u0434\u043e\u043f\u0435\u0447\u043d\u044b\u043c\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c\u0438. \u0422\u043e \u0435\u0441\u0442\u044c, \u0441\u0435\u0439\u0447\u0430\u0441 \u0418\u0418 \u043c\u043e\u0436\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043e\u043b\u043e\u0434\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b, \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u043f\u043e\u0434 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u043c \u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f, senior\u2019a. \u0421\u043a\u0430\u0436\u0435\u043c, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0418\u0418, \u0438 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432\u044b \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435, \u0418\u0418 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0441 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 &#8212; \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0447\u0435\u043a-\u043b\u0438\u0441\u0442\u043e\u0432, \u0442\u0435\u0441\u0442-\u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u0430 &#8212; \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432. \u041d\u043e \u0441 \u0442\u0435\u043c \u043d\u044e\u0430\u043d\u0441\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u043c, \u043a\u0430\u043a \u0441\u0442\u0430\u0440\u0448\u0435\u043c\u0443 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0443 \u0432\u0441\u0451 \u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0430, \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0418\u0418 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0430 \u043f\u0430\u043b\u044c\u0446\u0430\u0445, \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u0439\u0442\u0435 \u043e\u0442 \u043d\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445, \u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432, \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u0439\u0442\u0435 \u043e\u0442 \u043d\u0435\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u043a\u0435\u0439\u0441\u043e\u0432 (\u0445\u043e\u0442\u044f \u043e\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e). \u0422\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0435\u0433\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c &#8212; \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0439, \u0434\u043e\u0434\u0435\u043b\u0430\u0439, \u0443\u0433\u043b\u0443\u0431\u0438. \u0418 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u0435\u0439\u0441\u043e\u0432 &#8212; \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430, \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0418\u0418. \u042d\u0442\u043e \u0441\u0445\u043e\u0436\u0435 \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043f\u043e\u0434 \u0441\u0435\u0431\u044f \u044e\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u043f\u043e\u0434 \u0432\u0430\u0448\u0435 \u0432\u0438\u0434\u0435\u043d\u0438\u0435, \u043f\u043e\u0434 \u043d\u0443\u0436\u043d\u0443\u044e \u0432\u0430\u043c \u0433\u043b\u0443\u0431\u0438\u043d\u0443 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0434 \u0432\u0430\u0448\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c &#8212; \u043f\u043e \u0434\u0435\u043d\u044c\u0433\u0430\u043c \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0410 \u0434\u0430\u043b\u044c\u0448\u0435 &#8212; \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043f\u0435\u0440\u0435\u0434 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0434 \u0432\u0430\u0448\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u0443\u0436\u0434\u044b. \u0414\u0440\u0443\u0433\u0438\u043c \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0431\u0435\u0437 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430, \u043e\u0442\u0434\u0430\u0442\u044c \u0435\u043c\u0443, \u043a\u0430\u043a \u043c\u0438\u0434\u043b\u0443, \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u043f\u043b\u044e\u0441 \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f &#8212; \u043e\u043d \u043b\u044f\u0436\u0435\u0442 \u043d\u0430 \u0432\u0430\u0441. \u041d\u043e \u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435 \u0447\u0443\u0442\u044c \u043f\u043e\u043f\u043e\u0437\u0436\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/f32\/6a6\/564\/f326a6564408aa0830a0a2f04ff62e3e.jpg\" alt=\"\u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0431\u043e\u0442\u0443 \u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0443\u0442\u043e\u0447\u043d\u044f\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0435\u043a-\u043b\u0438\u0441\u0442\u044b \u0438 \u0442\u0435\u0441\u0442\u044b\" title=\"\u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0431\u043e\u0442\u0443 \u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0443\u0442\u043e\u0447\u043d\u044f\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0435\u043a-\u043b\u0438\u0441\u0442\u044b \u0438 \u0442\u0435\u0441\u0442\u044b\" width=\"998\" height=\"575\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f32\/6a6\/564\/f326a6564408aa0830a0a2f04ff62e3e.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0431\u043e\u0442\u0443 \u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0443\u0442\u043e\u0447\u043d\u044f\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0435\u043a-\u043b\u0438\u0441\u0442\u044b \u0438 \u0442\u0435\u0441\u0442\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0418\u0418 &#8212; \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0436\u0443\u043d \u0434\u043b\u044f \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0443\u0442\u0438\u043d\u044b, \u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u0432\u0430\u0448 \u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0438 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a, \u043e\u0447\u0435\u043d\u044c \u0432\u043e\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u044b\u0439 \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0435\u043c\u0443 \u043b\u043e\u0433, \u043e\u0448\u0438\u0431\u043a\u0443, \u0437\u0430\u0434\u0430\u0447\u0443 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043b\u0438\u0431\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0438 \u0418\u0418 \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0433\u0443\u0433\u043b\u0438\u0442\u044c stackoverflow. \u041d\u043e \u043d\u0430\u0434\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b \u043d\u0430 \u043a\u0430\u043a\u0443\u044e-\u043b\u0438\u0431\u043e \u0434\u0430\u0442\u0443, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0438 \u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0442\u044c \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0434\u0435\u043b\u0438, \u043c\u0435\u0441\u044f\u0446\u044b, \u0430 \u0442\u043e \u0438 \u0433\u043e\u0434. \u0415\u0441\u043b\u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u043d\u0430 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043f\u043e\u0438\u0441\u043a\u0443. <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u044f \u043f\u0435\u0440\u0435\u0439\u0434\u0443 \u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. \u0418\u0442\u0430\u043a, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043b\u0438\u0447\u043d\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0418\u0418 \u0438 \u043a\u0430\u043a\u043e\u0439?<\/p>\n<h2>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/h2>\n<p>\u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e <a href=\"https:\/\/github.com\/features\/copilot\" rel=\"noopener noreferrer nofollow\">Copilot<\/a> \u043e\u0442 <a href=\"https:\/\/github.com\/\" rel=\"noopener noreferrer nofollow\">GitHub<\/a> \u0443\u0436\u0435 \u0442\u0440\u0435\u0442\u0438\u0439 \u043c\u0435\u0441\u044f\u0446. \u0422\u043e \u0435\u0441\u0442\u044c, \u043f\u043b\u0430\u0447\u0443 \u0437\u0430 \u043d\u0435\u0433\u043e $10 \u0432 \u043c\u0435\u0441\u044f\u0446. \u0421\u0442\u043e\u0438\u0442 \u043b\u0438 \u044d\u0442\u043e\u0433\u043e? \u0427\u0435\u0441\u0442\u043d\u043e \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f &#8212; \u0434\u0430. \u041c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c Copilot\u2019\u0443 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432, \u0434\u043e\u043a\u0441\u0442\u0440\u0438\u043d\u0433\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0443 \u043d\u0435\u0433\u043e \u044d\u0442\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u0447\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435, \u0442\u043e \u043e\u043d \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0439-\u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0432\u044b \u043e\u0442 \u043d\u0435\u0433\u043e \u0445\u043e\u0442\u0438\u0442\u0435 &#8212; \u0432 \u043a\u0430\u043a\u043e\u043c \u0441\u0442\u0438\u043b\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043e\u043a\u0441\u0442\u0440\u0438\u043d\u0433\u0438, \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043c\u0438, \u0438 \u0438\u0437 \u043a\u0430\u043a\u0438\u0445 (\u0441\u0430\u0431)\u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u041e\u0434\u043d\u0430 \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u043e\u043a\u0443\u043f\u0430\u0435\u0442 \u043c\u043e\u0451 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f \u0431\u044b \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043d\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/c25\/09b\/709\/c2509b709d0fb167d9af2901830ec475.jpg\" alt=\"\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u043a\u043e\u0434\u0443 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 - Copilot \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u0438\u0445 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043a\u043e\u0434\u0430\" title=\"\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u043a\u043e\u0434\u0443 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 - Copilot \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u0438\u0445 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043a\u043e\u0434\u0430\" width=\"942\" height=\"521\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c25\/09b\/709\/c2509b709d0fb167d9af2901830ec475.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u043a\u043e\u0434\u0443 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 &#8212; Copilot \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u0438\u0445 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043a\u043e\u0434\u0430<\/figcaption><\/div>\n<\/figure>\n<h2>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430<\/h2>\n<p>\u041d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c copilot\u2019a \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430 \u043b\u0438\u0448\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043a\u043e\u0434. \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e copilot &#8212; \u044d\u0442\u043e \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a IDE. \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043b\u0451\u0432\u044b\u0432\u0430\u0442\u044c \u0432\u0430\u043c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430. \u042d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043a\u0430\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442 copilot\u2019a, \u0442\u0430\u043a \u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 IDE. \u0427\u0442\u043e \u0436\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430 \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0433\u043e \u0438\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0430 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e \u0442\u0443\u0442 \u0432\u0441\u0451 \u043e\u0431\u0441\u0442\u043e\u0438\u0442 \u0445\u0443\u0436\u0435. \u0418\u0418 \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0435\u043b\u0435\u0442\u043d\u044b \u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043b\u0438\u0431\u043e \u0432\u0430\u0440\u044c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430, \u0442\u043e, \u0443\u0432\u044b, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0451 \u0441\u0430\u043c\u043e\u043c\u0443. \u0418 \u0442\u0443\u0442 \u0432\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441 &#8212; \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 copilot\u2019 \u0441\u043a\u043e\u0440\u0435\u0435 \u043c\u0435\u0448\u0430\u0435\u0442, \u0447\u0435\u043c \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 &#8212; \u043e\u043d \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0430\u043c \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c. \u041d\u043e \u0432\u043e\u0442 \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043d \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0436\u0435 \u043d\u0435\u043f\u043b\u043e\u0445 &#8212; \u0432\u044b\u0434\u0430\u0442\u044c \u0441\u0445\u043e\u0436\u0438\u0435, \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0443\u0442\u0438, \u0442\u0435\u0441\u0442\u044b \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0437\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 2-3 \u043a\u043b\u0430\u0432\u0438\u0448 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0435 &#8212; \u044d\u0442\u043e \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a. \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0443? \u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 1-2 \u0442\u0435\u0441\u0442\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0439\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u0430 \u0438 \u0432\u043e\u0442 \u0443\u0436\u0435 \u0443 \u0432\u0430\u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/25c\/0e7\/74a\/25c0e774aa1d31fa6f7a845bf7fdd091.jpg\" alt=\"\u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u044b \u043f\u0438\u0448\u0438\u0442\u0435 \u043a\u043e\u0434\u0430, \u0442\u0435\u043c \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u0435\u0435 \u043f\u0438\u0448\u0435\u0442 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0446\u0435\u043b\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041b\u0438\u0431\u043e \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438, \u043b\u0438\u0431\u043e \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0435\u0451 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f. \u0414\u0430\u0436\u0435 \u0431\u0435\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f.\" title=\"\u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u044b \u043f\u0438\u0448\u0438\u0442\u0435 \u043a\u043e\u0434\u0430, \u0442\u0435\u043c \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u0435\u0435 \u043f\u0438\u0448\u0435\u0442 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0446\u0435\u043b\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041b\u0438\u0431\u043e \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438, \u043b\u0438\u0431\u043e \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0435\u0451 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f. \u0414\u0430\u0436\u0435 \u0431\u0435\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f.\" width=\"1044\" height=\"544\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/25c\/0e7\/74a\/25c0e774aa1d31fa6f7a845bf7fdd091.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u044b \u043f\u0438\u0448\u0438\u0442\u0435 \u043a\u043e\u0434\u0430, \u0442\u0435\u043c \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u0435\u0435 \u043f\u0438\u0448\u0435\u0442 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0446\u0435\u043b\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041b\u0438\u0431\u043e \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438, \u043b\u0438\u0431\u043e \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0435\u0451 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f. \u0414\u0430\u0436\u0435 \u0431\u0435\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f.<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u201c\u0434\u0436\u0443\u043d\u043e\u043c\u201d-\u0438\u0438, \u0442\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 copilot\u2019\u043e\u043c, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u043f\u043e\u0432\u0435\u0441\u0442\u0438 \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0430, \u043d\u0443 \u0438 \u0438\u043c\u0435\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u0443\u044e <a href=\"https:\/\/www.selenium.dev\/documentation\/test_practices\/encouraged\/page_object_models\/\" rel=\"noopener noreferrer nofollow\">POM<\/a> (\u043d\u0443 \u0438\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u0447\u0430\u0441\u0442\u044c \u0435\u0451). \u0414\u0430, \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438, \u043d\u043e \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u0440\u0430\u0434\u0443\u0436\u043d\u043e, \u043a\u0430\u043a \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0435\u0451 \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/141\/bbc\/0c1\/141bbc0c11c41b43b89079687e41d000.jpg\" alt=\"Copilot \u0443\u043c\u0435\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0447\u0443\u0436\u043e\u0439 \u043a\u043e\u0434. \u041d\u043e \u0438 \u0442\u043e, \u0438 \u0434\u0440\u0443\u0433\u043e\u0435 - \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u043e.\" title=\"Copilot \u0443\u043c\u0435\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0447\u0443\u0436\u043e\u0439 \u043a\u043e\u0434. \u041d\u043e \u0438 \u0442\u043e, \u0438 \u0434\u0440\u0443\u0433\u043e\u0435 - \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u043e.\" width=\"822\" height=\"520\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/141\/bbc\/0c1\/141bbc0c11c41b43b89079687e41d000.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>Copilot \u0443\u043c\u0435\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0447\u0443\u0436\u043e\u0439 \u043a\u043e\u0434. \u041d\u043e \u0438 \u0442\u043e, \u0438 \u0434\u0440\u0443\u0433\u043e\u0435 &#8212; \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u043e.<\/figcaption><\/div>\n<\/figure>\n<p>\u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0421opilot \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0447\u0443\u0436\u043e\u0439 \u043a\u043e\u0434, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 (\u0443\u0447\u0438\u0442\u0438\u0442\u0435, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e \u0438 \u0434\u0430\u0436\u0435 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e &#8212; \u043d\u043e, \u043e\u043f\u044f\u0442\u044c-\u0442\u0430\u043a\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0435\u0433\u043e \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c). \u0410 \u0442\u0430\u043a \u0436\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432\u0430\u0448\u0435\u0433\u043e \u041f\u041e, \u043f\u0440\u0438\u0447\u0451\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e, \u0441 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Mock-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82\" rel=\"noopener noreferrer nofollow\">\u043c\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c<\/a>. \u042d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u0435\u0442, \u043d\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0438 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e, \u043d\u0438 \u0441 \u043f\u044f\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043f\u044f\u0442\u044c \u0443 Copilot\u2019a, \u043a\u0430\u043a \u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. \u0422\u043e \u0435\u0441\u0442\u044c \u0433\u043b\u0443\u0431\u0438\u043d\u043e\u0439 \u0432\u0430\u0448\u0438\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432, \u043a\u043e\u0434\u0430, \u0438 \u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u043d\u044e\u0430\u043d\u0441\u043e\u0432. \u0422\u043e \u0435\u0441\u0442\u044c, \u043a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043c\u0430\u043d\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0418\u0418-\u0434\u0436\u0443\u043d\u043e\u043c, \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u043c\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u201c\u043f\u043e\u043a\u0440\u043e\u0439 \u043c\u043e\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e 100% \u0442\u0435\u0441\u0442\u0430\u043c\u0438\u201d. \u041d\u0435 \u043f\u043e\u043a\u0440\u043e\u0435\u0442. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0431\u0435\u0437 \u0432\u0430\u0448\u0435\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f.<\/p>\n<h2>\u0414\u0435\u043b\u0435\u0433\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 page object&#8217;\u043e\u0432 \u0438 \u0442\u0435\u0441\u0442\u043e\u0432<\/h2>\n<p>\u0412\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u044b \u0438\u043b\u0438 \u043d\u0435\u0442 Copilot, \u0418\u0418 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0443\u044e \u0440\u0443\u0442\u0438\u043d\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c, \u043a\u043e\u0433\u0434\u0430 \u044f \u043f\u0438\u0448\u0443 \u0442\u0435\u0441\u0442\u044b, \u044f \u043f\u0440\u043e\u0448\u0443 LLM \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u043d\u0435 \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u044b \u0438\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 PO-\u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u043e\u0435\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u0443. \u0422\u043e \u0435\u0441\u0442\u044c \u044f \u043f\u0435\u0440\u0435\u0434\u0430\u044e \u0418\u0418 \u0431\u043e\u0442\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u043f\u0440\u043e\u0448\u0443 \u0435\u0433\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f page object&#8217;\u044b. \u042d\u0442\u043e \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u043c\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0443\u0436\u043d\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442 \u0431\u043e\u0442, \u0431\u0443\u0434\u0443\u0442 \u0434\u0430\u043b\u0435\u043a\u0438 \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0445, \u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0442\u043e\u0447\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0438 \u043a\u0430\u043a \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u043a\u043e\u0440\u043e\u0442\u0438\u0442\u044c. \u0411\u043e\u0442 &#8212; \u0442\u043e\u0442 \u0436\u0435 \u0434\u0436\u0443\u043d, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0440\u0430\u0442\u044c \u0438 <a href=\"https:\/\/developer.chrome.com\/docs\/devtools\/\" rel=\"noopener noreferrer nofollow\">\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430<\/a> \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/XPath\" rel=\"noopener noreferrer nofollow\">XPATH<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/6e3\/d05\/f6c\/6e3d05f6c187b68175e663cc4e240452.jpg\" alt=\"\u0411\u0435\u0437 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0439 \u0418\u0418 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 &quot;\u0437\u0430\u0431\u043e\u0440\u044b&quot; \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u0432\" title=\"\u0411\u0435\u0437 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0439 \u0418\u0418 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 &quot;\u0437\u0430\u0431\u043e\u0440\u044b&quot; \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u0432\" width=\"847\" height=\"248\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6e3\/d05\/f6c\/6e3d05f6c187b68175e663cc4e240452.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0411\u0435\u0437 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0439 \u0418\u0418 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 &#171;\u0437\u0430\u0431\u043e\u0440\u044b&#187; \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0443 \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e UI \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u0438 API &#8212; \u043d\u0438\u043a\u0442\u043e \u0432\u0430\u043c \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c <a href=\"https:\/\/www.json.org\/json-en.html\" rel=\"noopener noreferrer nofollow\">JSON<\/a> \u0444\u0430\u0439\u043b <a href=\"https:\/\/swagger.io\/\" rel=\"noopener noreferrer nofollow\">Swagger<\/a>\u2019a \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u044b\u0435 endpoint\u2019\u044b \u0438 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u043e\u0442\u0432\u0435\u0442\u044b \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a \u043d\u0438\u043c.<\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u043f\u0440\u044f\u043c\u043e \u043d\u0430\u043b\u0435\u0442\u0443. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 &#8212; \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0432\u0430\u0448\u0435\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u0422\u043e \u0435\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 URL, \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0432 POM-\u0432\u0438\u0434\u0435 &#8212; \u0438 \u0432\u043e\u0442 \u043e\u043d\u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0442\u0435\u0441\u0442\u044b. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0432\u0430\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u043b\u0435\u0442\u0443 \u0442\u0435\u0441\u0442\u044b, \u043d\u043e \u0432\u0436\u0438\u0432\u0443\u044e, \u201c\u043f\u043e\u0442\u044b\u043a\u0430\u0442\u044c\u201d \u0432\u0430\u0448 \u0441\u0430\u0439\u0442 \u0440\u043e\u0431\u043e\u0442\u043e\u043c. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u044e\u0449\u0435 \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b \u0441\u0438\u0434\u0438\u0442\u0435 \u0437\u0430 \u0441\u043f\u0438\u043d\u043e\u0439. \u0422\u043e\u043b\u044c\u043a\u043e \u0435\u0449\u0435 \u0442\u043e\u0433\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0437\u0430 \u0441\u043e\u0431\u043e\u0439 \u043a\u043e\u0434 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u043e\u0432. \u041d\u0443 \u044d\u0442\u043e \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0443\u0441\u0430\u0447\u0435\u043c \u043f\u043e \u0446\u0435\u043d\u0435 <a href=\"https:\/\/sider.ai\/\" rel=\"noopener noreferrer nofollow\">Sider.ai<\/a>.<\/p>\n<h2>\u0420\u0430\u0441\u0442\u0438\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0433\u043e Middle<\/h2>\n<p>\u0418 \u0442\u0443\u0442 \u043c\u044b \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u0430\u043c\u043e\u0439 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435 &#8212; \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0443 \u0418\u0418 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. \u0421\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a\u043e\u0439 \u0431\u044b \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043d\u0435 \u0431\u044b\u043b \u0431\u044b \u0418\u0418, \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u043a\u0443\u043a\u0438 \\ \u043b\u043e\u0433\u0438\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 SSO \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0445 \u0432\u043e\u0432\u043d\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0443 \u043d\u0435\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0441\u0432\u043e\u0439 \u0441\u0442\u0438\u043b\u044c \u0438 \u043a\u043e\u0434 &#8212; \u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 \u0438\u043b\u0438 \u0434\u043e\u043a\u0438, \u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0443\u043f\u0430\u043a\u0443\u0435\u0442\u0435 \u0432 embeddings. \u042d\u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 &#8212; \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0432\u0430\u0448\u0438 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0432\u0430\u0448 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0438 \u043e\u0431\u0432\u044f\u0437\u043a\u0438, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0418\u0418 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043d\u0435 \u0441\u0438\u0434\u0435\u0442\u044c \u0441 \u0418\u0418 \u043d\u0430\u0434 \u0434\u0443\u0448\u043e\u0439 \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c HTML\/JSON \u0435\u043c\u0443, \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442, \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u0430\u0448 \u043a\u043e\u0434, \u0438 \u0437\u0430\u0442\u0435\u043c \u0441\u0430\u043c\u043e\u043c\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c. \u0412\u043e\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b &#8212; \u043f\u0443\u0441\u0442\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c. \u041d\u0443 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u0436\u0443\u043d \u0431\u044b\u043b, \u0430 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0439 \u043c\u0438\u0434\u043b. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438?<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/211\/d46\/70a\/211d4670ae4564ebdd24e4bdb912f8f3.jpg\" alt=\"\u0412\u043c\u0435\u0441\u0442\u043e \u0434\u0436\u0443\u043d\u0430 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0438\u0434\u0435\u0442\u044c \u0438 \u043a\u0440\u0438\u0447\u0430\u0442\u044c \u043d\u0430 \u0418\u0418. \u0418 \u0434\u0430, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0442\u0443\u043f\u0438\u0442\u044c \u0438 \u0431\u0435\u0441\u0438\u0442\u044c \u043d\u0435 \u0445\u0443\u0436\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u0432.\" title=\"\u0412\u043c\u0435\u0441\u0442\u043e \u0434\u0436\u0443\u043d\u0430 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0438\u0434\u0435\u0442\u044c \u0438 \u043a\u0440\u0438\u0447\u0430\u0442\u044c \u043d\u0430 \u0418\u0418. \u0418 \u0434\u0430, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0442\u0443\u043f\u0438\u0442\u044c \u0438 \u0431\u0435\u0441\u0438\u0442\u044c \u043d\u0435 \u0445\u0443\u0436\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u0432.\" width=\"2392\" height=\"1344\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/211\/d46\/70a\/211d4670ae4564ebdd24e4bdb912f8f3.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0412\u043c\u0435\u0441\u0442\u043e \u0434\u0436\u0443\u043d\u0430 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0438\u0434\u0435\u0442\u044c \u0438 \u043a\u0440\u0438\u0447\u0430\u0442\u044c \u043d\u0430 \u0418\u0418. \u0418 \u0434\u0430, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0442\u0443\u043f\u0438\u0442\u044c \u0438 \u0431\u0435\u0441\u0438\u0442\u044c \u043d\u0435 \u0445\u0443\u0436\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u0432.<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u0440\u0430\u0441\u0442\u0438\u0442\u044c \u0434\u0436\u0443\u043d\u0430 \u043d\u0430 \u0440\u0443\u0447\u043d\u043e\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u0435 \u0432 \u043f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0438\u0434\u043b\u0430 \u043b\u044f\u0436\u0435\u0442 \u043d\u0430 \u0432\u0430\u0441. \u041d\u043e \u044d\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c\u043e. \u0412\u043e\u043e\u0431\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0443 \u0418\u0418 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0435\u0441\u0442\u044c \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u043c\u0438\u0434\u043b\u0430. \u041b\u043e\u043a\u0430\u0442\u043e\u0440\u044b, page object\u2019\u044b \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435 &#8212; \u0442\u043e\u0436\u0435. \u041d\u0443\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c, \u0438 \u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u043e \u0442\u043e\u0439 \u0435\u0440\u0443\u043d\u0434\u0435, \u0447\u0442\u043e \u043e\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043b. \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0435\u043c\u0443 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u043b \u043a\u043e\u0434. \u0425\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u0441\u0442\u0438\u043b\u0438 &#8212; \u043e\u0442\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043b\u0438\u043d\u0442\u0435\u0440\u043e\u0432. \u041f\u0443\u0441\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 100% \u043f\u0430\u0441\u0441\u0440\u0435\u0439\u0442.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1c5\/54f\/578\/1c554f57858f277ece30d59e330fd1dd.png\" width=\"1920\" height=\"1080\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1c5\/54f\/578\/1c554f57858f277ece30d59e330fd1dd.png\"\/><\/figure>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430, proof-of-concept, \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/pypi.org\/project\/openai-python-api\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0432\u043e\u044e \u043e\u0431\u0451\u0440\u0442\u043a\u0443 \u0434\u043b\u044f OpenAI<\/a>. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u0430\u0437\u0443\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u0418\u0418, \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/openai.com\/chatgpt\" rel=\"noopener noreferrer nofollow\">ChatGPT4<\/a>, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u044e \u0447\u0451\u0440\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 &#8212; \u0437\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0438 \u0437\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c <a href=\"https:\/\/platform.openai.com\/docs\/models\" rel=\"noopener noreferrer nofollow\"><em>gpt-4-0613<\/em><\/a><em>. <\/em>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/docs.pytest.org\/en\/7.4.x\/\" rel=\"noopener noreferrer nofollow\">pytest<\/a>+<a href=\"https:\/\/www.selenium.dev\/\" rel=\"noopener noreferrer nofollow\">selenium<\/a> \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b (\u043d\u0443 \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0431\u0451\u0440\u0442\u043a\u0430 \u0442\u043e\u0436\u0435 \u043d\u0430 <a href=\"https:\/\/www.python.org\/\" rel=\"noopener noreferrer nofollow\">Python<\/a>).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/962\/76a\/89f\/96276a89f19c29e4b25351c4256e77ce.png\" alt=\"\u041f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430\" title=\"\u041f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430\" width=\"982\" height=\"547\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/962\/76a\/89f\/96276a89f19c29e4b25351c4256e77ce.png\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0435\u0441\u044c \u043c\u043e\u0439 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Proof_of_concept\" rel=\"noopener noreferrer nofollow\">POC<\/a> \u0442\u0435\u0441\u0442-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u043b\u0438\u0448\u044c <a href=\"https:\/\/docs.pytest.org\/en\/6.2.x\/fixture.html\" rel=\"noopener noreferrer nofollow\">conftest<\/a> c \u0444\u0438\u043a\u0441\u0442\u0443\u0440\u043e\u0439 driver, \u043f\u0443\u0441\u043a\u0430\u043b\u043a\u0438 (runner\u2019a) \u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0443 \u043d\u0430\u0441 \u0434\u0435-\u0444\u0430\u043a\u0442\u043e \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0444\u0438\u043a\u0441\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u043f\u0435\u0440\u0435\u0434 \u0441\u0442\u0430\u0440\u0442\u043e\u043c \u0442\u0435\u0441\u0442\u0430 \u043c\u044b \u0435\u0449\u0451 \u0431\u044b \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0438 \u043a\u0430\u043a-\u0442\u043e \u0432\u0435\u0440\u0442\u0435\u043b\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u041d\u043e \u044d\u0442\u043e \u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430. \u041c\u044b \u0443\u0436\u0435, \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0442\u0435\u0441\u0442\u044b \u0438\u0437 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f.<\/p>\n<details class=\"spoiler\">\n<summary>conftest.py<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager   def pytest_runtest_makereport(item, call):     \"\"\"     Pytest hook for saving html page on test failure      :param item: pytest item     :param call: pytest call     \"\"\"     if \"driver\" in item.fixturenames:         web_driver = item.funcargs[\"driver\"]         if call.when == \"call\" and call.excinfo is not None:             with open(f\"{item.nodeid.split('::')[1]}.html\", \"w\", encoding=\"utf-8\") as file:                 file.write(web_driver.page_source)   @pytest.fixture def driver():     \"\"\"     Pytest fixture for selenium webdriver      :return: webdriver     \"\"\"     options = Options()     options.add_argument(\"--headless\")     options.headless = True     path = ChromeDriverManager().install()     _driver = webdriver.Chrome(service=ChromeService(executable_path=path, options=options), options=options)      yield _driver      _driver.close()     _driver.quit()<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0431\u043e\u0442\u0430. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0442 \u043d\u0435\u0433\u043e \u0442\u0440\u0438 \u0432\u0435\u0449\u0438:<\/p>\n<ol>\n<li>\n<p>\u041f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b (\u0432\u044b\u0437\u044b\u0432\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e), \u0438 \u0437\u0430\u0442\u0435\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c json, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c page object\u2019\u044b \u0438 \u0442\u0435\u0441\u0442\u044b \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0442\u0435\u0441\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0430, \u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0451.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c 2.\u00a0<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u043c.<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0431\u043e\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>1) You may obtain page code by calling \"get_page_code\" function. It will return you:  raw HTML document, what needs to be tested. And you need to respond with json in following format: { \"page_objects\": [ \"@property\\\\n     def calculate_button(self):\\\\n         return WebDriverWait(self.driver, 10).until(\\\\n             EC.presence_of_element_located((By.XPATH, '\/\/button[.='''Calculate''']'))\\\\n         )\", &lt;...> ], \"tests\": [\"def test_division_by_zero(page):\\\\n     page.numbers_input.send_keys(1024)\\\\n     page.divide_button.click()\\\\n     page.calculator_input.send_keys('0')\\\\n     page.calculate_button.click()\\\\n     assert page.error.text() == 'Error: divide by zero'\", &lt;...>], } This means you need to create page objects for each object on the page using laconic and stable XPATH locators (as short and stables as you can, use only By.XPATH locators, not By.ID, not By.CSS_SELECTOR or By.CLASS name), and then create all possible test cases for them. It might be some filed filling tests (errors, border checks, positive and negative cases), clicking, content changing, etc. Please respect to use 'page' fixture for every test, it's predefined in code and opens page under test before it. 2) Then I may ask you to execute some tests. You can run demanded test via \"get_tests_results\" function, based on gathered content, you need to respond with json in following format: results = {     \"passed\": [],     \"failed\": [],     \"error\": [],     \"failure details\": {} } where \"failure details\" - is dict with keys equal to test names (which you generated) and possible failures details. If you got an failures and errors, you need to respond as in 1 with fixed code (page objects and\/or tests). Answer only with JSON in format I mentioned in 1. Never add anything more than that (no explanations, no extra text, only json). 3) In addition to 1 and 2 i may pass you extra info what kind of test data might be used (i.e. for form filling), but in general you need to generate all possible scenarios (valid\/invalid\/border cases, always add what's not listed by user, but should be for best quality of testing coverage).<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0442\u043e\u043a\u0435\u043d\u044b, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 (\u043b\u0443\u0447\u0448\u0435 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 <a href=\"https:\/\/pypi.org\/project\/requests\/\" rel=\"noopener noreferrer nofollow\">request<\/a>\u2019\u043e\u043c, \u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e selenium, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0439 javascript), \u0437\u0430\u0442\u0435\u043c \u0443\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0451 \u043b\u0438\u0448\u043d\u0435\u0435 &#8212; \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e body \u0438 \u0443\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 script\u2019\u044b. \u0412\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a, \u043a\u0430\u043a \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0431\u0438\u0440\u0430\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (\u0441\u0430\u0439\u0434\u0431\u0430\u0440\u044b, \u0445\u044d\u0434\u0435\u0440\u044b \u0438 \u043f\u0440\u043e\u0447\u0430\u044f), \u0437\u0430\u0431\u0438\u0440\u0430\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b, \u0438 \u0442.\u0434.. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043a\u043b\u0430\u0441\u0441 <em>PageRetriever<\/em>. <\/p>\n<details class=\"spoiler\">\n<summary>page_retriever.py<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service as ChromeService from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from webdriver_manager.chrome import ChromeDriverManager   class PageRetriever:     \"\"\"The PageRetriever class is for managing an instance of the PageRetriever.\"\"\"      def __init__(self, url=\"\"):         \"\"\"         General init.          :param url: (str) URL of the page.         \"\"\"         options = Options()         options.add_argument(\"--headless\")         options.headless = True         path = ChromeDriverManager().install()         self.driver = webdriver.Chrome(service=ChromeService(executable_path=path), options=options)         self.url = url      def set_url(self, url):         \"\"\"         Set the url.          :param url: (str) URL of the page.         \"\"\"         self.url = url      def get_page(self, url=None):         \"\"\"         Get the page content from the url.          :param url: (str) URL of the page.         :return: (str) HTML content of the page.         \"\"\"         if url:             self.set_url(url)         return self.get_page_content(self.url)      def get_body(self, url=None):         \"\"\"         Get the body content of the page.          :param url: (str) URL of the page.         :return: (str) Body content of the page.         \"\"\"         if url:             self.set_url(url)         return self.extract_body_content(self.get_page())      def get_body_without_scripts(self, url=None):         \"\"\"         Get the body content of the page without &lt;script>...&lt;\/script> tags.          :param url: (str) URL of the page.         :return: (str) Body content of the page without &lt;script>...&lt;\/script> tags.         \"\"\"         if url:             self.set_url(url)         return self.remove_script_tags(self.get_body())      def get_page_content(self, url):         \"\"\"         Get the page content from the url.          :param url: (str) URL of the page.         :return: (str) HTML content of the page.         \"\"\"         self.driver.get(url)          WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, \"body\")))          start_time = time.time()         while True:             network_activity = self.driver.execute_script(                 \"return window.performance.getEntriesByType('resource').filter(item => \"                 \"item.initiatorType == 'xmlhttprequest' &amp;&amp; item.duration == 0)\"             )             if not network_activity or time.time() - start_time > 30:                 break          content = self.driver.page_source         self.driver.close()         self.driver.quit()          return content      @staticmethod     def extract_body_content(html_content):         \"\"\"         Extract the body content from the html_content.          :param html_content: (str) HTML content of the page.         :return: (str) Body content of the page.         \"\"\"         soup = BeautifulSoup(html_content, \"html.parser\")         body_content = soup.body          return str(body_content)      @staticmethod     def remove_script_tags(input_content):         \"\"\"         Remove all &lt;script>...&lt;\/script> tags from the input_content.          :param input_content: (str) HTML content of the page.         :return: (str) Body content of the page without &lt;script>...&lt;\/script> tags.         \"\"\"         pattern_1 = re.compile(r\"&lt;script.*?>.*?&lt;\/script>\", re.DOTALL)         pattern_2 = re.compile(r\"&lt;path.*?>.*?&lt;\/path>\", re.DOTALL)         output = re.sub(pattern_1, \"\", input_content)         output = re.sub<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0443\u0436\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a web \u0434\u043b\u044f LLM. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"https:\/\/twitter.com\/OpenAI\/status\/1707077710047216095\" rel=\"noopener noreferrer nofollow\">\u0443\u0436\u0435 \u0430\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0430 <\/a>\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0434\u043b\u044f ChatGPT \u0434\u043b\u044f \u043a\u043e\u0440\u043e\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0438 plus \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432. \u041d\u043e, \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432, \u0432\u0430\u043c \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043a\u043e\u0434 \u0432 \u0446\u0435\u043b\u044f\u0445 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u0438\u043b\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/div>\n<\/details>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0442\u0430\u043a\u043e\u0439 runner, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u0418\u0418 \u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u0430\u0445. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/pypi.org\/project\/pytest-json-report\/\" rel=\"noopener noreferrer nofollow\">pytest-json-report<\/a> \u043f\u043b\u0430\u0433\u0438\u043d. \u0412 \u0440\u0435\u043f\u043e\u0440\u0442 \u0441\u043b\u043e\u0436\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0438 \u0443\u043f\u0430\u0432\u0448\u0438\u0445 \u0442\u0435\u0441\u0442\u0430\u0445, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u043f\u0430\u0432\u0448\u0435\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0430\u043c\u0443 \u043e\u0448\u0438\u0431\u043a\u0443 (\u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0442\u0443\u0434\u0430 \u0438 \u0437\u0430\u043f\u0438\u0445\u043d\u0443\u0442\u044c \u0442\u0440\u0435\u0439\u0441\u0431\u044d\u043a), \u0430 \u0442\u0430\u043a \u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0430\u0434\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0418\u0418 \u0432\u0438\u0434\u0435\u043b, \u0447\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043c\u043e\u0433 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041f\u0440\u0430\u0432\u0434\u0430, \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0435 \u0442\u0430\u043a\u0438\u0435 \u0443\u0436 \u0438 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435, \u0438 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 &#8212; \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0436\u0438\u0440\u043d\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u043c\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0443\u043f\u0440\u0451\u043c\u0441\u044f \u0432 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430, \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0443\u044e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u0442\u043e\u043a\u0435\u043d\u0430\u0445 \u0442\u0430\u043a\u043e\u0433\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430. \u041d\u043e, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0440\u0430\u0431\u043e\u0442\u0430 \u0418\u0418 \u0441\u0442\u043e\u0438\u0442 \u0446\u0435\u043d\u0442\u044b, \u0430 \u043d\u0435 \u0441\u043e\u0442\u043d\u0438 \u0434\u043e\u043b\u043b\u0430\u0440\u043e\u0432, \u043a\u0430\u043a \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430-\u0434\u0436\u0443\u043d\u0430.<\/p>\n<details class=\"spoiler\">\n<summary>pytest_runner.py<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import io import json from os import remove  import pytest  from utils.page_retriever import PageRetriever   def run_tests(test_files, add_failed_html=True, add_failure_reasons=True, count_of_htmls=1):     \"\"\"     Run tests and return results in JSON format.      :param test_files: (list) list with test files.     :param add_failed_html: (bool) boolean to add html report.     :param add_failure_reasons: (bool) boolean to add failure reasons.     :param count_of_htmls: (int) count of htmls to add. Doesn't recommend to use more than 1.     :return: JSON with results.     \"\"\"     pytest.main(         [             \"-q\",             \"--json-report\",             \"--json-report-file=test_report.json\",             #\"-n=4\",             \"-rfEx --tb=none -p no:warnings -p no:logging\",         ]         + test_files     )      with open(\"test_report.json\", encoding=\"utf-8\") as json_file:         data = json.load(json_file)      results = {\"passed\": [], \"failed\": [], \"error\": [], \"failure details\": {}, \"failed_pages\": {}}      for test in data[\"tests\"]:         node_name = test[\"nodeid\"].split(\"::\")[1]         if test[\"outcome\"] == \"passed\":             results[\"passed\"].append(node_name)         elif test[\"outcome\"] == \"failed\" or test[\"outcome\"] == \"error\":             results[test[\"outcome\"]].append(node_name)             if add_failure_reasons:                 results[\"failure details\"][node_name] = {node_name: test[\"call\"][\"crash\"]}             if add_failed_html:                 if len(results[\"failed_pages\"]) &lt; count_of_htmls:                     results[\"failed_pages\"][node_name] = {node_name: parse_error_page(node_name)}      json_results = json.dumps(results)      return json_results   def parse_error_page(node_name):     \"\"\"     Parse error page.      :param node_name: (str) name of the node.     :return: (str) formatted content of the page.     \"\"\"     parser = PageRetriever()     try:         file_name = f\"{node_name}.html\"         with open(file_name, \"r\", encoding=\"utf-8\") as file:             formatted_content = parser.remove_script_tags(parser.extract_body_content(file))         remove(file_name)         return formatted_content     except io.UnsupportedOperation:         return \"No page available.\"<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 json \u0434\u043b\u044f chatgpt, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0432\u0430\u0442\u044c pageretriever \u0438 runner \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<\/p>\n<details class=\"spoiler\">\n<summary>gpt_functions.py<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">from examples.test_generator.pytest_runner import run_tests from utils.page_retriever import PageRetriever  doc_engine = PageRetriever() gpt_functions = [     {         \"name\": \"get_page_code\",         \"description\": \"Get page code to generate locators and tests\",         \"parameters\": {             \"type\": \"object\",             \"properties\": {\"url\": {\"type\": \"string\", \"description\": \"The URL of the page to get the code from\"}},             \"required\": [],         },     },     {         \"name\": \"get_tests_results\",         \"description\": \"Get the results of the tests\",         \"parameters\": {             \"type\": \"object\",             \"properties\": {                 \"test_files\": {                     \"type\": \"array\",                     \"items\": {\"type\": \"string\"},                     \"description\": \"The list of test files to run\",                 }             },             \"required\": [],         },     }, ]  gpt_functions_dict = {     \"get_page_code\": doc_engine.get_body_without_scripts,     \"get_tests_results\": run_tests, } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u043e\u0436\u0438\u0434\u0430\u0435\u043c, \u0447\u0442\u043e \u0418\u0418 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0441\u0442\u044b \u0438 page object&#8217;\u044b, \u0430 \u043d\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0444\u0430\u0439\u043b\u044b (\u0442\u0430\u043a \u043c\u044b \u0442\u043e\u0436\u0435 \u0447\u0443\u0442\u044c \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043c \u0442\u043e\u043a\u0435\u043d\u044b), \u0442\u043e \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u044d\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u043d\u0430 \u0441\u0435\u0431\u044f, \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437. \u0417\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0435\u0433\u043e \u0441\u0430\u043c\u0438, \u043d\u043e, \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u0418\u0418, \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u201c\u0448\u0430\u043f\u043a\u0443\u201d \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0430 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432\\po \u043d\u0430\u043c \u043e\u043d\u0430 \u0436\u0435. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c &#8212; \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430, \u0430 \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u041d\u043e \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u043c \u0445\u0432\u0430\u0442\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c.\u00a0<\/p>\n<details class=\"spoiler\">\n<summary>pom_case_generator.py<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import os  from urllib.parse import urlparse, unquote   class PomTestCaseGenerator:     \"\"\"Class for generating test files and page objects from json data\"\"\"      def __init__(self, url=\"\"):         \"\"\"         General init.          :param url: (str) URL of the page.         \"\"\"         self.url = url      def set_url(self, url):         \"\"\"         Set the url.          :param url: (str) URL of the page.         \"\"\"         self.url = url      def ___create_pom_file(self, file_name, page_objects, url=\"\", pom_folder=\"pom\"):         \"\"\"         Create page object model file.          :param file_name: (str) Name of the file.         :param page_objects: (list) List of page objects.         :param url: (str) URL of the page.         :param pom_folder: (str) Folder for page object model files.         \"\"\"         if not url:             url = self.url         if not os.path.exists(pom_folder):             os.makedirs(pom_folder)         with open(f\"{pom_folder}\/page_{file_name}.py\", \"w\", encoding=\"utf-8\") as pom_file:             pom_file.write(\"from selenium.webdriver.common.by import By\\n\")             pom_file.write(\"from selenium.webdriver.support.ui import WebDriverWait\\n\")             pom_file.write(\"from selenium.webdriver.support import expected_conditions as EC\\n\\n\\n\")             pom_file.write(f'class Page{\"\".join(word.capitalize() for word in file_name.split(\"_\"))}:\\n')             pom_file.write(\"    def __init__(self, driver):\\n\")             pom_file.write(f'        self.url = \"{url}\"\\n')             pom_file.write(\"        self.driver = driver\\n\\n\")             for method in page_objects:                 pom_file.write(f\"    {method}\\n\\n\")      @staticmethod     def ___create_test_file(file_name, tests, pom_folder=\"pom\", tests_folder=\"tests\"):         \"\"\"         Create test file.          :param file_name: (str) Name of the file.         :param tests: (list) List of tests.         :param pom_folder: (str) Folder for page object model files.         :param tests_folder: (str) Folder for test files.         \"\"\"         with open(f\"{tests_folder}\/test_{file_name}.py\", \"w\", encoding=\"utf-8\") as test_file:             test_file.write(\"import pytest\\n\\n\")             test_file.write(                 f'from {pom_folder}.{os.path.splitext(f\"page_{file_name}\")[0]} import Page'                 f'{\"\".join(word.capitalize() for word in file_name.split(\"_\"))}\\n\\n\\n'             )             test_file.write('@pytest.fixture(scope=\"function\")\\n')             test_file.write(\"def page(driver):\\n\")             test_file.write(                 f'    page_under_test = Page{\"\".join(word.capitalize() for word in file_name.split(\"_\"))}(driver)\\n'             )             test_file.write(\"    driver.get(page_under_test.url)\\n\")             test_file.write(\"    return page_under_test\\n\\n\\n\")             for test in tests:                 test_file.write(f\"{test}\\n\\n\\n\")      def create_files_from_json(self, json_data, url=\"\", pom_folder=\"pom\", tests_folder=\"tests\"):         \"\"\"         Create test and page object model files from json data.          :param json_data: (str) JSON data.         :param url: (str) URL of the page.         :param pom_folder: (str) Folder for page object model files.         :param tests_folder: (str) Folder for test files.         \"\"\"         if not url:             url = self.url         parsed_url = urlparse(unquote(url))         file_name = parsed_url.path.strip(\"\/\").replace(\"\/\", \"_\") or \"index\"         self.___create_test_file(file_name, json_data[\"tests\"], pom_folder=\"..pom\", tests_folder=tests_folder)         self.___create_pom_file(file_name, json_data[\"page_objects\"], url, pom_folder=pom_folder) <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043a\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u0447\u0430\u0441\u0442\u0438, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0437\u043e\u0432\u0451\u043c \u0432\u0441\u0451 \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435.<\/p>\n<details class=\"spoiler\">\n<summary>generator_test.py<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import asyncio import json import logging  from examples.creds import oai_token, oai_organization from examples.test_generator.gpt_functions import gpt_functions, gpt_functions_dict from examples.test_generator.pom_case_generator import PomTestCaseGenerator from openai_api.src.openai_api import ChatGPT from openai_api.src.openai_api.logger_config import setup_logger  PAGE_UNDER_TEST = \"https:\/\/www.saucedemo.com\/\" generator = PomTestCaseGenerator(url=PAGE_UNDER_TEST)   def setup_gpt():     \"\"\"Setup GPT bot with appropriate functions and settings\"\"\"     gpt = ChatGPT(auth_token=oai_token, organization=oai_organization, model=\"gpt-4-0613\")     gpt.function_dict = gpt_functions_dict     gpt.function_call = \"auto\"     gpt.functions = gpt_functions     gpt.system_settings = \"\"\"%instructions_inside%\"\"\"     return gpt   async def main():     \"\"\"Main function for testing GPT bot\"\"\"     print(\"===Setup GPT bot===\")     gpt = setup_gpt()          print(f\"===Get page code of {PAGE_UNDER_TEST} and generate PO and tests===\")     response = await anext(gpt.str_chat(f\"Get page code of {PAGE_UNDER_TEST} and generate PO and tests\"))     print(response)  # print response as debug output     response = response.replace(\"\\n\", \"\")  # need to proper json loading     generator.create_files_from_json(         json.loads(response), pom_folder=\"examples\/test_generator\/pom\", tests_folder=\"examples\/test_generator\/tests\"     )     print(\"===Get tests results for examples\/test_generator\/tests\/test_index.py==\")     response = await anext(gpt.str_chat(\"Get tests results for examples\/test_generator\/tests\/test_index.py\"))     print(response)  # print response as debug output     print(\"===If there are failures in code, please fix it by fixing POM and tests===\")     response = await anext(gpt.str_chat(\"If there are failures in code, please fix it by fixing POM and tests\"))     print(response)  # print response as debug output     generator.create_files_from_json(         json.loads(response.replace(\"\\n\", \"\")), pom_folder=\"..pom\", tests_folder=\"examples\/test_generator\/tests\"     )     # repeat as many times as you wish or getting 100% passrate   asyncio.run(main())<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043f\u043e\u043b\u0442\u043e\u0440\u044b \u043c\u0438\u043d\u0443\u0442\u044b (\u0441 \u043f\u0435\u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0448\u0438\u0431\u043e\u043a, \u0442.\u0435. \u0432\u0435\u0441\u044c \u0446\u0438\u043a\u043b), \u0447\u0442\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u201c\u0432\u0441\u043b\u0435\u043f\u0443\u044e\u201d \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e. \u0414\u0430, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0435\u0441\u0442\u043e\u0432, \u043d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u0441\u0435\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438, \u0434\u0430 \u0438 \u0442\u0435\u0441\u0442\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c\u0438. \u0422\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0443 \u043d\u0430\u0441 \u043f\u0440\u043e\u0448\u0451\u043b \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u044f\u0442\u0438 \u0442\u0435\u0441\u0442\u043e\u0432. \u041f\u0440\u0430\u0432\u0434\u0430, \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0447\u0435\u0441\u0442\u043d\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/88d\/52c\/cf4\/88d52ccf4a272d8d2218a073e1c967d9.jpg\" alt=\"\u041d\u0435\u043f\u043b\u043e\u0445\u043e, \u043d\u043e \u0433\u0434\u0435 \u0436\u0435 assert \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0442\u0435\u0441\u0442\u0435? \u0420\u0430\u0437\u0432\u0435 \u044d\u0442\u043e \u0442\u0435\u0441\u0442?\" title=\"\u041d\u0435\u043f\u043b\u043e\u0445\u043e, \u043d\u043e \u0433\u0434\u0435 \u0436\u0435 assert \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0442\u0435\u0441\u0442\u0435? \u0420\u0430\u0437\u0432\u0435 \u044d\u0442\u043e \u0442\u0435\u0441\u0442?\" width=\"768\" height=\"434\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/88d\/52c\/cf4\/88d52ccf4a272d8d2218a073e1c967d9.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u041d\u0435\u043f\u043b\u043e\u0445\u043e, \u043d\u043e \u0433\u0434\u0435 \u0436\u0435 assert \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0442\u0435\u0441\u0442\u0435? \u0420\u0430\u0437\u0432\u0435 \u044d\u0442\u043e \u0442\u0435\u0441\u0442?<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0442\u043e \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0418\u0418 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043b \u0438 \u043f\u0435\u0440\u0432\u044b\u0439, \u043d\u0435\u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u0442\u0435\u0441\u0442, \u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0437\u0430\u043f\u0443\u0441\u043a\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u043f\u044f\u0442\u044c \u0438\u0437 \u0448\u0435\u0441\u0442\u0438 \u0442\u0435\u0441\u0442\u043e\u0432. \u0412\u0441\u0435\u0433\u043e \u0437\u0430 3 \u043c\u0438\u043d\u0443\u0442\u044b!<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c96\/fb4\/08e\/c96fb408e2d6708900e8db07f93d45fd.png\" alt=\"5 \u0438\u0437 6 - \u0431\u0435\u0437 \u043c\u043e\u0435\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0437\u0430 \u0442\u0440\u0438 \u043c\u0438\u043d\u0443\u0442\u044b\" title=\"5 \u0438\u0437 6 - \u0431\u0435\u0437 \u043c\u043e\u0435\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0437\u0430 \u0442\u0440\u0438 \u043c\u0438\u043d\u0443\u0442\u044b\" width=\"2058\" height=\"676\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c96\/fb4\/08e\/c96fb408e2d6708900e8db07f93d45fd.png\"\/><\/p>\n<div><figcaption>5 \u0438\u0437 6 &#8212; \u0431\u0435\u0437 \u043c\u043e\u0435\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0437\u0430 \u0442\u0440\u0438 \u043c\u0438\u043d\u0443\u0442\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u043f\u043e\u0434\u0445\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0438 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0437\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u0442\u0435\u0441\u0442\u044b. \u0421 \u0443\u0447\u0451\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u0447\u0442\u043e \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c, \u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u044f \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0418\u0418, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0443\u0442\u043e\u0447\u043d\u044f\u044f, \u043a\u0430\u043a\u0438\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044c (\u041d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438? \u0413\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f?) \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432 \u043f\u043e\u043b\u0443-\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u043b\u0438\u0448\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u043d\u0430\u0431\u043e\u0440 url \u0432 \u0441\u043a\u0440\u0438\u043f\u0442.<\/p>\n<h2>\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<p>\u042f \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0441\u0432\u043e\u044e \u0436\u0438\u0437\u043d\u044c \u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0431\u0435\u0437 \u0418\u0418. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0418\u0418 \u0432 \u043c\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0441 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u043e\u0442\u0434\u0430\u0447\u0430 \u0442\u0430\u043a \u0436\u0435 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0451\u0442 \u0431\u0435\u0437 \u0440\u043e\u0441\u0442\u0430 \u0446\u0435\u043d\u044b, \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0432\u0435\u0449\u0438, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0438 \u0432\u043e\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0442\u0430\u043a \u0436\u0435 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0418\u0418. <\/p>\n<p>\u041e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e, \u0447\u0442\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b? \u041d\u0435\u0442. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0432\u0441\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0418\u0418 &#8212; \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0435\u0441\u043b\u0438 \u0443\u0433\u043e\u0434\u043d\u043e \u0441\u0442\u0430\u043d\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0442\u043e\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0430 \u043f\u0440\u0438 \u043d\u0435\u0443\u043c\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0440\u0443\u0431\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u043f\u0430\u043b\u044c\u0446\u044b.\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/eb0\/92b\/986\/eb092b986cbea8ea011c3e7a49d9bff0.jpg\" alt=\"\u0416\u0435\u043b\u0435\u0437\u043d\u044b\u0439\u00a0\u043a\u043e\u043d\u044c\u00a0\u0438\u0434\u0451\u0442\u00a0\u043d\u0430\u00a0\u0441\u043c\u0435\u043d\u0443\u00a0\u043a\u0440\u0435\u0441\u0442\u044c\u044f\u043d\u0441\u043a\u043e\u0439 \u043b\u043e\u0448\u0430\u0434\u043a\u0435!\" title=\"\u0416\u0435\u043b\u0435\u0437\u043d\u044b\u0439\u00a0\u043a\u043e\u043d\u044c\u00a0\u0438\u0434\u0451\u0442\u00a0\u043d\u0430\u00a0\u0441\u043c\u0435\u043d\u0443\u00a0\u043a\u0440\u0435\u0441\u0442\u044c\u044f\u043d\u0441\u043a\u043e\u0439 \u043b\u043e\u0448\u0430\u0434\u043a\u0435!\" width=\"2072\" height=\"1160\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eb0\/92b\/986\/eb092b986cbea8ea011c3e7a49d9bff0.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption><em>\u0416\u0435\u043b\u0435\u0437\u043d\u044b\u0439<\/em>\u00a0\u043a\u043e\u043d\u044c\u00a0<em>\u0438\u0434\u0451\u0442<\/em>\u00a0\u043d\u0430\u00a0<em>\u0441\u043c\u0435\u043d\u0443<\/em>\u00a0\u043a\u0440\u0435\u0441\u0442\u044c\u044f\u043d\u0441\u043a\u043e\u0439 \u043b\u043e\u0448\u0430\u0434\u043a\u0435!<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e, \u0447\u0442\u043e \u0434\u0436\u0443\u043d\u044b \u043d\u0435 \u043d\u0443\u0436\u043d\u044b? \u0418 \u0434\u0430, \u0438 \u043d\u0435\u0442. \u041d\u0430 \u0432\u043e\u0437\u043d\u044e \u0447\u0442\u043e \u0441 \u0434\u0436\u0443\u043d\u0430\u043c\u0438, \u0447\u0442\u043e \u0441 \u0418\u0418 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f. \u0418 \u0441 \u0442\u0435\u043c\u0438, \u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438, \u0432\u044b\u0440\u0430\u0441\u0442\u0438\u0432, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0448\u044c \u043e\u0442\u0434\u0430\u0447\u0443 &#8212; \u0438 \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0441\u0438\u043b\u0443, \u0438 \u043c\u043e\u0440\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0435, \u0438 \u0432\u044b\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0418\u0418 \u0431\u044b\u0441\u0442\u0440\u043e \u0443\u0447\u0438\u0442\u0441\u044f, \u043d\u043e \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. \u041b\u044e\u0434\u0438 \u0432 \u044d\u0442\u043e\u043c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u0435 \u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435, \u043d\u043e \u0438 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0435. \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u0418\u0418 \u043f\u043e\u0432\u044b\u0441\u0438\u0442 \u043f\u043b\u0430\u043d\u043a\u0443 \u0434\u043b\u044f \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044e, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u043c \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0438\u0432\u043d\u044b\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u0443 \u0434\u0436\u0443\u043d\u043e\u0432 \u0442\u0430\u043a \u0436\u0435 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u0442\u043e\u043c\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0443. \u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u044e\u0434\u0435\u0439, \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/934\/067\/4a9\/9340674a95c1e3e20d955966b6879f7b.png\" alt=\"\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430\u043c, \u0438\u0437-\u0437\u0430 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0418\u0418 \u0434\u043e 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443\" title=\"\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430\u043c, \u0438\u0437-\u0437\u0430 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0418\u0418 \u0434\u043e 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443\" width=\"1456\" height=\"816\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/934\/067\/4a9\/9340674a95c1e3e20d955966b6879f7b.png\"\/><\/p>\n<div><figcaption>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430\u043c, \u0438\u0437-\u0437\u0430 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0418\u0418 \u0434\u043e 300 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0442\u0432\u0435\u0447\u0430\u044f \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 HR \u0438 \u043d\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0445 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432: \u201c\u043d\u0430\u0434\u043e \u0443\u0432\u043e\u043b\u044c\u043d\u044f\u0442\u044c \u0438 \u0436\u0434\u0430\u0442\u044c \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0439\u201d? \u0415\u0441\u043b\u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0418\u0418 \u0441\u0435\u0439\u0447\u0430\u0441, \u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u0432\u0441\u0442\u0440\u0435\u0447\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043a \u0432\u0430\u043c: \u0437\u0430\u0447\u0435\u043c \u0432\u044b \u0434\u0435\u0440\u0436\u0438\u0442\u0435 \u0442\u0430\u043a\u0438\u0445 \u043b\u044e\u0434\u0435\u0439? \u0417\u0430\u0447\u0435\u043c \u0432\u044b \u0438\u0445 \u043d\u0430\u043d\u0438\u043c\u0430\u043b\u0438? \u0425\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u043f\u0443\u0441\u0442\u044c \u0434\u0430\u0436\u0435 \u0434\u0436\u0443\u043d\u0430, \u0440\u0435\u0448\u0438\u0432\u0448\u0435\u0433\u043e \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044e, \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430 \u0437\u0430\u0432\u043e\u0434\u0435 \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u0438 \u0441\u0442\u0430\u043d\u043a\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u0443\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c &#8212; \u043e\u043d\u0438 \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u0442\u0430\u043d\u043a\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f, \u0445\u043e\u0447\u0435\u0442 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f &#8212; \u0447\u0438\u0442\u0430\u044f \u043a\u043d\u0438\u0433\u0438 \u0438\\\u0438\u043b\u0438 \u043e\u0431\u0449\u0430\u044f\u0441\u044c \u0441 \u0418\u0418, \u0442\u043e \u043b\u044e\u0431\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0432 \u0435\u0433\u043e \u0440\u0443\u043a\u0430\u0445 \u0438 \u0432\u043a\u043b\u0430\u0434 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0448\u0435, \u0447\u0435\u043c \u0443 \u0418\u0418, \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0437-\u0437\u0430 \u0435\u0433\u043e \u0430\u043c\u0431\u0438\u0446\u0438\u0439 \u0438 \u0441\u0442\u0440\u0435\u043c\u043b\u0435\u043d\u0438\u0439, \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u0441\u0442\u0432\u0430, \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0438 \u043f\u044b\u0442\u043b\u0438\u0432\u043e\u0441\u0442\u0438. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e, \u043a\u0430\u043a \u0418\u0418 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0438 \u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0436\u0434\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0443, \u0430 \u043d\u0435\u0434\u0435\u043b\u044e &#8212; \u0442\u043e\u0433\u0434\u0430 \u043e\u0442\u0432\u0435\u0442 \u043e\u0447\u0435\u0432\u0438\u0434\u0435\u043d.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e27\/020\/a72\/e27020a7261530d08672a73c36f8ab72.png\" alt=\"\u0418\u0418, \u0445\u043e\u0442\u0438\u0442\u0435 \u043b\u0438 \u0432\u044b \u044d\u0442\u043e\u0433\u043e \u0438\u043b\u0438 \u043d\u0435\u0442 - \u044d\u0442\u043e \u0438 \u0432\u0430\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0438 \u0432\u0430\u0448 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\" title=\"\u0418\u0418, \u0445\u043e\u0442\u0438\u0442\u0435 \u043b\u0438 \u0432\u044b \u044d\u0442\u043e\u0433\u043e \u0438\u043b\u0438 \u043d\u0435\u0442 - \u044d\u0442\u043e \u0438 \u0432\u0430\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0438 \u0432\u0430\u0448 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\" width=\"1456\" height=\"816\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e27\/020\/a72\/e27020a7261530d08672a73c36f8ab72.png\"\/><\/p>\n<div><figcaption>\u0418\u0418, \u0445\u043e\u0442\u0438\u0442\u0435 \u043b\u0438 \u0432\u044b \u044d\u0442\u043e\u0433\u043e \u0438\u043b\u0438 \u043d\u0435\u0442 &#8212; \u044d\u0442\u043e \u0438 \u0432\u0430\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0438 \u0432\u0430\u0448 \u043a\u043e\u043b\u043b\u0435\u0433\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0420\u0435\u0448\u0430\u0435\u0442 \u043b\u0438 \u043b\u044e\u0431\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0418\u0418 \u0441\u0435\u0433\u043e\u0434\u043d\u044f? \u041d\u0435\u0442, \u043a\u0430\u043a \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0438 \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u043f\u0440\u0438\u0447\u0451\u043c \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0442\u043d\u044b\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0435, \u0447\u0430\u0441\u0442\u043e \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b &#8212; \u043d\u0430 \u0434\u043e\u043b\u0433\u043e\u0441\u0440\u043e\u043a. \u0413\u0440\u0443\u0431\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e:\u00a0 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0438 smoke-\u043c\u043e\u0434\u0435\u043b\u044c \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u201c\u043f\u0440\u043e\u0432\u0435\u0440\u044c, \u0447\u0442\u043e \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u201d, \u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430 \u043c\u0438\u043d\u0443\u0442\u044b. \u0418, \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432 \u0441\u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0430\u0436\u043d\u044b\u0445 \u0432\u0435\u0449\u0430\u0445 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438 \u0432\u043d\u0435 \u0435\u0451. \u041f\u0443\u0441\u0442\u044c \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0440\u043e\u0431\u043e\u0442\u044b.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0451. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0431\u044b\u043b \u0432\u0430\u043c \u043f\u043e\u043b\u0435\u0437\u0435\u043d, \u0442\u043e \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043b\u0430\u0439\u043a \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u0442\u0443, \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439, \u0430 \u0442\u0430\u043a \u0436\u0435, \u0435\u0441\u043b\u0438 \u0432\u043e\u043e\u0434\u0443\u0448\u0435\u0432\u0438\u0442\u0435\u0441\u044c &#8212;\u00a0<a href=\"https:\/\/www.donationalerts.com\/r\/rocketsciencegeek\" rel=\"noopener noreferrer nofollow\"><u>\u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043c\u043e\u043d\u0435\u0442\u043a\u043e\u0439<\/u><\/a>. \u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438\u00a0<a href=\"https:\/\/wwakabobik.github.io\/2023\/10\/qa_ai_practices_used_for_qa\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><\/p>\n<div class=\"tm-article-poll-container\"><!--[--><\/p>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/769168\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0417\u0430\u043c\u0435\u043d\u0438\u0442 \u043b\u0438 \u0418\u0418 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">32.91% <\/span><span class=\"tm-article-poll__answer-label\">\u041d\u0435\u0442. \u0418 \u043f\u043e\u0432\u044b\u0441\u0438\u0442 \u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/span><span class=\"tm-article-poll__answer-votes\">26<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 32.91%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">21.52% <\/span><span class=\"tm-article-poll__answer-label\">\u041d\u0435\u0442, \u043d\u043e \u0433\u0440\u044f\u0434\u0443\u0442 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438\u0437-\u0437\u0430 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0418\u0418<\/span><span class=\"tm-article-poll__answer-votes\">17<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 21.52%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">13.92% <\/span><span class=\"tm-article-poll__answer-label\">\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f.<\/span><span class=\"tm-article-poll__answer-votes\">11<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 13.92%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">21.52% <\/span><span class=\"tm-article-poll__answer-label\">\u0418 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438 \u0418\u0418 \u043a\u043e\u0441\u044f\u0447\u0430\u0442. \u0420\u0430\u0431\u043e\u0442\u044b \u0441\u0442\u0430\u043d\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435!<\/span><span class=\"tm-article-poll__answer-votes\">17<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 21.52%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">10.13% <\/span><span class=\"tm-article-poll__answer-label\">\u0414\u0430. \u041d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e! \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b!<\/span><span class=\"tm-article-poll__answer-votes\">8<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 10.13%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 79 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 5 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. <\/div>\n<p><!--]--><\/div>\n<p><!--]--><\/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\/769168\/\"> https:\/\/habr.com\/ru\/articles\/769168\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0418\u043b\u044c\u044f. \u0418 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e LLM \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0443\u0436\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430. \u0425\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c\u0438, \u043a\u0430\u043a \u0418\u0418 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b. \u0418 \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0431\u043e\u044f\u0442\u044c\u0441\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c \u0437\u0430\u043c\u0435\u043d\u044b \u0436\u0435\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u043c\u043e\u0437\u0433\u0430\u043c\u0438 \u0438 \u0440\u0443\u043a\u0430\u043c\u0438?<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0441 \u0418\u0418 \u043b\u0438\u0446\u043e\u043c \u043a \u043b\u0438\u0446\u0443<\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u0443\u0434\u0435\u0442 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u044b\u043c \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0418\u0418, LLM &#8212; \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0431\u0430\u0437\u0430 \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430 \u0441 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u044c\u044e \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u043c, \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 &#8212; \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0418\u0418 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c \u0442\u0435\u043e\u0440\u0438\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b, \u0441\u0441\u044b\u043b\u0430\u044f\u0441\u044c \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438, \u043a\u043d\u0438\u0433\u0438, \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043f\u043e\u043c\u043e\u0447\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u043c\u0443 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0443. \u0420\u0430\u0437 \u0442\u0430\u043a, \u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0440\u0435\u0437\u043e\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 &#8212; \u0441\u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0418\u0418 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430? \u0418 \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u0439. \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0442\u0435\u043c\u043f\u044b \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0418\u0418 &#8212; \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0432 \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438?<\/p>\n<h2>\u0420\u0443\u0447\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0431\u0430\u0437\u0430 \u0437\u043d\u0430\u043d\u0438\u0439<\/h2>\n<p>\u042f \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0418\u0418 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0430\u043c\u0438 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435, \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0418\u0418 \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 Junior-\u043f\u043e\u0434\u043e\u043f\u0435\u0447\u043d\u044b\u043c\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c\u0438. \u0422\u043e \u0435\u0441\u0442\u044c, \u0441\u0435\u0439\u0447\u0430\u0441 \u0418\u0418 \u043c\u043e\u0436\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043e\u043b\u043e\u0434\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b, \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u043f\u043e\u0434 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u043c \u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f, senior\u2019a. \u0421\u043a\u0430\u0436\u0435\u043c, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0418\u0418, \u0438 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432\u044b \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435, \u0418\u0418 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0441 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 &#8212; \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0447\u0435\u043a-\u043b\u0438\u0441\u0442\u043e\u0432, \u0442\u0435\u0441\u0442-\u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u0430 &#8212; \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432. \u041d\u043e \u0441 \u0442\u0435\u043c \u043d\u044e\u0430\u043d\u0441\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u043c, \u043a\u0430\u043a \u0441\u0442\u0430\u0440\u0448\u0435\u043c\u0443 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0443 \u0432\u0441\u0451 \u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0430, \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0418\u0418 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0430 \u043f\u0430\u043b\u044c\u0446\u0430\u0445, \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u0439\u0442\u0435 \u043e\u0442 \u043d\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445, \u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432, \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u0439\u0442\u0435 \u043e\u0442 \u043d\u0435\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u043a\u0435\u0439\u0441\u043e\u0432 (\u0445\u043e\u0442\u044f \u043e\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e). \u0422\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0435\u0433\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c &#8212; \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0439, \u0434\u043e\u0434\u0435\u043b\u0430\u0439, \u0443\u0433\u043b\u0443\u0431\u0438. \u0418 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u0435\u0439\u0441\u043e\u0432 &#8212; \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430, \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0418\u0418. \u042d\u0442\u043e \u0441\u0445\u043e\u0436\u0435 \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043f\u043e\u0434 \u0441\u0435\u0431\u044f \u044e\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u043f\u043e\u0434 \u0432\u0430\u0448\u0435 \u0432\u0438\u0434\u0435\u043d\u0438\u0435, \u043f\u043e\u0434 \u043d\u0443\u0436\u043d\u0443\u044e \u0432\u0430\u043c \u0433\u043b\u0443\u0431\u0438\u043d\u0443 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0434 \u0432\u0430\u0448\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c &#8212; \u043f\u043e \u0434\u0435\u043d\u044c\u0433\u0430\u043c \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0410 \u0434\u0430\u043b\u044c\u0448\u0435 &#8212; \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043f\u0435\u0440\u0435\u0434 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0434 \u0432\u0430\u0448\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u0443\u0436\u0434\u044b. \u0414\u0440\u0443\u0433\u0438\u043c \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0431\u0435\u0437 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430, \u043e\u0442\u0434\u0430\u0442\u044c \u0435\u043c\u0443, \u043a\u0430\u043a \u043c\u0438\u0434\u043b\u0443, \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u043f\u043b\u044e\u0441 \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f &#8212; \u043e\u043d \u043b\u044f\u0436\u0435\u0442 \u043d\u0430 \u0432\u0430\u0441. \u041d\u043e \u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435 \u0447\u0443\u0442\u044c \u043f\u043e\u043f\u043e\u0437\u0436\u0435.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0431\u043e\u0442\u0443 \u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0443\u0442\u043e\u0447\u043d\u044f\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0435\u043a-\u043b\u0438\u0441\u0442\u044b \u0438 \u0442\u0435\u0441\u0442\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0418\u0418 &#8212; \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0436\u0443\u043d \u0434\u043b\u044f \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0443\u0442\u0438\u043d\u044b, \u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u0432\u0430\u0448 \u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0438 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a, \u043e\u0447\u0435\u043d\u044c \u0432\u043e\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u044b\u0439 \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0435\u043c\u0443 \u043b\u043e\u0433, \u043e\u0448\u0438\u0431\u043a\u0443, \u0437\u0430\u0434\u0430\u0447\u0443 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043b\u0438\u0431\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0438 \u0418\u0418 \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0433\u0443\u0433\u043b\u0438\u0442\u044c stackoverflow. \u041d\u043e \u043d\u0430\u0434\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b \u043d\u0430 \u043a\u0430\u043a\u0443\u044e-\u043b\u0438\u0431\u043e \u0434\u0430\u0442\u0443, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0438 \u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0442\u044c \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0434\u0435\u043b\u0438, \u043c\u0435\u0441\u044f\u0446\u044b, \u0430 \u0442\u043e \u0438 \u0433\u043e\u0434. \u0415\u0441\u043b\u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u043d\u0430 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043f\u043e\u0438\u0441\u043a\u0443. <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u044f \u043f\u0435\u0440\u0435\u0439\u0434\u0443 \u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. \u0418\u0442\u0430\u043a, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043b\u0438\u0447\u043d\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0418\u0418 \u0438 \u043a\u0430\u043a\u043e\u0439?<\/p>\n<h2>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/h2>\n<p>\u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e <a href=\"https:\/\/github.com\/features\/copilot\" rel=\"noopener noreferrer nofollow\">Copilot<\/a> \u043e\u0442 <a href=\"https:\/\/github.com\/\" rel=\"noopener noreferrer nofollow\">GitHub<\/a> \u0443\u0436\u0435 \u0442\u0440\u0435\u0442\u0438\u0439 \u043c\u0435\u0441\u044f\u0446. \u0422\u043e \u0435\u0441\u0442\u044c, \u043f\u043b\u0430\u0447\u0443 \u0437\u0430 \u043d\u0435\u0433\u043e $10 \u0432 \u043c\u0435\u0441\u044f\u0446. \u0421\u0442\u043e\u0438\u0442 \u043b\u0438 \u044d\u0442\u043e\u0433\u043e? \u0427\u0435\u0441\u0442\u043d\u043e \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f &#8212; \u0434\u0430. \u041c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c Copilot\u2019\u0443 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432, \u0434\u043e\u043a\u0441\u0442\u0440\u0438\u043d\u0433\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0443 \u043d\u0435\u0433\u043e \u044d\u0442\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u0447\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435, \u0442\u043e \u043e\u043d \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0439-\u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0432\u044b \u043e\u0442 \u043d\u0435\u0433\u043e \u0445\u043e\u0442\u0438\u0442\u0435 &#8212; \u0432 \u043a\u0430\u043a\u043e\u043c \u0441\u0442\u0438\u043b\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043e\u043a\u0441\u0442\u0440\u0438\u043d\u0433\u0438, \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043c\u0438, \u0438 \u0438\u0437 \u043a\u0430\u043a\u0438\u0445 (\u0441\u0430\u0431)\u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u041e\u0434\u043d\u0430 \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u043e\u043a\u0443\u043f\u0430\u0435\u0442 \u043c\u043e\u0451 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f \u0431\u044b \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043d\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u043a\u043e\u0434\u0443 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 &#8212; Copilot \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u0438\u0445 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043a\u043e\u0434\u0430<\/figcaption><\/div>\n<\/figure>\n<h2>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430<\/h2>\n<p>\u041d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c copilot\u2019a \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430 \u043b\u0438\u0448\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043a\u043e\u0434. \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e copilot &#8212; \u044d\u0442\u043e \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a IDE. \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043b\u0451\u0432\u044b\u0432\u0430\u0442\u044c \u0432\u0430\u043c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430. \u042d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043a\u0430\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442 copilot\u2019a, \u0442\u0430\u043a \u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 IDE. \u0427\u0442\u043e \u0436\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430 \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0433\u043e \u0438\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0430 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e \u0442\u0443\u0442 \u0432\u0441\u0451 \u043e\u0431\u0441\u0442\u043e\u0438\u0442 \u0445\u0443\u0436\u0435. \u0418\u0418 \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0435\u043b\u0435\u0442\u043d\u044b \u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043b\u0438\u0431\u043e \u0432\u0430\u0440\u044c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430, \u0442\u043e, \u0443\u0432\u044b, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0451 \u0441\u0430\u043c\u043e\u043c\u0443. \u0418 \u0442\u0443\u0442 \u0432\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441 &#8212; \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 copilot\u2019 \u0441\u043a\u043e\u0440\u0435\u0435 \u043c\u0435\u0448\u0430\u0435\u0442, \u0447\u0435\u043c \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 &#8212; \u043e\u043d \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0430\u043c \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c. \u041d\u043e \u0432\u043e\u0442 \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043d \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0436\u0435 \u043d\u0435\u043f\u043b\u043e\u0445 &#8212; \u0432\u044b\u0434\u0430\u0442\u044c \u0441\u0445\u043e\u0436\u0438\u0435, \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0443\u0442\u0438, \u0442\u0435\u0441\u0442\u044b \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0437\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 2-3 \u043a\u043b\u0430\u0432\u0438\u0448 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0435 &#8212; \u044d\u0442\u043e \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a. \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0443? \u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 1-2 \u0442\u0435\u0441\u0442\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0439\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u0430 \u0438 \u0432\u043e\u0442 \u0443\u0436\u0435 \u0443 \u0432\u0430\u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u044b \u043f\u0438\u0448\u0438\u0442\u0435 \u043a\u043e\u0434\u0430, \u0442\u0435\u043c \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u0435\u0435 \u043f\u0438\u0448\u0435\u0442 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0446\u0435\u043b\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041b\u0438\u0431\u043e \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438, \u043b\u0438\u0431\u043e \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0435\u0451 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f. \u0414\u0430\u0436\u0435 \u0431\u0435\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f.<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u201c\u0434\u0436\u0443\u043d\u043e\u043c\u201d-\u0438\u0438, \u0442\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 copilot\u2019\u043e\u043c, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u043f\u043e\u0432\u0435\u0441\u0442\u0438 \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0430, \u043d\u0443 \u0438 \u0438\u043c\u0435\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u0443\u044e <a href=\"https:\/\/www.selenium.dev\/documentation\/test_practices\/encouraged\/page_object_models\/\" rel=\"noopener noreferrer nofollow\">POM<\/a> (\u043d\u0443 \u0438\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u0447\u0430\u0441\u0442\u044c \u0435\u0451). \u0414\u0430, \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438, \u043d\u043e \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u0440\u0430\u0434\u0443\u0436\u043d\u043e, \u043a\u0430\u043a \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0435\u0451 \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>Copilot \u0443\u043c\u0435\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0447\u0443\u0436\u043e\u0439 \u043a\u043e\u0434. \u041d\u043e \u0438 \u0442\u043e, \u0438 \u0434\u0440\u0443\u0433\u043e\u0435 &#8212; \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u043e.<\/figcaption><\/div>\n<\/figure>\n<p>\u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0421opilot \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0447\u0443\u0436\u043e\u0439 \u043a\u043e\u0434, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 (\u0443\u0447\u0438\u0442\u0438\u0442\u0435, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e \u0438 \u0434\u0430\u0436\u0435 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e &#8212; \u043d\u043e, \u043e\u043f\u044f\u0442\u044c-\u0442\u0430\u043a\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0435\u0433\u043e \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c). \u0410 \u0442\u0430\u043a \u0436\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432\u0430\u0448\u0435\u0433\u043e \u041f\u041e, \u043f\u0440\u0438\u0447\u0451\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e, \u0441 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Mock-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82\" rel=\"noopener noreferrer nofollow\">\u043c\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c<\/a>. \u042d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u0435\u0442, \u043d\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0438 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e, \u043d\u0438 \u0441 \u043f\u044f\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043f\u044f\u0442\u044c \u0443 Copilot\u2019a, \u043a\u0430\u043a \u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. \u0422\u043e \u0435\u0441\u0442\u044c \u0433\u043b\u0443\u0431\u0438\u043d\u043e\u0439 \u0432\u0430\u0448\u0438\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432, \u043a\u043e\u0434\u0430, \u0438 \u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u043d\u044e\u0430\u043d\u0441\u043e\u0432. \u0422\u043e \u0435\u0441\u0442\u044c, \u043a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043c\u0430\u043d\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0418\u0418-\u0434\u0436\u0443\u043d\u043e\u043c, \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u043c\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u201c\u043f\u043e\u043a\u0440\u043e\u0439 \u043c\u043e\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e 100% \u0442\u0435\u0441\u0442\u0430\u043c\u0438\u201d. \u041d\u0435 \u043f\u043e\u043a\u0440\u043e\u0435\u0442. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0431\u0435\u0437 \u0432\u0430\u0448\u0435\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f.<\/p>\n<h2>\u0414\u0435\u043b\u0435\u0433\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 page object&#8217;\u043e\u0432 \u0438 \u0442\u0435\u0441\u0442\u043e\u0432<\/h2>\n<p>\u0412\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u044b \u0438\u043b\u0438 \u043d\u0435\u0442 Copilot, \u0418\u0418 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0443\u044e \u0440\u0443\u0442\u0438\u043d\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c, \u043a\u043e\u0433\u0434\u0430 \u044f \u043f\u0438\u0448\u0443 \u0442\u0435\u0441\u0442\u044b, \u044f \u043f\u0440\u043e\u0448\u0443 LLM \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u043d\u0435 \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u044b \u0438\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 PO-\u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u043e\u0435\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u0443. \u0422\u043e \u0435\u0441\u0442\u044c \u044f \u043f\u0435\u0440\u0435\u0434\u0430\u044e \u0418\u0418 \u0431\u043e\u0442\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u043f\u0440\u043e\u0448\u0443 \u0435\u0433\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f page object&#8217;\u044b. \u042d\u0442\u043e \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u043c\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0443\u0436\u043d\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442 \u0431\u043e\u0442, \u0431\u0443\u0434\u0443\u0442 \u0434\u0430\u043b\u0435\u043a\u0438 \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0445, \u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0442\u043e\u0447\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0438 \u043a\u0430\u043a \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u043a\u043e\u0440\u043e\u0442\u0438\u0442\u044c. \u0411\u043e\u0442 &#8212; \u0442\u043e\u0442 \u0436\u0435 \u0434\u0436\u0443\u043d, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0440\u0430\u0442\u044c \u0438 <a href=\"https:\/\/developer.chrome.com\/docs\/devtools\/\" rel=\"noopener noreferrer nofollow\">\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430<\/a> \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/XPath\" rel=\"noopener noreferrer nofollow\">XPATH<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0411\u0435\u0437 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0439 \u0418\u0418 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 &#171;\u0437\u0430\u0431\u043e\u0440\u044b&#187; \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u0442\u043e\u0440\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0443 \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e UI \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u0438 API &#8212; \u043d\u0438\u043a\u0442\u043e \u0432\u0430\u043c \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c <a href=\"https:\/\/www.json.org\/json-en.html\" rel=\"noopener noreferrer nofollow\">JSON<\/a> \u0444\u0430\u0439\u043b <a href=\"https:\/\/swagger.io\/\" rel=\"noopener noreferrer nofollow\">Swagger<\/a>\u2019a \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u044b\u0435 endpoint\u2019\u044b \u0438 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u043e\u0442\u0432\u0435\u0442\u044b \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a \u043d\u0438\u043c.<\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u043f\u0440\u044f\u043c\u043e \u043d\u0430\u043b\u0435\u0442\u0443. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 &#8212; \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0432\u0430\u0448\u0435\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u0422\u043e \u0435\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 URL, \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0432 POM-\u0432\u0438\u0434\u0435 &#8212; \u0438 \u0432\u043e\u0442 \u043e\u043d\u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0442\u0435\u0441\u0442\u044b. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0432\u0430\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u043b\u0435\u0442\u0443 \u0442\u0435\u0441\u0442\u044b, \u043d\u043e \u0432\u0436\u0438\u0432\u0443\u044e, \u201c\u043f\u043e\u0442\u044b\u043a\u0430\u0442\u044c\u201d \u0432\u0430\u0448 \u0441\u0430\u0439\u0442 \u0440\u043e\u0431\u043e\u0442\u043e\u043c. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u044e\u0449\u0435 \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b \u0441\u0438\u0434\u0438\u0442\u0435 \u0437\u0430 \u0441\u043f\u0438\u043d\u043e\u0439. \u0422\u043e\u043b\u044c\u043a\u043e \u0435\u0449\u0435 \u0442\u043e\u0433\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0437\u0430 \u0441\u043e\u0431\u043e\u0439 \u043a\u043e\u0434 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u043e\u0432. \u041d\u0443 \u044d\u0442\u043e \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0443\u0441\u0430\u0447\u0435\u043c \u043f\u043e \u0446\u0435\u043d\u0435 <a href=\"https:\/\/sider.ai\/\" rel=\"noopener noreferrer nofollow\">Sider.ai<\/a>.<\/p>\n<h2>\u0420\u0430\u0441\u0442\u0438\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0433\u043e Middle<\/h2>\n<p>\u0418 \u0442\u0443\u0442 \u043c\u044b \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u0430\u043c\u043e\u0439 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435 &#8212; \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0443 \u0418\u0418 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. \u0421\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a\u043e\u0439 \u0431\u044b \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043d\u0435 \u0431\u044b\u043b \u0431\u044b \u0418\u0418, \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u043a\u0443\u043a\u0438 \\ \u043b\u043e\u0433\u0438\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 SSO \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0445 \u0432\u043e\u0432\u043d\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0443 \u043d\u0435\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0441\u0432\u043e\u0439 \u0441\u0442\u0438\u043b\u044c \u0438 \u043a\u043e\u0434 &#8212; \u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 \u0438\u043b\u0438 \u0434\u043e\u043a\u0438, \u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0443\u043f\u0430\u043a\u0443\u0435\u0442\u0435 \u0432 embeddings. \u042d\u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 &#8212; \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0432\u0430\u0448\u0438 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0432\u0430\u0448 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0438 \u043e\u0431\u0432\u044f\u0437\u043a\u0438, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0418\u0418 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043d\u0435 \u0441\u0438\u0434\u0435\u0442\u044c \u0441 \u0418\u0418 \u043d\u0430\u0434 \u0434\u0443\u0448\u043e\u0439 \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c HTML\/JSON \u0435\u043c\u0443, \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442, \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u0430\u0448 \u043a\u043e\u0434, \u0438 \u0437\u0430\u0442\u0435\u043c \u0441\u0430\u043c\u043e\u043c\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c. \u0412\u043e\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b &#8212; \u043f\u0443\u0441\u0442\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c. \u041d\u0443 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u0436\u0443\u043d \u0431\u044b\u043b, \u0430 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0439 \u043c\u0438\u0434\u043b. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438?<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0412\u043c\u0435\u0441\u0442\u043e \u0434\u0436\u0443\u043d\u0430 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0438\u0434\u0435\u0442\u044c \u0438 \u043a\u0440\u0438\u0447\u0430\u0442\u044c \u043d\u0430 \u0418\u0418. \u0418 \u0434\u0430, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0442\u0443\u043f\u0438\u0442\u044c \u0438 \u0431\u0435\u0441\u0438\u0442\u044c \u043d\u0435 \u0445\u0443\u0436\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u0432.<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u0440\u0430\u0441\u0442\u0438\u0442\u044c \u0434\u0436\u0443\u043d\u0430 \u043d\u0430 \u0440\u0443\u0447\u043d\u043e\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u0435 \u0432 \u043f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0438\u0434\u043b\u0430 \u043b\u044f\u0436\u0435\u0442 \u043d\u0430 \u0432\u0430\u0441. \u041d\u043e \u044d\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c\u043e. \u0412\u043e\u043e\u0431\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0443 \u0418\u0418 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0435\u0441\u0442\u044c \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u043c\u0438\u0434\u043b\u0430. \u041b\u043e\u043a\u0430\u0442\u043e\u0440\u044b, page object\u2019\u044b \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435 &#8212; \u0442\u043e\u0436\u0435. \u041d\u0443\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c, \u0438 \u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u043e \u0442\u043e\u0439 \u0435\u0440\u0443\u043d\u0434\u0435, \u0447\u0442\u043e \u043e\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043b. \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0435\u043c\u0443 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u043b \u043a\u043e\u0434. \u0425\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u0441\u0442\u0438\u043b\u0438 &#8212; \u043e\u0442\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043b\u0438\u043d\u0442\u0435\u0440\u043e\u0432. \u041f\u0443\u0441\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 100% \u043f\u0430\u0441\u0441\u0440\u0435\u0439\u0442.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430, proof-of-concept, \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/pypi.org\/project\/openai-python-api\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0432\u043e\u044e \u043e\u0431\u0451\u0440\u0442\u043a\u0443 \u0434\u043b\u044f OpenAI<\/a>. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u0430\u0437\u0443\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u0418\u0418, \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/openai.com\/chatgpt\" rel=\"noopener noreferrer nofollow\">ChatGPT4<\/a>, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-358187","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/358187","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=358187"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/358187\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=358187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=358187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=358187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}