{"id":458092,"date":"2025-04-29T15:00:56","date_gmt":"2025-04-29T15:00:56","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=458092"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=458092","title":{"rendered":"<span>\u041f\u043e\u0447\u0435\u043c\u0443 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0438 \u043e\u0434\u0438\u043d \u0418\u0418 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u0430\u043c?<\/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<blockquote>\n<p><em>\u0410\u0432\u0442\u043e\u0440: A.Ankalaev<\/em><br \/><em>C\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0431\u043e\u043b\u0435\u0435 20 \u043b\u0435\u0442<\/em><\/p>\n<\/blockquote>\n<ul>\n<li>\n<p>\u0421\u0440\u0435\u0434\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0442\u0443\u0442 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435, \u0431\u044b\u0442\u0443\u0435\u0442 \u043c\u043d\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 (LLM) \u043d\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u00ab\u043f\u043e\u0434 \u043a\u043b\u044e\u0447\u00bb. \u0421\u0430\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0441 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044f\u043c\u0438 \u0441\u043e \u0432\u0440\u0435\u043c\u0451\u043d GPT, \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b \u0438\u0445 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0434\u043b\u044f:<\/p>\n<p>\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0435\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 (\u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435)<\/p>\n<\/li>\n<li>\n<p>\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u0430\u0440\u044c\u0435\u0440\u043d\u043e\u0433\u043e \u0440\u043e\u0441\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0435\u0440\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u043c \u0432 \u0441\u0435\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u0432 \u0438\u044e\u043d\u0435 2022 GitHub Copilot \u0438\u043c\u0435\u0435\u0442 1,3 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (\u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 \u0444\u0435\u0432\u0440\u0430\u043b\u044c 2024 \u0433\u043e\u0434\u0430, \u0431\u043e\u043b\u0435\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442).<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c DemandSage, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u043c 16 \u0430\u043f\u0440\u0435\u043b\u044f 2025 \u0433\u043e\u0434\u0430, \u0427\u0430\u0442GPT \u0434\u043e\u0441\u0442\u0438\u0433 800 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0435\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0447\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 CEO OpenAI \u0421\u044d\u043c\u0430 \u0410\u043b\u044c\u0442\u043c\u0430\u043d\u0430 \u043d\u0430 TED 2025<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u0442\u0430\u0442\u044c\u0435 Bloomberg, Cursor AI \u0438\u043c\u0435\u0435\u0442 \u043e\u043a\u043e\u043b\u043e <strong>1 <\/strong>\u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (\u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 \u0430\u043f\u0440\u0435\u043b\u044c 2025 \u0433\u043e\u0434\u0430).<\/p>\n<\/li>\n<\/ul>\n<p>\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043f\u0440\u043e\u0441 \u043d\u0430 \u0418\u0418, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c, \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d. \u041d\u043e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0443\u0441\u0442\u0440\u0430\u0448\u0430\u044e\u0449\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a\u043d\u0430\u00a0\u0434\u0435\u043b\u0435, \u0442\u0430\u043a \u0438 \u0432\u00a0\u043d\u0430\u0448\u0435\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0438, \u043d\u0438 \u043e\u0434\u0438\u043d \u0418\u0418\u2011\u0430\u0433\u0435\u043d\u0442, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438\u0433\u0440\u043e\u043a\u043e\u0432, \u043d\u0435\u00a0\u043f\u0438\u0448\u0435\u0442 \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 (15\u201330\u00a0\u0444\u0430\u0439\u043b\u043e\u0432) \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0441\u043a\u043e\u0440\u043c\u0438\u0442\u044c \u0435\u043c\u0443 \u0441\u0443\u043f\u0435\u0440\u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u00ab\u0422\u0417\u00bb \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (\u0430\u043b\u044f \u00ab\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u043e\u043b\u0438\u00bb) \u0432\u043e\u00a0\u0432\u0441\u044f\u043a\u0438\u0435 \u00abRules\u00bb \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b.<\/p>\n<blockquote>\n<p><strong>\u0427\u0442\u043e \u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434, \u0447\u0442\u043e\u0431 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0445\u043e\u0434<\/strong><\/p>\n<\/blockquote>\n<ul>\n<li>\n<p>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u043e\u043b\u0438 \u0432 Project Rules\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0426\u0435\u043b\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 Project Rules<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0435\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0432 User Rules<\/p>\n<\/li>\n<li>\n<p>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0440\u0435\u0442\u044b\u00a0 \u0432 User Rules<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 User Rules<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0432 Docs<\/p>\n<\/li>\n<li>\n<p>\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442 \u043d\u0430 47+ \u0442\u044b\u0441\u044f\u0447 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439, \u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442 \u043d\u0430 10 \u0442\u044b\u0441\u044f\u0447 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u043f\u0442\u0430 \u043f\u043e \u043c\u043e\u0435\u043c\u0443 \u0441\u043a\u0440\u043e\u043c\u043d\u043e\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e<\/summary>\n<div class=\"spoiler__content\">\n<p> # \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 AIWP-Processor (\u0427\u0430\u0441\u0442\u044c 1) ## 1. \u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f <strong>\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430:<\/strong> AIWP-Processor   <strong>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430:<\/strong> WordPress   <strong>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f:<\/strong> Google Gemini API   <strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:<\/strong> \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430   <strong>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f API:<\/strong> [Google Gemini API FAQ](..\/doc\/<a href=\"http:\/\/gemini-api-faq.md\" rel=\"noopener noreferrer nofollow\">gemini-api-faq.md<\/a>) ## 2. \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f ### 2.1. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b 1. <strong>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Google Gemini API:<\/strong>    &#8212; \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a REST API \u0441\u0435\u0440\u0432\u0438\u0441\u0430 Google Gemini.    &#8212; \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f API-\u043a\u043b\u044e\u0447\u0430.    &#8212; \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439.    &#8212; \u0412\u044b\u0431\u043e\u0440 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u043b\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e (<code>Text_Generator<\/code>, <code>Image_Generator<\/code>). <\/p>\n<ol start=\"2\">\n<li>\n<p><strong>\u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 WordPress:<\/strong> <\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u043f\u043e\u0441\u0442\u043e\u0432 <code>post_title<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u043e\u0432 <code>post_content<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 <code>featured_image<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441:<\/strong> <\/p>\n<ul>\n<li>\n<p>\u041c\u0435\u0442\u0430\u0431\u043e\u043a\u0441 \u0434\u043b\u044f \u0447\u0430\u0442-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 <code>metabox-chat.php<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 WordPress \u0438 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 Gutenberg.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043d\u0435\u043b\u044c \u0441 \u0432\u043a\u043b\u0430\u0434\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c <code>dashboard.php<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h4>2.2. \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 metabox-chat.php<\/h4>\n<h3>2.2.1. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/h3>\n<p><strong>1. \u0412\u0435\u0440\u0445\u043d\u044f\u044f \u043f\u0430\u043d\u0435\u043b\u044c \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-metabox-header\"&gt;     &lt;h3&gt;AI Content Generator&lt;\/h3&gt;     &lt;div class=\"aiwp-metabox-controls\"&gt;         &lt;button title=\"Clear chat history\" class=\"aiwp-clear-history\"&gt;             &lt;span class=\"dashicons dashicons-trash\"&gt;&lt;\/span&gt;         &lt;\/button&gt;         &lt;button title=\"Show help\" class=\"aiwp-help\"&gt;             &lt;span class=\"dashicons dashicons-editor-help\"&gt;&lt;\/span&gt;         &lt;\/button&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>2. \u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-generation-controls\"&gt;     &lt;div class=\"aiwp-options\"&gt;         &lt;label class=\"aiwp-checkbox\"&gt;             &lt;input name=\"generate_title\" id=\"generate_title\" type=\"checkbox\"&gt;             &lt;span&gt;Generate Title&lt;\/span&gt;         &lt;\/label&gt;         &lt;label class=\"aiwp-checkbox\"&gt;             &lt;input name=\"generate_content\" id=\"generate_content\" type=\"checkbox\"&gt;             &lt;span&gt;Generate Content&lt;\/span&gt;         &lt;\/label&gt;         &lt;label class=\"aiwp-checkbox\"&gt;             &lt;input name=\"generate_image\" id=\"generate_image\" type=\"checkbox\"&gt;             &lt;span&gt;Generate Featured Image&lt;\/span&gt;         &lt;\/label&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>3. \u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0447\u0430\u0442\u0430<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-chat-container\"&gt;     &lt;div id=\"aiwp_chat_messages\" class=\"aiwp-chat-messages\"&gt;              &lt;\/div&gt;     &lt;div class=\"aiwp-chat-input\"&gt;         &lt;textarea rows=\"3\" placeholder=\"Enter your prompt here...\" id=\"aiwp_prompt\"&gt;&lt;\/textarea&gt;         &lt;button class=\"button button-primary\" id=\"aiwp_send\"&gt;             &lt;span class=\"aiwp-button-text\"&gt;Send&lt;\/span&gt;             &lt;span class=\"aiwp-spinner\"&gt;&lt;\/span&gt;         &lt;\/button&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>4. \u041f\u0430\u043d\u0435\u043b\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-results-panel\"&gt;     &lt;div class=\"aiwp-preview\"&gt;              &lt;\/div&gt;     &lt;div class=\"aiwp-actions\"&gt;         &lt;button data-type=\"title\" class=\"button aiwp-apply\"&gt;             Apply Title         &lt;\/button&gt;         &lt;button data-type=\"content\" class=\"button aiwp-apply\"&gt;             Apply Content         &lt;\/button&gt;         &lt;button data-type=\"image\" class=\"button aiwp-apply\"&gt;             Apply Featured Image         &lt;\/button&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<h3>2.2.2. \u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432<\/h3>\n<p><strong>1. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438 \u043e\u0442\u0441\u0442\u0443\u043f\u044b<\/strong><\/p>\n<pre><code class=\"css\">.aiwp-metabox {     min-height: 400px;     max-height: 800px;     display: flex;     flex-direction: column; } .aiwp-chat-container {     flex: 1;     min-height: 300px;     display: flex;     flex-direction: column; } .aiwp-chat-messages {     flex: 1;     overflow-y: auto;     padding: 15px; } <\/code><\/pre>\n<p><strong>2. \u0421\u0442\u0438\u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0447\u0430\u0442\u0430<\/strong><\/p>\n<pre><code class=\"css\">.aiwp-message {     margin-bottom: 15px;     max-width: 85%; } .aiwp-message-user {     margin-left: auto;     background: #e9ecef;     border-radius: 15px 15px 0 15px; } .aiwp-message-ai {     margin-right: auto;     background: #f8f9fa;     border-radius: 15px 15px 15px 0; } <\/code><\/pre>\n<p><strong>3. \u0421\u0442\u0438\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/strong><\/p>\n<pre><code class=\"css\">.aiwp-generation-controls {     padding: 10px;     border-bottom: 1px solid #ddd; } .aiwp-checkbox {     display: inline-flex;     align-items: center;     margin-right: 15px; } .aiwp-actions {     display: flex;     gap: 10px;     padding: 10px;     border-top: 1px solid #ddd; } <\/code><\/pre>\n<h4>2.3. \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043d\u0435\u043b\u044c dashboard.php<\/h4>\n<h3>2.3.1. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438<\/h3>\n<p><strong>1. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/strong><\/p>\n<pre><code>&lt;div class=\"wrap aiwp-dashboard\"&gt;     &lt;h1&gt;AIWP Processor Dashboard&lt;\/h1&gt;          &lt;div class=\"aiwp-container\"&gt;         &lt;nav class=\"aiwp-tabs\"&gt;             &lt;a class=\"active\" href=\"#dashboard\"&gt;Dashboard&lt;\/a&gt;             &lt;a href=\"#google-api\"&gt;Google API&lt;\/a&gt;             &lt;a href=\"#settings\"&gt;Settings&lt;\/a&gt;             &lt;a href=\"#logs\"&gt;Logs&lt;\/a&gt;         &lt;\/nav&gt;                  &lt;div class=\"aiwp-tab-content\"&gt;                      &lt;\/div&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>2. \u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u043d\u0435\u043b\u0438<\/strong><\/p>\n<pre><code class=\"css\">.aiwp-dashboard {     max-width: 1200px;     margin: 20px auto; } .aiwp-container {     min-height: 700px;     background: #fff;     border: 1px solid #ccd0d4;     box-shadow: 0 1px 1px rgba(0,0,0,.04); } .aiwp-tab-content {     padding: 20px; } .aiwp-section {     padding: 10px;     margin-bottom: 20px; } <\/code><\/pre>\n<h3>2.3.2. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432\u043a\u043b\u0430\u0434\u043e\u043a<\/h3>\n<p><strong>1. Dashboard<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-tab-content\" id=\"dashboard\"&gt;     &lt;div class=\"aiwp-section aiwp-status\"&gt;         &lt;h2&gt;System Status&lt;\/h2&gt;         &lt;div class=\"aiwp-grid\"&gt;             &lt;div class=\"aiwp-status-item\"&gt;                 &lt;h4&gt;API Connection&lt;\/h4&gt;                 &lt;div class=\"aiwp-status-indicator\"&gt;&lt;\/div&gt;             &lt;\/div&gt;                      &lt;\/div&gt;     &lt;\/div&gt;          &lt;div class=\"aiwp-section aiwp-models\"&gt;         &lt;h2&gt;Available Models&lt;\/h2&gt;         &lt;table class=\"wp-list-table widefat\"&gt;                      &lt;\/table&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>2. Google API<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-tab-content\" id=\"google-api\"&gt;     &lt;div class=\"aiwp-section\"&gt;         &lt;h2&gt;API Configuration&lt;\/h2&gt;         &lt;form action=\"options.php\" method=\"post\"&gt;             &lt;table class=\"form-table\"&gt;                 &lt;tbody&gt;&lt;tr&gt;                     &lt;th&gt;API Key&lt;\/th&gt;                     &lt;td&gt;                         &lt;input value=\"&lt;?php echo esc_attr(get_option('aiwp_google_api_key')); ?&gt;\" class=\"regular-text\" name=\"aiwp_google_api_key\" type=\"password\"&gt;                     &lt;\/td&gt;                 &lt;\/tr&gt;                              &lt;\/tbody&gt;&lt;\/table&gt;                      &lt;\/form&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>3. Settings<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-tab-content\" id=\"settings\"&gt;     &lt;div class=\"aiwp-section\"&gt;         &lt;h2&gt;General Settings&lt;\/h2&gt;         &lt;form action=\"options.php\" method=\"post\"&gt;             &lt;table class=\"form-table\"&gt;                 &lt;tbody&gt;&lt;tr&gt;                     &lt;th&gt;Email Notifications&lt;\/th&gt;                     &lt;td&gt;                         &lt;label&gt;                             &lt;input value=\"1\" name=\"aiwp_email_notifications\" type=\"checkbox\"&gt;                             &amp;gt;                             Enable email notifications                         &lt;\/label&gt;                     &lt;\/td&gt;                 &lt;\/tr&gt;                              &lt;\/tbody&gt;&lt;\/table&gt;                      &lt;\/form&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>4. Logs<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-tab-content\" id=\"logs\"&gt;     &lt;div class=\"aiwp-section\"&gt;         &lt;div class=\"aiwp-logs-header\"&gt;             &lt;h2&gt;Operation Logs&lt;\/h2&gt;             &lt;div class=\"aiwp-logs-actions\"&gt;                 &lt;button id=\"clear_logs\" class=\"button\"&gt;Clear Logs&lt;\/button&gt;                 &lt;button id=\"export_logs\" class=\"button\"&gt;Export Logs&lt;\/button&gt;             &lt;\/div&gt;         &lt;\/div&gt;                  &lt;div class=\"aiwp-logs-table-container\"&gt;             &lt;table class=\"wp-list-table widefat fixed striped\"&gt;                 &lt;thead&gt;                     &lt;tr&gt;                         &lt;th&gt;Timestamp&lt;\/th&gt;                         &lt;th&gt;Level&lt;\/th&gt;                         &lt;th&gt;Message&lt;\/th&gt;                         &lt;th&gt;Context&lt;\/th&gt;                     &lt;\/tr&gt;                 &lt;\/thead&gt;                 &lt;tbody id=\"logs_content\"&gt;                                      &lt;\/tbody&gt;             &lt;\/table&gt;         &lt;\/div&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<h3>3. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f<\/h3>\n<h4>3.1. \u041b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043d\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u044c\u044e<\/h4>\n<ul>\n<li>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441: &#171;You are a content generator. Generate a post with the title: {title} and content: {content}&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Generate Title&#187;: \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Generate Content&#187;: \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Generate Featured Image&#187;: &#171;You are a content generator. Make image: {title}&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c<\/p>\n<\/li>\n<\/ul>\n<h4>3.1.1 \u0414\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438<\/h4>\n<p><strong>1. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 \u043c\u0435\u0442\u043e\u0434 <code>is_new_post()<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u043e\u0432\u0430\u044f<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 <code>Metabox_Chat<\/code> \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0442\u043e\u0434 <code>format_prompt()<\/code> \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442:<\/p>\n<pre><code class=\"php\">$context = [     'post_type' =&amp;gt; get_post_type($post_id),     'category' =&amp;gt; get_the_category($post_id),     'tags' =&amp;gt; get_the_tags($post_id),     'title' =&amp;gt; get_the_title($post_id),     'content' =&amp;gt; get_post_field('post_content', $post_id),     'featured_image' =&amp;gt; get_post_thumbnail_id($post_id) ]; <\/code><\/pre>\n<\/li>\n<\/ul>\n<p><strong>2. \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u0432\u0441\u0435\u0445 \u043e\u043f\u0446\u0438\u0439:<\/strong><\/p>\n<ol>\n<li>\n<p>JavaScript \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<pre><code class=\"javascript\">const requestData = {     prompt: userPrompt,     options: {         generateTitle: true,         generateContent: true,         generateImage: true     } }; <\/code><\/pre>\n<\/li>\n<li>\n<p>\u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435: <\/p>\n<ul>\n<li>\n<p>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 (\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 1)<\/p>\n<\/li>\n<li>\n<p>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 (\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 2)<\/p>\n<\/li>\n<li>\n<p>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\/\u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 (\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 3)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 <code>Google_API_Processor<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e:<\/p>\n<pre><code class=\"php\">\/\/ 1. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 $title = $api-&amp;gt;generate_text([     'prompt' =&amp;gt; \"You are a content generator. Generate a post with the title: {title}\",     'max_tokens' =&amp;gt; 50 ]); \/\/ 2. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 $content = $api-&amp;gt;generate_text([     'prompt' =&amp;gt; \"You are a content generator. Generate a post with the title: {title} and content: {content}\",     'max_tokens' =&amp;gt; 1000 ]); \/\/ 3. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f $image = $api-&amp;gt;generate_image([     'prompt' =&amp;gt; \"You are a content generator. Make image: {title}\",     'size' =&amp;gt; '1248x1024',     'responseModalities' =&amp;gt; [\"Text\", \"Image\"] ]); <\/code><\/pre>\n<\/li>\n<\/ol>\n<p><strong>3. \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438:<\/strong><\/p>\n<ol>\n<li>\n<p>\u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u2192 \u0421\u0435\u0440\u0432\u0435\u0440: <\/p>\n<ul>\n<li>\n<p><code>metabox-chat.js<\/code> \u2192 AJAX \u0437\u0430\u043f\u0440\u043e\u0441 \u2192 <code>wp_ajax_aiwp_chat_request<\/code><\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON \u0447\u0435\u0440\u0435\u0437 POST \u0437\u0430\u043f\u0440\u043e\u0441<\/p>\n<\/li>\n<li>\n<p>\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f nonce \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430: <\/p>\n<ul>\n<li>\n<p><code>Metabox_Chat-&amp;gt;handle_ajax_chat_request()<\/code> \u2192 <code>Google_API_Processor<\/code><\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0447\u0435\u0440\u0435\u0437 <code>WP_Session<\/code><\/p>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 <code>aiwp-logs.json<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0421\u0435\u0440\u0432\u0435\u0440 \u2192 \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c: <\/p>\n<ul>\n<li>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 JSON-\u043e\u0442\u0432\u0435\u0442 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438<\/p>\n<\/li>\n<li>\n<p>WebSocket \u0434\u043b\u044f real-time \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0430 \u0434\u043b\u044f \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 <strong>4. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432:<\/strong><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<ul>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 <code>Google_Response_Handler<\/code> \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u0442 \u0438 \u0432\u0430\u043b\u0438\u0434\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0432\u044c\u044e \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<h4>3.2. \u041b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u044c\u044e<\/h4>\n<ul>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 &#171;Generate Title&#187;: \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 &#171;You are a content generator. Rewrite the title: {title}&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 &#171;Generate Content&#187;: \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 &#171;You are a content generator. Rewrite the content: {content}&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Generate Featured Image&#187;: \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 &#171;You are a content generator. Make image: {title}&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u043f\u0446\u0438\u0439: \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439<\/p>\n<\/li>\n<\/ul>\n<h4>3.2.1 \u0414\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438<\/h4>\n<p><strong>1. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434 <code>format_prompt()<\/code> \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435:<\/p>\n<pre><code class=\"php\">$current_data = [     'title' =&amp;gt; get_the_title($post_id),     'content' =&amp;gt; get_post_field('post_content', $post_id),     'image' =&amp;gt; get_post_thumbnail_id($post_id) ]; <\/code><\/pre>\n<\/li>\n<\/ul>\n<p><strong>2. \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u0432\u0441\u0435\u0445 \u043e\u043f\u0446\u0438\u0439:<\/strong><\/p>\n<ol>\n<li>\n<p>\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430:<\/p>\n<pre><code class=\"php\">\/\/ \u0410\u043d\u0430\u043b\u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 $content_analysis = $api-&amp;gt;analyze_content([     'title' =&amp;gt; $current_data['title'],     'content' =&amp;gt; $current_data['content'],     'maintain_style' =&amp;gt; true ]); \/\/ \u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u0442\u0438\u043b\u044f $style_context = $content_analysis-&amp;gt;extract_style_patterns(); <\/code><\/pre>\n<\/li>\n<li>\n<p>\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432:<\/p>\n<pre><code class=\"php\">\/\/ \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 $promises = [     'title' =&amp;gt; $api-&amp;gt;async_generate_text($prompt, $style_context),     'content' =&amp;gt; $api-&amp;gt;async_generate_text($prompt, $style_context),     'image' =&amp;gt; $api-&amp;gt;async_generate_image($prompt, [         'responseModalities' =&amp;gt; [\"Text\", \"Image\"]     ]) ]; \/\/ \u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 $results = Promise\\all($promises)-&amp;gt;wait(); <\/code><\/pre>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u0442-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432: <\/p>\n<ul>\n<li>\n<p>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043e\u043c<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 <strong>3. \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438:<\/strong><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"php\">$prepared_data = [     'original' =&amp;gt; $current_data,     'generated' =&amp;gt; $results,     'diff' =&amp;gt; generate_content_diff($current_data, $results) ]; <\/code><\/pre>\n<\/li>\n<li>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439:<\/p>\n<pre><code class=\"php\">do_action('aiwp_before_content_update', $prepared_data); update_post_meta($post_id, '_aiwp_generation_history', $prepared_data); do_action('aiwp_after_content_update', $prepared_data); <\/code><\/pre>\n<\/li>\n<li>\n<p>\u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435: <\/p>\n<ul>\n<li>\n<p>\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 <strong>4. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432:<\/strong><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430-\u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"php\">\/\/ \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 $history = [     'timestamp' =&amp;gt; current_time('mysql'),     'user_id' =&amp;gt; get_current_user_id(),     'changes' =&amp;gt; $prepared_data['diff'] ]; add_post_meta($post_id, '_aiwp_revision', $history); <\/code><\/pre>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432: <\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432 \u0432\u0435\u0440\u0441\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043a\u0430\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432:<\/p>\n<pre><code class=\"php\">\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 $quality_check = [     'readability_score' =&amp;gt; calculate_readability($results['content']),     'seo_score' =&amp;gt; analyze_seo_metrics($results),     'similarity_score' =&amp;gt; compare_with_original($current_data, $results) ]; <\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>4. \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/h3>\n<ol>\n<li>\n<p><strong>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/strong> <\/p>\n<ul>\n<li>\n<p>\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0438 \u0441\u0430\u043d\u0438\u0442\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 API-\u043a\u043b\u044e\u0447\u0430<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 CSRF-\u0430\u0442\u0430\u043a<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/strong> <\/p>\n<ul>\n<li>\n<p>\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a API<\/p>\n<\/li>\n<li>\n<p>\u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0433\u0434\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 (CSS\/JS)<\/p>\n<\/li>\n<li>\n<p>\u0423\u0447\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438 \u043a\u0432\u043e\u0442 API Google Gemini<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 AIWP-Processor (\u0427\u0430\u0441\u0442\u044c 2)<\/h2>\n<h3>5. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/h3>\n<h4>5.1. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/h4>\n<pre><code>|   aiwp-processor.php |   uninstall.php    |            +---Backend |   +---Admin |   |       class-aiwp-admin.php |   |       class-aiwp-ajax-request.php |   |       class-aiwp-dashboard.php |   |        |   +---API |   |       class-google-processor.php |   |        |   +---Chat |   |       class-metabox-chat.php |   |        |   \\---Logger |           aiwp-logs.json |           class-aiwp-logger.php |            +---doc |       development.md |       gemini-api-faq.md |        \\---Frontend     \\---assets         +---CSS         |       dashboard.css         |       metabox.css         |                +---JS         |       dashboard.js         |       metabox-chat.js         |                \\---pages                 dashboard.php                 metabox-chat.php <\/code><\/pre>\n<pre><code>aiwp-processor.php                      # \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0430\u0439\u043b \u043f\u043b\u0430\u0433\u0438\u043d\u0430 <\/code><\/pre>\n<p><strong>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 aiwp-processor.php:<\/strong><\/p>\n<ul>\n<li>\n<p><code>aiwp_activate()<\/code> &#8212; \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><code>aiwp_deactivate()<\/code> &#8212; \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430, \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a<\/p>\n<\/li>\n<li>\n<p><code>aiwp_init()<\/code> &#8212; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 WordPress<\/p>\n<\/li>\n<li>\n<p><code>aiwp_register_assets()<\/code> &#8212; \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f CSS \u0438 JavaScript \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><code>aiwp_load_textdomain()<\/code> &#8212; \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p><code>aiwp_plugin_row_meta()<\/code> &#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/p>\n<\/li>\n<li>\n<p><code>aiwp_check_requirements()<\/code> &#8212; \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/p>\n<\/li>\n<li>\n<p><code>aiwp_admin_notices()<\/code> &#8212; \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p><code>aiwp_add_admin_menu()<\/code> &#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043c\u0435\u043d\u044e \u0432 \u0430\u0434\u043c\u0438\u043d-\u043f\u0430\u043d\u0435\u043b\u044c WordPress<\/p>\n<\/li>\n<\/ul>\n<pre><code>uninstall.php                           # \u0421\u043a\u0440\u0438\u043f\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430 <\/code><\/pre>\n<p><strong>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 uninstall.php:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043e\u043f\u0446\u0438\u0439 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<pre><code>Backend\/   Admin\/     class-aiwp-admin.php                # \u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u0430\u0434\u043c\u0438\u043d-\u043f\u0430\u043d\u0435\u043b\u044c\u044e WordPress <\/code><\/pre>\n<p><strong>\u041c\u0435\u0442\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0441\u0430 AIWP_Admin:<\/strong><\/p>\n<ul>\n<li>\n<p><code>__construct()<\/code> &#8212; \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>init()<\/code> &#8212; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>register_hooks()<\/code> &#8212; \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0445\u0443\u043a\u043e\u0432 WordPress<\/p>\n<\/li>\n<li>\n<p><code>add_admin_menu()<\/code> &#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044e<\/p>\n<\/li>\n<li>\n<p><code>register_settings()<\/code> &#8212; \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/p>\n<\/li>\n<li>\n<p><code>admin_enqueue_scripts()<\/code> &#8212; \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0438 \u0441\u0442\u0438\u043b\u0435\u0439 \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d-\u043f\u0430\u043d\u0435\u043b\u0438<\/p>\n<\/li>\n<li>\n<p><code>display_admin_page()<\/code> &#8212; \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/p>\n<\/li>\n<li>\n<p><code>add_metaboxes()<\/code> &#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438 Gutenberg<\/p>\n<\/li>\n<li>\n<p><code>add_metabox_classic()<\/code> &#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440<\/p>\n<\/li>\n<li>\n<p><code>add_metabox_gutenberg()<\/code> &#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 Gutenberg<\/p>\n<\/li>\n<li>\n<p><code>save_metabox_data()<\/code> &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>get_plugin_option($option_name)<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0446\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/p>\n<\/li>\n<li>\n<p><code>update_plugin_option($option_name, $value)<\/code> &#8212; \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u043f\u0446\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/p>\n<\/li>\n<li>\n<p><code>delete_plugin_option($option_name)<\/code> &#8212; \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u043f\u0446\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code>    class-aiwp-dashboard.php            # \u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043f\u043b\u0430\u0433\u0438\u043d\u0430 <\/code><\/pre>\n<p><strong>\u041c\u0435\u0442\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0441\u0430 AIWP_Dashboard:<\/strong><\/p>\n<ul>\n<li>\n<p><code>__construct()<\/code> &#8212; \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>init()<\/code> &#8212; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>register_hooks()<\/code> &#8212; \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0445\u0443\u043a\u043e\u0432 WordPress<\/p>\n<\/li>\n<li>\n<p><code>render_dashboard_page()<\/code> &#8212; \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430<\/p>\n<\/li>\n<li>\n<p><code>render_tab_dashboard()<\/code> &#8212; \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 Dashboard<\/p>\n<\/li>\n<li>\n<p><code>render_tab_google_api()<\/code> &#8212; \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 Google API<\/p>\n<\/li>\n<li>\n<p><code>render_tab_settings()<\/code> &#8212; \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 Settings<\/p>\n<\/li>\n<li>\n<p><code>render_tab_logs()<\/code> &#8212; \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 Logs<\/p>\n<\/li>\n<li>\n<p><code>handle_api_key_update()<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f API \u043a\u043b\u044e\u0447\u0430<\/p>\n<\/li>\n<li>\n<p><code>handle_model_selection()<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u044b\u0431\u043e\u0440\u0430 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 AI<\/p>\n<\/li>\n<li>\n<p><code>handle_settings_update()<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u0449\u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a<\/p>\n<\/li>\n<li>\n<p><code>handle_logs_settings()<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>get_available_models()<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439<\/p>\n<\/li>\n<li>\n<p><code>test_api_connection()<\/code> &#8212; \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 API<\/p>\n<\/li>\n<li>\n<p><code>clear_logs()<\/code> &#8212; \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u043b\u043e\u0433\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><code>export_logs()<\/code> &#8212; \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u043b\u043e\u0433\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><code>process_bulk_actions()<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439<\/p>\n<\/li>\n<\/ul>\n<pre><code>  Backend\/API\/     class-google-processor.php            # \u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Google Gemini API <\/code><\/pre>\n<p><strong>\u041c\u0435\u0442\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0441\u0430 Google_API_Processor:<\/strong><\/p>\n<ul>\n<li>\n<p><code>__construct()<\/code> &#8212; \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>init()<\/code> &#8212; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438<\/p>\n<\/li>\n<li>\n<p><code>set_api_key($api_key)<\/code> &#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 API \u043a\u043b\u044e\u0447\u0430<\/p>\n<\/li>\n<li>\n<p><code>get_api_key()<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 API \u043a\u043b\u044e\u0447\u0430<\/p>\n<\/li>\n<li>\n<p><code>validate_api_key()<\/code> &#8212; \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f API \u043a\u043b\u044e\u0447\u0430<\/p>\n<\/li>\n<li>\n<p><code>get_available_models()<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439<\/p>\n<\/li>\n<li>\n<p><code>get_model_details($model_id)<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043c\u043e\u0434\u0435\u043b\u0438<\/p>\n<\/li>\n<li>\n<p><code>set_text_model($model_id)<\/code> &#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430<\/p>\n<\/li>\n<li>\n<p><code>set_image_model($model_id)<\/code> &#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p><code>get_text_model()<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438<\/p>\n<\/li>\n<li>\n<p><code>get_image_model()<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p><code>format_prompt($context, $prompt, $is_new_post = false)<\/code> &#8212; \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>generate_text($prompt, $options = [])<\/code> &#8212; \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430 \u043f\u043e \u043f\u0440\u043e\u043c\u043f\u0442\u0443<\/p>\n<\/li>\n<li>\n<p><code>generate_image($prompt, $options = [])<\/code> &#8212; \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u043f\u0440\u043e\u043c\u043f\u0442\u0443<\/p>\n<\/li>\n<li>\n<p><code>async_generate_text($prompt, $options = [])<\/code> &#8212; \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>async_generate_image($prompt, $options = [])<\/code> &#8212; \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>analyze_content($data)<\/code> &#8212; \u0430\u043d\u0430\u043b\u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>rewrite_title($current_title, $prompt)<\/code> &#8212; \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430<\/p>\n<\/li>\n<li>\n<p><code>rewrite_content($current_content, $prompt)<\/code> &#8212; \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>check_rate_limits()<\/code> &#8212; \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438 \u043a\u0432\u043e\u0442 API<\/p>\n<\/li>\n<li>\n<p><code>log_request($request_data)<\/code> &#8212; \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a API<\/p>\n<\/li>\n<li>\n<p><code>log_response($response_data)<\/code> &#8212; \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043e\u0442 API<\/p>\n<\/li>\n<li>\n<p><code>handle_api_response($response)<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 API<\/p>\n<\/li>\n<li>\n<p><code>handle_error($error_code, $error_message)<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a API<\/p>\n<\/li>\n<li>\n<p><code>save_api_response($response_data)<\/code> &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 API \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<pre><code>  Backend\/Chat\/     class-metabox-chat.php              # \u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 <\/code><\/pre>\n<p><strong>\u041c\u0435\u0442\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0441\u0430 Metabox_Chat:<\/strong><\/p>\n<ul>\n<li>\n<p><code>__construct()<\/code> &#8212; \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>init()<\/code> &#8212; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>register_hooks()<\/code> &#8212; \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0445\u0443\u043a\u043e\u0432 WordPress<\/p>\n<\/li>\n<li>\n<p><code>enqueue_assets()<\/code> &#8212; \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0438 \u0441\u0442\u0438\u043b\u0435\u0439<\/p>\n<\/li>\n<li>\n<p><code>add_metabox()<\/code> &#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440<\/p>\n<\/li>\n<li>\n<p><code>render_metabox($post)<\/code> &#8212; \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>save_metabox_data($post_id)<\/code> &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>generate_chat_interface()<\/code> &#8212; \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0447\u0430\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>handle_ajax_chat_request()<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 AJAX-\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438\u0437 \u0447\u0430\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>format_prompt($post, $user_prompt, $options)<\/code> &#8212; \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043c\u043f\u0442\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0446\u0438\u0439<\/p>\n<\/li>\n<li>\n<p><code>process_api_response($response, $options)<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 API<\/p>\n<\/li>\n<li>\n<p><code>is_new_post($post_id)<\/code> &#8212; \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u043d\u043e\u0432\u0430\u044f \u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u044c<\/p>\n<\/li>\n<li>\n<p><code>apply_generated_title($post_id, $title)<\/code> &#8212; \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430<\/p>\n<\/li>\n<li>\n<p><code>apply_generated_content($post_id, $content)<\/code> &#8212; \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e<\/p>\n<\/li>\n<li>\n<p><code>apply_generated_image($post_id, $image_data)<\/code> &#8212; \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>save_chat_history($post_id, $chat_data)<\/code> &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0447\u0430\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>get_chat_history($post_id)<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0447\u0430\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>clear_chat_history($post_id)<\/code> &#8212; \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0447\u0430\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>get_generation_context_from_title($post_id)<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p><code>get_generation_context($post_id)<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p><code>handle_image_upload()<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>validate_request($post_id, $nonce)<\/code> &#8212; \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code>  Backend\/API\/     class-google-response-handler.php         # \u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043e\u0442 API <\/code><\/pre>\n<p><strong>\u041c\u0435\u0442\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0441\u0430 Google_Response_Handler:<\/strong><\/p>\n<ul>\n<li>\n<p><code>__construct()<\/code> &#8212; \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>init()<\/code> &#8212; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>process_text_response($response)<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>process_image_response($response)<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/li>\n<li>\n<p><code>extract_title_from_response($response)<\/code> &#8212; \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0438\u0437 \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>extract_content_from_response($response)<\/code> &#8212; \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0438\u0437 \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>extract_image_from_response($response)<\/code> &#8212; \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u0437 \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>validate_response($response)<\/code> &#8212; \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>format_response_for_client($response)<\/code> &#8212; \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>handle_error_response($error)<\/code> &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>save_temporary_title($title)<\/code> &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430<\/p>\n<\/li>\n<li>\n<p><code>save_temporary_content($content)<\/code> &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e<\/p>\n<\/li>\n<li>\n<p><code>save_temporary_image($image_data)<\/code> &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>cleanup_temporary_data()<\/code> &#8212; \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<\/ul>\n<pre><code>  Backend\/Logger\/     class-aiwp-logger.php               # \u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 <\/code><\/pre>\n<p><strong>\u041c\u0435\u0442\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0441\u0430 AIWP_Logger:<\/strong><\/p>\n<ul>\n<li>\n<p><code>__construct()<\/code> &#8212; \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>init()<\/code> &#8212; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><code>set_log_file($log_file)<\/code> &#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>log($message, $level = 'info', $context = [])<\/code> &#8212; \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>log_info($message, $context = [])<\/code> &#8212; \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p><code>log_warning($message, $context = [])<\/code> &#8212; \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p><code>log_error($message, $context = [])<\/code> &#8212; \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a<\/p>\n<\/li>\n<li>\n<p><code>log_api_request($endpoint, $params)<\/code> &#8212; \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 API \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><code>log_api_response($endpoint, $response)<\/code> &#8212; \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 API<\/p>\n<\/li>\n<li>\n<p><code>get_logs($limit = 100, $level = null)<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><code>get_log_by_id($log_id)<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u043b\u043e\u0433\u0430 \u043f\u043e ID<\/p>\n<\/li>\n<li>\n<p><code>clear_logs()<\/code> &#8212; \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0432\u0441\u0435\u0445 \u043b\u043e\u0433\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><code>rotate_logs()<\/code> &#8212; \u0440\u043e\u0442\u0430\u0446\u0438\u044f \u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u0430<\/p>\n<\/li>\n<li>\n<p><code>is_logging_enabled()<\/code> &#8212; \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043b\u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p><code>set_log_level($level)<\/code> &#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>get_log_level()<\/code> &#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>format_log_entry($message, $level, $context)<\/code> &#8212; \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code>    aiwp-logs.json                      # \u0424\u0430\u0439\u043b \u043b\u043e\u0433\u043e\u0432 <\/code><\/pre>\n<p><strong>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 \u043b\u043e\u0433\u043e\u0432:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0425\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442: <\/p>\n<ul>\n<li>\n<p>ID \u043b\u043e\u0433\u0430<\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043c\u0435\u0442\u043a\u0430<\/p>\n<\/li>\n<li>\n<p>\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (info, warning, error)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 (\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435)<\/p>\n<\/li>\n<li>\n<p>IP-\u0430\u0434\u0440\u0435\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre><code>Frontend\/assets\/   CSS\/     dashboard.css                       # \u0421\u0442\u0438\u043b\u0438 \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a     metabox.css                         # \u0421\u0442\u0438\u043b\u0438 \u0434\u043b\u044f \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 <\/code><\/pre>\n<h2>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 AIWP-Processor (\u0427\u0430\u0441\u0442\u044c 3)<\/h2>\n<h3>6. \u0416\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/h3>\n<h4>6.1. \u042d\u0442\u0430\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/h4>\n<ol>\n<li>\n<p><strong>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/strong> <\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043f\u0440\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 WordPress<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 (Admin, API, Chat, Logger)<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0445\u0443\u043a\u043e\u0432 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 WordPress<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/strong> <\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 AJAX<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a AI<\/strong> <\/p>\n<ul>\n<li>\n<p>\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a Google Gemini API<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438<\/strong> <\/p>\n<ul>\n<li>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043a \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u043c\u0435\u0434\u0438\u0430-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 WordPress<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>7. \u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432<\/h3>\n<h4>7.1. \u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/h4>\n<ol>\n<li>\n<p><strong>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c<\/strong> \u2192 <strong>\u041c\u0435\u0442\u0430\u0431\u043e\u043a\u0441 \u0447\u0430\u0442\u0430<\/strong><\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0432\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u043c\u043f\u0442 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043e\u043f\u0446\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041c\u0435\u0442\u0430\u0431\u043e\u043a\u0441 \u0447\u0430\u0442\u0430<\/strong> \u2192 <strong>AJAX Request<\/strong> \u2192 <strong>Backend<\/strong><\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0441 \u043f\u0440\u043e\u043c\u043f\u0442\u043e\u043c \u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u043e\u043f\u0446\u0438\u044f\u043c\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Backend<\/strong> \u2192 <strong>Google API Processor<\/strong><\/p>\n<ul>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a Google Gemini API<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Google API Processor<\/strong> \u2192 <strong>Google Gemini API<\/strong><\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 API<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Google Gemini API<\/strong> \u2192 <strong>Google API Processor<\/strong><\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e API<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Google API Processor<\/strong> \u2192 <strong>Backend<\/strong><\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Backend<\/strong> \u2192 <strong>Logger<\/strong><\/p>\n<ul>\n<li>\n<p>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Backend<\/strong> \u2192 <strong>AJAX Response<\/strong> \u2192 <strong>\u041c\u0435\u0442\u0430\u0431\u043e\u043a\u0441 \u0447\u0430\u0442\u0430<\/strong><\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0443<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041c\u0435\u0442\u0430\u0431\u043e\u043a\u0441 \u0447\u0430\u0442\u0430<\/strong> \u2192 <strong>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c<\/strong><\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0447\u0430\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c<\/strong> \u2192 <strong>\u041c\u0435\u0442\u0430\u0431\u043e\u043a\u0441 \u0447\u0430\u0442\u0430<\/strong> \u2192 <strong>WordPress<\/strong><\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043a \u0437\u0430\u043f\u0438\u0441\u0438 (\u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>8. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/h3>\n<h4>8.1. \u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0434\u0430\u0447<\/h4>\n<ol>\n<li>\n<p>\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 WordPress (\u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441, \u0430\u0434\u043c\u0438\u043d-\u043f\u0430\u043d\u0435\u043b\u044c)<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a Google Gemini API<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<\/ol>\n<h4>8.2. \u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438<\/h4>\n<pre><code>+-------------------+       +-------------------+       +-------------------+ |                   |       |                   |       |                   | |  WordPress Admin  +------&amp;gt;+  AIWP_Admin       +------&amp;gt;+  Metabox_Chat     | |                   |       |                   |       |                   | +-------------------+       +---------+---------+       +---------+---------+                                       |                           |                                       |                           |                                       v                           v                             +---------+---------+       +---------+---------+                             |                   |       |                   |                             |  AIWP_Dashboard   |       |  Google_API       |                             |                   |       |  _Processor       |                             +---------+---------+       +---------+---------+                                       |                           |                                       |                           |                                       v                           v                             +---------+---------+       +---------+---------+                             |                   |       |                   |                             |  AIWP_Logger      +&amp;lt;------+  Response_Handler |                             |                   |       |                   |                             +-------------------+       +-------------------+ <\/code><\/pre>\n<h3>9. \u0414\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b<\/h3>\n<h4>9.1. \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/h4>\n<ul>\n<li>\n<p>\u041f\u0440\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 WordPress \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b <code>aiwp-processor.php<\/code><\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>aiwp_activate()<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f: <\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u043e\u0432 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 WordPress<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0444\u0430\u0439\u043b \u043b\u043e\u0433\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 WordPress \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>aiwp_init()<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f: <\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432: <code>AIWP_Logger<\/code>, <code>Google_API_Processor<\/code> \u0438 <code>AIWP_Admin<\/code><\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0445\u0443\u043a\u0438 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u044b WordPress<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0438 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c API-\u043a\u043b\u044e\u0447\u0430 Google Gemini<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 <code>AIWP_Admin<\/code> \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441: <\/p>\n<ul>\n<li>\n<p>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043f\u0443\u043d\u043a\u0442\u044b \u043c\u0435\u043d\u044e \u0432 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 WordPress<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 JavaScript \u0438 CSS \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043f\u043e\u0441\u0442\u043e\u0432 (\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438 Gutenberg)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>9.2. \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/h4>\n<ul>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 <code>AIWP_Admin<\/code> \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0442\u043e\u0434 <code>add_metaboxes()<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0438\u043f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430: <\/p>\n<ul>\n<li>\n<p>\u0414\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>add_metabox_classic()<\/code><\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 Gutenberg \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>add_metabox_gutenberg()<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u0430\u0431\u043e\u043a\u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0442\u0438\u043f\u043e\u0432 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c AI-\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e: <\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0441\u0442\u044b (post)<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u044b (page)<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0435 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d <code>metabox-chat.php<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439: <\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0447\u0430\u0442-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441 \u043f\u043e\u043b\u0435\u043c \u0432\u0432\u043e\u0434\u0430 \u043f\u0440\u043e\u043c\u043f\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0447\u0435\u043a\u0431\u043e\u043a\u0441\u044b \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0442\u0438\u043f\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0447\u0430\u0442\u0430 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 <code>metabox-chat.js<\/code> \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/p>\n<\/li>\n<\/ul>\n<h4>9.3. \u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u043e\u043c<\/h4>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0438\u0434\u0438\u0442 \u0447\u0430\u0442-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432 \u0431\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043b\u0438 \u043f\u043e\u0434 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442: <\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 (textarea) \u0434\u043b\u044f \u043f\u0440\u043e\u043c\u043f\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0427\u0435\u043a\u0431\u043e\u043a\u0441\u044b \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0442\u0438\u043f\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438: <\/p>\n<ul>\n<li>\n<p>&#171;Generate Title&#187; &#8212; \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a<\/p>\n<\/li>\n<li>\n<p>&#171;Generate Content&#187; &#8212; \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435<\/p>\n<\/li>\n<li>\n<p>&#171;Generate Featured Image&#187; &#8212; \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435-\u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u0443<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041a\u043d\u043e\u043f\u043a\u0443 &#171;Send&#187; \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0447\u0430\u0442\u0430 (\u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u0443\u0441\u0442\u0430\u044f)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 <code>Metabox_Chat<\/code> \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0447\u0430\u0442\u0430 \u0438\u0437 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0430, \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434 <code>is_new_post()<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043f\u043e\u0441\u0442 \u043d\u043e\u0432\u044b\u043c \u0438\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c, \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/p>\n<\/li>\n<\/ul>\n<h4>9.4. \u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/h4>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0432\u043e\u0434\u0438\u0442 \u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 &#171;Send&#187; \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>handlePromptSubmission()<\/code> \u0438\u0437 <code>metabox-chat.js<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f: <\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u044b<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0447\u0430\u0442-\u0438\u0441\u0442\u043e\u0440\u0438\u044e<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 (\u0441\u043f\u0438\u043d\u043d\u0435\u0440)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430: <\/p>\n<ul>\n<li>\n<p>\u0422\u0435\u043a\u0441\u0442 \u043f\u0440\u043e\u043c\u043f\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 (title, content, image)<\/p>\n<\/li>\n<li>\n<p>ID \u0438 \u0442\u0438\u043f \u043f\u043e\u0441\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>Nonce \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 AJAX-\u0437\u0430\u043f\u0440\u043e\u0441 \u043a WordPress \u0447\u0435\u0440\u0435\u0437 <code>wp_ajax_aiwp_process_chat_request<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c <code>handle_ajax_chat_request()<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>Metabox_Chat<\/code><\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442: <\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (nonce)<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0441\u0442 \u0438\u043b\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435)<\/p>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0447\u0435\u0440\u0435\u0437 \u043a\u043b\u0430\u0441\u0441 <code>AIWP_Logger<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>9.5. \u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u043f\u0442\u0430<\/h4>\n<ul>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434 <code>format_prompt()<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>Metabox_Chat<\/code> \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f: <\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u0442 \u043d\u043e\u0432\u044b\u0439: <\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Title&#187; \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u043f\u0440\u043e\u043c\u043f\u0442\u0443: &#171;You are a content generator. Generate a post with the title:&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Content&#187; \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442: &#171;Generate post content about:&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u0431\u0435\u0438\u0445 \u043e\u043f\u0446\u0438\u0439 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439: <\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Title&#187; \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u043f\u0440\u043e\u043c\u043f\u0442\u0443: &#171;You are a content generator. Rewrite the title: {current_title}&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Content&#187; \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442: &#171;Rewrite the content: {current_content}&#187;<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Featured Image&#187;: <\/p>\n<ul>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u043f\u0440\u043e\u043c\u043f\u0442\u0443: &#171;You are a content generator. Make image: {title_or_prompt}&#187;<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043f\u043e\u0441\u0442\u0430 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438: <\/p>\n<ul>\n<li>\n<p>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0438 \u0442\u0435\u0433\u0438 \u043f\u043e\u0441\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0422\u0438\u043f \u043f\u043e\u0441\u0442\u0430 \u0438 \u0441\u0442\u0430\u0442\u0443\u0441<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 (\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>9.6. \u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 Google Gemini API<\/h4>\n<ul>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434 <code>handle_ajax_chat_request()<\/code> \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 <code>Google_API_Processor<\/code><\/p>\n<\/li>\n<li>\n<p>\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0446\u0438\u0439 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b: <\/p>\n<ul>\n<li>\n<p>\u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u0435\u043a\u0441\u0442\u0430 (\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438\/\u0438\u043b\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435): <\/p>\n<ul>\n<li>\n<p><code>generate_text()<\/code> &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b (\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0438 \u0442.\u0434.)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f: <\/p>\n<ul>\n<li>\n<p><code>generate_image()<\/code> &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043f\u0440\u043e\u043c\u043f\u0442 \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b (\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0441\u0442\u0438\u043b\u044c)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441 <code>Google_API_Processor<\/code> \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a Google Gemini API: <\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0441 API-\u043a\u043b\u044e\u0447\u043e\u043c<\/p>\n<\/li>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0442\u0435\u043b\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0447\u0435\u0440\u0435\u0437 WordPress HTTP API (wp_remote_post)<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442 \u043e\u0442\u0432\u0435\u0442<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u044b \u043b\u043e\u0433\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0442\u043e\u0434\u044b <code>log_request()<\/code> \u0438 <code>log_response()<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>AIWP_Logger<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>9.7. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432<\/h4>\n<ul>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434 <code>process_api_response()<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>Metabox_Chat<\/code> \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043e\u0442 API \u0434\u0430\u043d\u043d\u044b\u0435: <\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u0435\u043a\u0441\u0442\u0430: <\/p>\n<ul>\n<li>\n<p>\u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0438\u0437 \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u0442 HTML-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e (\u0430\u0431\u0437\u0430\u0446\u044b, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438)<\/p>\n<\/li>\n<li>\n<p>\u0421\u0430\u043d\u0438\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0442\u0435\u043a\u0441\u0442 \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f: <\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u0443 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043c\u0435\u0434\u0438\u0430-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 WordPress<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 JSON-\u043e\u0442\u0432\u0435\u0442, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439: <\/p>\n<ul>\n<li>\n<p>\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 (\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0442\u0435\u043a\u0441\u0442, URL \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f)<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u0442\u0443\u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (\u0443\u0441\u043f\u0435\u0445 \u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430)<\/p>\n<\/li>\n<li>\n<p>\u0422\u0438\u043f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 <code>AIWP_Logger<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c AJAX WordPress<\/p>\n<\/li>\n<\/ul>\n<h4>9.8. \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e<\/h4>\n<ul>\n<li>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 <code>metabox-chat.js<\/code> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>handleResponseActions()<\/code>: <\/p>\n<ul>\n<li>\n<p>\u0421\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 AI \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0447\u0430\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u0430: \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 HTML-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f: \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u043f\u0430\u043d\u0435\u043b\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438: <\/p>\n<ul>\n<li>\n<p>&#171;Apply Title&#187; &#8212; \u0435\u0441\u043b\u0438 \u0431\u044b\u043b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a<\/p>\n<\/li>\n<li>\n<p>&#171;Apply Content&#187; &#8212; \u0435\u0441\u043b\u0438 \u0431\u044b\u043b\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435<\/p>\n<\/li>\n<li>\n<p>&#171;Apply Featured Image&#187; &#8212; \u0435\u0441\u043b\u0438 \u0431\u044b\u043b\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>updateChatHistory()<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0447\u0430\u0442-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u0442 \u0435\u0433\u043e \u0432\u043d\u0438\u0437<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0447\u0430\u0442\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 AJAX-\u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043c\u0435\u0442\u043e\u0434\u0443 <code>save_chat_history()<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>9.9. \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a \u0437\u0430\u043f\u0438\u0441\u0438<\/h4>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0436\u0430\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043a\u043d\u043e\u043f\u043a\u0443<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 &#171;Apply Title&#187;: <\/p>\n<ul>\n<li>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>applyTitleToPost()<\/code> \u0432 <code>metabox-chat.js<\/code><\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f AJAX-\u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043c\u0435\u0442\u043e\u0434\u0443 <code>apply_generated_title()<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>Metabox_Chat<\/code><\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043f\u043e\u0441\u0442\u0430 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 &#171;Apply Content&#187;: <\/p>\n<ul>\n<li>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>applyContentToPost()<\/code> \u0432 <code>metabox-chat.js<\/code><\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f AJAX-\u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043c\u0435\u0442\u043e\u0434\u0443 <code>apply_generated_content()<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>Metabox_Chat<\/code><\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043f\u043e\u0441\u0442\u0430 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0438\u043f\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430: <\/p>\n<ul>\n<li>\n<p>\u0414\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430: \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u043b\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f Gutenberg: \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 API \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 &#171;Apply Featured Image&#187;: <\/p>\n<ul>\n<li>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>applyFeaturedImageToPost()<\/code> \u0432 <code>metabox-chat.js<\/code><\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f AJAX-\u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043c\u0435\u0442\u043e\u0434\u0443 <code>apply_generated_image()<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <code>Metabox_Chat<\/code><\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u043e\u0434: <\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u043c\u0435\u0434\u0438\u0430-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 WordPress<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u0443 \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u044b<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<h4>9.10. \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h4>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043b\u043e\u0433\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <code>aiwp-logs.json<\/code> \u0447\u0435\u0440\u0435\u0437 \u043a\u043b\u0430\u0441\u0441 <code>AIWP_Logger<\/code><\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0441\u0435\u0430\u043d\u0441\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u0442\u0435<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 Dashboard: <\/p>\n<ul>\n<li>\n<p>\u0421\u0447\u0435\u0442\u0447\u0438\u043a \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u0421\u0447\u0435\u0442\u0447\u0438\u043a \u043e\u0448\u0438\u0431\u043e\u043a<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u043a\u0435\u043d\u044b\/\u043a\u0440\u0435\u0434\u0438\u0442\u044b API<\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044f \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442, \u0438\u043b\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0447\u0430\u0442\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0430\u043d\u0441\u0430\u043c\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/li>\n<\/ul>\n<h3>10. \u0426\u0435\u043f\u043e\u0447\u043a\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432<\/h3>\n<h4>10.1. \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/h4>\n<ol>\n<li>\n<p><strong>\u041d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 &#171;Send&#187;<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">\/\/ metabox-chat.js document.getElementById('aiwp_send').addEventListener('click', function(e) {     e.preventDefault();     handlePromptSubmission(); }); <\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p><strong>\u0421\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">\/\/ metabox-chat.js function handlePromptSubmission() {     const prompt = document.getElementById('aiwp_prompt').value;     const generateTitle = document.getElementById('generate_title').checked;     const generateContent = document.getElementById('generate_content').checked;     const generateImage = document.getElementById('generate_image').checked;     const postId = document.getElementById('post_ID').value;          const data = {         action: 'aiwp_process_chat_request',         prompt: prompt,         options: {             generateTitle,             generateContent,             generateImage         },         postId: postId,         _ajax_nonce: aiwpData.nonce     };          sendAjaxRequest(data); } <\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p><strong>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 AJAX \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">\/\/ metabox-chat.js function sendAjaxRequest(data) {     showLoadingSpinner();     addMessageToChat('user', data.prompt);          jQuery.post(ajaxurl, data)         .done(handleResponse)         .fail(handleError)         .always(hideLoadingSpinner); } <\/code><\/pre>\n<h4>10.2. \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/h4>\n<ol>\n<li>\n<p><strong>\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 AJAX \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432 WordPress<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"php\">\/\/ class-metabox-chat.php public function register_hooks() {     add_action('wp_ajax_aiwp_process_chat_request', [$this, 'handle_ajax_chat_request']); } <\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p><strong>\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"php\">\/\/ class-metabox-chat.php public function handle_ajax_chat_request() {     check_ajax_referer('aiwp_chat_nonce');          $post_id = intval($_POST['postId']);     $prompt = sanitize_textarea_field($_POST['prompt']);     $options = $this-&amp;gt;validate_options($_POST['options']);          \/\/ \u041b\u043e\u0433\u0438\u0440\u0443\u0435\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441     $this-&amp;gt;logger-&amp;gt;log_info('Incoming chat request', [         'post_id' =&amp;gt; $post_id,         'options' =&amp;gt; $options     ]);          $this-&amp;gt;process_request($post_id, $prompt, $options); } <\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p><strong>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043c\u043f\u0442\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"php\">\/\/ class-metabox-chat.php private function format_prompt($prompt, $options, $post) {     $formatted_prompt = '';          if ($this-&amp;gt;is_new_post($post)) {         if ($options['generateTitle']) {             $formatted_prompt .= \"You are a content generator. Generate a post with the title: \";         }         if ($options['generateContent']) {             $formatted_prompt .= \"Generate post content about: \";         }     } else {         if ($options['generateTitle']) {             $current_title = get_the_title($post);             $formatted_prompt .= \"You are a content generator. Rewrite the title: {$current_title}\";         }         if ($options['generateContent']) {             $current_content = get_post_field('post_content', $post);             $formatted_prompt .= \"Rewrite the content: {$current_content}\";         }     }          if ($options['generateImage']) {         $formatted_prompt .= \"Make image: \" . ($options['generateTitle'] ? '{title}' : $prompt);     }          return $formatted_prompt . $prompt; } <\/code><\/pre>\n<h4>10.3. \u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 API<\/h4>\n<ol>\n<li>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 API \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"php\">\/\/ class-metabox-chat.php private function process_request($post_id, $prompt, $options) {     $api = new Google_API_Processor();     $formatted_prompt = $this-&amp;gt;format_prompt($prompt, $options, get_post($post_id));          try {         $response = $this-&amp;gt;generate_content($api, $formatted_prompt, $options);         $this-&amp;gt;handle_api_response($response, $post_id);     } catch (Exception $e) {         $this-&amp;gt;handle_error($e);     } } <\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p><strong>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"php\">\/\/ class-metabox-chat.php private function generate_content($api, $prompt, $options) {     $response = [];          if ($options['generateTitle'] || $options['generateContent']) {         $text_model = $api-&amp;gt;get_text_model();         $response['text'] = $api-&amp;gt;generate_text($prompt, [             'model' =&amp;gt; $text_model,             'temperature' =&amp;gt; 0.7,             'max_tokens' =&amp;gt; 1000         ]);     }          if ($options['generateImage']) {         $image_model = $api-&amp;gt;get_image_model();         $response['image'] = $api-&amp;gt;generate_image($prompt, [             'model' =&amp;gt; $image_model,             'size' =&amp;gt; '1024x1024',             'quality' =&amp;gt; 'hd'         ]);     }          return $response; } <\/code><\/pre>\n<h4>10.4. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 API<\/h4>\n<ol>\n<li>\n<p><strong>\u041f\u0430\u0440\u0441\u0438\u043d\u0433 \u043e\u0442\u0432\u0435\u0442\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"php\">\/\/ class-metabox-chat.php private function handle_api_response($response, $post_id) {     $processed_response = [         'success' =&amp;gt; true,         'data' =&amp;gt; []     ];          if (isset($response['text'])) {         $text_content = $this-&amp;gt;process_text_response($response['text']);         $processed_response['data']['title'] = $text_content['title'] ?? null;         $processed_response['data']['content'] = $text_content['content'] ?? null;     }          if (isset($response['image'])) {         $image_data = $this-&amp;gt;process_image_response($response['image'], $post_id);         $processed_response['data']['image'] = $image_data;     }          $this-&amp;gt;logger-&amp;gt;log_info('API response processed', $processed_response);     wp_send_json_success($processed_response); } <\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p><strong>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"php\">\/\/ class-metabox-chat.php private function process_text_response($text_response) {     return [         'title' =&amp;gt; wp_strip_all_tags($text_response['title'] ?? ''),         'content' =&amp;gt; wp_kses_post($text_response['content'] ?? '')     ]; } <\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p><strong>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"php\">\/\/ class-metabox-chat.php private function process_image_response($image_response, $post_id) {     $upload_dir = wp_upload_dir();     $temp_file = $upload_dir['path'] . '\/temp_' . uniqid() . '.jpg';          file_put_contents($temp_file, base64_decode($image_response['data']));          return [         'temp_path' =&amp;gt; $temp_file,         'preview_url' =&amp;gt; $upload_dir['url'] . '\/' . basename($temp_file)     ]; } <\/code><\/pre>\n<h4>10.5. \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0443<\/h4>\n<ol>\n<li>\n<p><strong>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"php\">\/\/ class-metabox-chat.php private function format_client_response($processed_data) {     return [         'success' =&amp;gt; true,         'data' =&amp;gt; $processed_data,         'message' =&amp;gt; 'Content generated successfully',         'timestamp' =&amp;gt; current_time('mysql')     ]; } <\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p><strong>JavaScript \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">\/\/ metabox-chat.js function handleResponse(response) {     if (response.success) {         const data = response.data;                  \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0442\u0432\u0435\u0442 \u0432 \u0447\u0430\u0442         addMessageToChat('ai', formatAIResponse(data));                  \/\/ \u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432         if (data.title) enableApplyButton('title');         if (data.content) enableApplyButton('content');         if (data.image) enableApplyButton('image');                  \/\/ \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435         storeGeneratedContent(data);     } else {         handleError(response.message);     } } <\/code><\/pre>\n<h4>10.6. \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432<\/h4>\n<ol>\n<li>\n<p><strong>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043a\u043d\u043e\u043f\u043e\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">\/\/ metabox-chat.js function setupApplyButtons() {     document.getElementById('apply_title').addEventListener('click', () =&amp;gt; {         const title = getStoredContent('title');         applyTitleToPost(title);     });          document.getElementById('apply_content').addEventListener('click', () =&amp;gt; {         const content = getStoredContent('content');         applyContentToPost(content);     });          document.getElementById('apply_image').addEventListener('click', () =&amp;gt; {         const image = getStoredContent('image');         applyFeaturedImageToPost(image);     }); } <\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">\/\/ metabox-chat.js function applyTitleToPost(title) {     \/\/ \u0414\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430     if (document.getElementById('title')) {         document.getElementById('title').value = title;     }     \/\/ \u0414\u043b\u044f Gutenberg     else if (wp.data &amp;amp;&amp;amp; wp.data.select('core\/editor')) {         wp.data.dispatch('core\/editor').editPost({ title });     } } <\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">\/\/ metabox-chat.js function applyContentToPost(content) {     \/\/ \u0414\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430     if (typeof tinyMCE !== 'undefined' &amp;amp;&amp;amp; tinyMCE.activeEditor) {         tinyMCE.activeEditor.setContent(content);     }     \/\/ \u0414\u043b\u044f Gutenberg     else if (wp.data &amp;amp;&amp;amp; wp.data.select('core\/editor')) {         wp.data.dispatch('core\/editor').insertBlocks(             wp.blocks.parse(content)         );     } } <\/code><\/pre>\n<ol start=\"4\">\n<li>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/strong><\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">\/\/ metabox-chat.js function applyFeaturedImageToPost(imageData) {     const data = {         action: 'aiwp_apply_featured_image',         post_id: getCurrentPostId(),         image_data: imageData,         _ajax_nonce: aiwpData.nonce     };          jQuery.post(ajaxurl, data)         .done(response =&amp;gt; {             if (response.success) {                 updateFeaturedImagePreview(response.data.attachment_url);             }         })         .fail(handleError); } <\/code><\/pre>\n<\/div>\n<\/details>\n<p><strong>\u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435!<\/strong><\/p>\n<p>\ud83d\udc49 \u041c\u043d\u0435\u043d\u0438\u0435 \u043b\u0438\u0447\u043d\u043e \u043c\u043e\u0451, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u043b\u0443\u0436\u0438\u0442\u044c \u043a\u0430\u043a \u043e\u0442\u0432\u0435\u0442\u043e\u043c \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445\u0441\u044f, \u0442\u0430\u043a \u0438 \u043f\u043e\u0432\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f, \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 \u043f\u0435\u0440\u0441\u043e\u043d. \u041a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0442\u0443\u0442 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435, \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u044e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u044e, \u0443\u0432\u0430\u0436\u0435\u043d\u0438\u0435 \u0438 \u0431\u0435\u043b\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0442\u044c, \u0437\u0430 \u0437\u043d\u0430\u043d\u0438\u044f \u0438 \u0443\u043c\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u043e \u0438\u0437\u043b\u0430\u0433\u0430\u0442\u044c, \u0441\u0432\u043e\u0439 \u043e\u043f\u044b\u0442 \u0438 \u043c\u044b\u0441\u043b\u0438 \u0432 \u0442\u0435\u043a\u0441\u0442. \u041f\u0440\u043e\u0448\u0443 \u043d\u0435 \u0431\u0440\u043e\u0441\u0430\u0442\u044c \u0432 \u043c\u0435\u043d\u044f \u043f\u043e\u043c\u0438\u0434\u043e\u0440\u044b, \u043f\u0438\u0448\u0443 \u0432\u043f\u0435\u0440\u0432\u044b\u0435\ud83d\ude0a\ud83d\ude4f<\/p>\n<blockquote>\n<p><strong>\u041d\u0435\u0439\u0440\u043e\u043d &#8212; \u043d\u0430\u0447\u0430\u043b\u043e<\/strong><\/p>\n<\/blockquote>\n<p>\u042f \u043d\u0430\u0437\u044b\u0432\u0430\u044e \u0435\u0433\u043e \u00ab\u043d\u0435\u0439\u0440\u043e\u043d\u043e\u043c-\u0441\u043f\u0435\u0440\u043c\u0430\u0442\u043e\u0437\u043e\u0438\u0434\u043e\u043c\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u0432\u043e\u0435\u0439 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0439 \u0436\u0438\u0437\u043d\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u044e \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043e\u0442 \u00ab\u043a\u0438\u043b\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u043f\u0442\u0430\u00bb \u0434\u043e \u00ab\u043e\u0442\u0432\u0435\u0442\u0430\u00bb, \u0430 \u0435\u0449\u0451 \u043f\u043e\u0441\u043b\u0435 (\u0441\u043c\u0435\u0440\u0442\u0438) \u043e\u0442\u0432\u0435\u0442\u0430, \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043c\u043e\u0439 \u043f\u0440\u043e\u043c\u043f\u0442. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c. \u0425\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435 \u043c\u043e\u0433\u043b\u0438 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d\u043d\u044b\u0435 \u0432 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438.<\/p>\n<p>\u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 LLM, \u0434\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u0432\u0435\u0442\u0430 &#171;\u043f\u0440\u043e\u043c\u043f\u0442&#187; \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0440\u0438\u0434\u043e\u0440:<\/p>\n<p>1. Tokenization<br \/>2. Embedding<br \/>3. Transformer layers<br \/>4. Logits<br \/>5. Softmax<br \/>6. Sampling<br \/>7. Autoregression<br \/><em>(\u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043c\u043e\u0433\u0443\u0442 \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c\ud83d\ude0a)<\/em><\/p>\n<p>\u0412\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043e\u0434\u0438\u043d \u00ab\u043d\u0435\u0439\u0440\u043e\u043d\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u043d\u0430\u0448\u0435\u043c\u0443 \u043f\u0440\u043e\u043c\u043f\u0442\u0443, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0438\u0445 \u0432 \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 N \u0441\u043b\u043e\u0451\u0432 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440\u0430. \u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u0448 \u00ab\u043d\u0435\u0439\u0440\u043e\u043d-\u0441\u043f\u0435\u0440\u043c\u0430\u0442\u043e\u0437\u043e\u0438\u0434\u00bb \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0442\u043d\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0432 \u0441\u043b\u043e\u044f\u0445 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f. \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0443\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u00ab\u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u043c\u044b\u0441\u043b\u0435\u0439\u00bb (chain-of-thought)  \u043e\u0442\u0432\u0435\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0447\u0442\u0438 \u0443 \u043b\u044e\u0431\u043e\u0439 LLM \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u043c:<br \/>&#8212; \u041e\u0442\u043b\u0438\u0447\u043d\u043e! \u042f \u043d\u0430\u043f\u0438\u0448\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 WordPress \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0432 \u0441\u043e\u0446\u0441\u0435\u0442\u0438.<\/p>\n<blockquote>\n<p><strong>\u041e\u0434\u043d\u0443 \u043c\u0438\u043d\u0443\u0442\u0443?!<br \/>\u041d\u0435\u0443\u0436\u0435\u043b\u0438 \u044f \u0432\u0432\u0451\u043b \u0442\u0430\u043a\u043e\u0439 \u0441\u0443\u043f\u0435\u0440-\u043c\u0435\u0433\u0430-\u043a\u0440\u0443\u0442\u043e\u0439 \u043f\u0440\u043e\u043c\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0442\u0438\u043b \u0431\u044b \u043d\u0430 \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0440\u044f\u0434\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430? <\/strong><\/p>\n<\/blockquote>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435:<br \/>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a, \u043f\u043e\u043b\u0443\u0447\u0438\u0432 \u043f\u0438\u0441\u044c\u043c\u043e \u043f\u043e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u0435 \u0441 \u043f\u0440\u043e\u0441\u044c\u0431\u043e\u0439: \u00ab\u041d\u0430\u043f\u0438\u0448\u0438 \u043c\u043d\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 WordPress-\u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0432 \u0441\u043e\u0446\u0441\u0435\u0442\u0438\u00bb, \u0441\u0442\u0430\u043d\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430, \u043d\u0435 \u0441\u043e\u0431\u0440\u0430\u0432 \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f, \u0431\u0435\u0437 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043e\u0431\u044a\u0435\u043c\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438. <\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 LLM, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u043c\u0438 \u043e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0414\u0430, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0438 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u0447\u0442\u043e\u0431\u044b \u0418\u0418 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b \u0442\u043e, \u0447\u0442\u043e \u0432\u044b \u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0438, \u0432\u0435\u0434\u044c \u0432\u0430\u0448\u0430 \u043c\u044b\u0441\u043b\u044c &#8212; \u044d\u0442\u043e \u0443\u0436\u0435 \u043f\u043b\u0430\u043d, \u0430 \u043e\u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0443 \u0432\u0430\u0441 \u0432 \u0433\u043e\u043b\u043e\u0432\u0435. \u0412\u0430\u0448 \u043f\u0440\u043e\u043c\u043f\u0442, \u044d\u0442\u043e \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0432\u0430\u0448\u0435\u0433\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044f, \u0430 \u0443\u0436 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043c\u044b\u0441\u043b\u0438. \u041b\u044e\u0431\u0430\u044f \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c, \u0434\u0430\u0436\u0435 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u044e\u0449\u0430\u044f, \u0441\u043f\u0435\u0448\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u043a\u0443, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d\u0430 \u0443\u0436\u0435 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u043d\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442, \u0432\u0435\u0434\u044c \u0441\u0443\u0445\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443 \u043d\u0435\u0451 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0445\u043e\u0442\u044c \u043e\u0442\u0431\u0430\u0432\u043b\u044f\u0439.<\/p>\n<p>\u041a\u0430\u043a \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0434\u0430\u0436\u0435 \u0441\u0430\u043c\u044b\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438, \u043f\u043e\u043b\u0443\u0447\u0438\u0432 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u0440\u043e\u043c\u043f\u0442, \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430\u0434 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c \u0432\u0430\u0448\u0435\u0433\u043e (\u043f\u0440\u043e\u043c\u043f\u0442\u0430) \u0436\u0435\u043b\u0430\u043d\u0438\u044f, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u00ab\u043f\u0440\u043e\u043c\u043f\u0442\u00bb \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u043e \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442. \u041f\u043e \u0441\u0443\u0442\u0438, \u0418\u0418 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u043c\u043e\u0439 \u00ab\u043f\u0440\u043e\u043c\u043f\u0442\u00bb \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0443\u0440\u043e\u0432\u043d\u0435\u043d\u0438\u044f. \u0412\u0435\u0434\u044c \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438, \u044f\u0432\u043d\u043e \u043d\u0443\u0436\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u0432 \u043b\u0443\u0447\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 , \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043a\u043e\u0434 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043d\u0430\u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0437\u0430 \u043c\u0435\u043d\u044f, \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e, \u043a\u0430\u043a \u0432 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c, \u0442\u0430\u043a \u0438 \u0432 \u0438\u0434\u0435\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043b\u0430\u043d\u0435.  <\/p>\n<p>\u0417\u0430\u0434\u0443\u043c\u0430\u0439\u0442\u0435\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e, \u0432\u0435\u0434\u044c \u043d\u0430\u0448\u0430 &#171;\u0438\u0434\u0435\u044f&#187; \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432. \u041d\u043e \u0434\u0430\u0436\u0435 \u043d\u0430\u0448\u0430 \u043c\u044b\u0441\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0441\u0430\u043c\u0438 \u043d\u0435 \u043e\u0431\u0434\u0443\u043c\u0430\u043b\u0438 \u0432 \u043f\u0443\u0445 \u0438 \u043f\u0440\u0430\u0445, \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0435\u043b\u044c\u0447\u0430\u0439\u0448\u0438\u0445 \u0434\u0435\u0442\u0430\u043b\u044f\u0445, \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u0435\u043c-\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0430\u0441, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0441\u0443\u043f\u0435\u0440\u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c. \u0418 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u0432\u0441\u0451 \u0441\u043e\u0431\u0435\u0440\u0451\u043c, \u0438 \u043f\u0440\u043e\u043c\u043f\u0442 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u044f \u0431\u044b \u0441\u043a\u0430\u0437\u0430\u043b: \u00ab\u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0445 \u0414\u0430\u043d\u043d\u044b\u0445\u00bb, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u043a &#8212; \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442, \u0441\u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>\u041e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430 \u0441\u0443\u0445\u0438\u0435 \u0446\u0438\u0444\u0440\u044b: \u043c\u043e\u0434\u0435\u043b\u044c Gemini 2.5 Pro \u0438\u043c\u0435\u0435\u0442 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0432 1 \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u043d\u043e \u043d\u0430 \u0432\u044b\u0445\u043e\u0434 \u0442\u043e\u043b\u044c\u043a\u043e 64 \u0442\u044b\u0441\u044f\u0447\u0438. \u0410 \u0432\u043e\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0442 Anthropic (Sonnet 3.7 Think) \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u0441\u043a\u043b\u0435\u0438\u0442\u044c \u0432\u0441\u044e \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u0432\u044b\u0432\u043e\u0434 \u043d\u0435 \u0443\u043f\u0438\u0440\u0430\u043b\u0441\u044f \u0432 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043a\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u0443\u0442 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 128 \u0442\u044b\u0441\u044f\u0447 \u0442\u043e\u043a\u0435\u043d\u043e\u0432.<\/p>\n<blockquote>\n<p><strong>\u041d\u0435\u0439\u0440\u043e\u043d &#8212; \u041e\u0434\u0438\u043d \u0437\u0430 \u0432\u0441\u0435\u0445, \u0438 \u0432\u0441\u0435 \u0437\u0430 \u043e\u0434\u043d\u043e\u0433\u043e.<\/strong><\/p>\n<\/blockquote>\n<p>\u041e\u0434\u0438\u043d &#171;\u043d\u0435\u0439\u0440\u043e\u043d&#187; \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u0421\u0435\u0433\u043e\u0434\u043d\u044f LLM &#8212; \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u00ab\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0438\u0439 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439 \u0432\u0441\u044e \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00bb, \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043a\u0430 \u043e\u0434\u0438\u043d \u00ab\u043d\u0435\u0439\u0440\u043e\u043d\u00bb \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u0431\u044b\u0442\u044c: \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435\u043c, \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c, \u0438 \u0434\u0430\u0436\u0435 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u043c, \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 &#8212; \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0438 \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u043e \u043c\u0435\u043b\u043e\u0447\u0435\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0412\u0441\u0451 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f LLM, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442 \u043d\u0430 200 \u0442\u044b\u0441\u044f\u0447 \u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u0418\u0418 \u0441\u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043b\u0430\u043d \u043d\u0430 500 \u0442\u044b\u0441\u044f\u0447, \u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0430 \u0435\u043c\u0443 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e\u043b\u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434. \u0410 \u0435\u0441\u043b\u0438 \u0433\u0434\u0435-\u0442\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0445, \u0443\u0432\u044b, \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c \u0443 \u043c\u0435\u043d\u044f \u0447\u0442\u043e \u0436\u0435 \u044f \u0438\u043c\u0435\u043b \u0432 \u0432\u0438\u0434\u0443, \u043e\u043d \u0443\u0436\u0435 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442.<\/p>\n<blockquote>\n<p><strong>\u0410\u0433\u0435\u043d\u0442\u044b &#8212; \u0440\u0435\u0448\u0430\u0442 \u0432\u0441\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b?<\/strong><\/p>\n<\/blockquote>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0441\u0451 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u0438-\u0430\u0433\u0435\u043d\u0442\u044b, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u043c\u0438 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0438 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434. \u0422\u043e\u0433\u0434\u0430 \u043e\u0434\u0438\u043d \u0430\u0433\u0435\u043d\u0442 \u0441\u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043b\u0430\u043d, \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u0432\u0441\u0451 \u043f\u043e \u043f\u043e\u043b\u043e\u0447\u043a\u0430\u043c, \u0438 \u0447\u0442\u043e \u0432\u0430\u0436\u043d\u043e, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0430\u0433\u0435\u043d\u0442\u0430\u043c\u0438: \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u043e\u043c, \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u2014 FullTask-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c, \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u2014 QA-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c, \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0433\u043e \u2014 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c \u043f\u043e \u043a\u043e\u0444\u0435. \u0418 \u0432\u043e\u0442 \u0442\u043e\u0433\u0434\u0430, \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u044f \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u043d\u0430\u043f\u0438\u0448\u0443 \u0432 \u043f\u0440\u043e\u043c\u043f\u0442\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043c\u043e\u0436\u0435\u0442 \u0438 \u0443\u0432\u0438\u0436\u0443, \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0434\u043e\u043b\u0433\u043e\u0436\u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u0418\u0418 \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u0437\u0430 \u043c\u0435\u043d\u044f.<\/p>\n<p>\u0410 \u043c\u043e\u0436\u0435\u0442 \u0438 \u043d\u0435 \u0443\u0432\u0438\u0436\u0443, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430, \u0447\u0435\u043c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u0435\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0442\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043d\u0430\u0448\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u044f. \u041d\u0443 \u0430 \u043f\u043e\u043a\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u043c\u043f\u0442\u044b, \u043c\u0435\u0447\u0442\u0430\u0442\u044c \u043e \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0438 \u0441 \u043b\u0451\u0433\u043a\u043e\u0439 \u0438\u0440\u043e\u043d\u0438\u0435\u0439 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u0442\u0435\u043c, \u043a\u0430\u043a \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 \u0441\u043d\u043e\u0432\u0430 \u0438 \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u043d\u0430\u043c \u00ab\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 WordPress-\u043f\u043b\u0430\u0433\u0438\u043d\u00bb<\/p>\n<p>\u0412\u0441\u0435\u043c \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u0416\u0434\u0443 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \ud83d\ude0a<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/905418\/\"> https:\/\/habr.com\/ru\/articles\/905418\/<\/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<blockquote>\n<p><em>\u0410\u0432\u0442\u043e\u0440: A.Ankalaev<\/em><br \/><em>C\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0431\u043e\u043b\u0435\u0435 20 \u043b\u0435\u0442<\/em><\/p>\n<\/blockquote>\n<ul>\n<li>\n<p>\u0421\u0440\u0435\u0434\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0442\u0443\u0442 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435, \u0431\u044b\u0442\u0443\u0435\u0442 \u043c\u043d\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 (LLM) \u043d\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u00ab\u043f\u043e\u0434 \u043a\u043b\u044e\u0447\u00bb. \u0421\u0430\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0441 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044f\u043c\u0438 \u0441\u043e \u0432\u0440\u0435\u043c\u0451\u043d GPT, \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b \u0438\u0445 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0434\u043b\u044f:<\/p>\n<p>\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0435\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 (\u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435)<\/p>\n<\/li>\n<li>\n<p>\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u0430\u0440\u044c\u0435\u0440\u043d\u043e\u0433\u043e \u0440\u043e\u0441\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0435\u0440\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u043c \u0432 \u0441\u0435\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u0432 \u0438\u044e\u043d\u0435 2022 GitHub Copilot \u0438\u043c\u0435\u0435\u0442 1,3 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (\u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 \u0444\u0435\u0432\u0440\u0430\u043b\u044c 2024 \u0433\u043e\u0434\u0430, \u0431\u043e\u043b\u0435\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442).<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c DemandSage, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u043c 16 \u0430\u043f\u0440\u0435\u043b\u044f 2025 \u0433\u043e\u0434\u0430, \u0427\u0430\u0442GPT \u0434\u043e\u0441\u0442\u0438\u0433 800 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0435\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0447\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 CEO OpenAI \u0421\u044d\u043c\u0430 \u0410\u043b\u044c\u0442\u043c\u0430\u043d\u0430 \u043d\u0430 TED 2025<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u0442\u0430\u0442\u044c\u0435 Bloomberg, Cursor AI \u0438\u043c\u0435\u0435\u0442 \u043e\u043a\u043e\u043b\u043e <strong>1 <\/strong>\u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (\u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 \u0430\u043f\u0440\u0435\u043b\u044c 2025 \u0433\u043e\u0434\u0430).<\/p>\n<\/li>\n<\/ul>\n<p>\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043f\u0440\u043e\u0441 \u043d\u0430 \u0418\u0418, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c, \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d. \u041d\u043e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0443\u0441\u0442\u0440\u0430\u0448\u0430\u044e\u0449\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a\u043d\u0430\u00a0\u0434\u0435\u043b\u0435, \u0442\u0430\u043a \u0438 \u0432\u00a0\u043d\u0430\u0448\u0435\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0438, \u043d\u0438 \u043e\u0434\u0438\u043d \u0418\u0418\u2011\u0430\u0433\u0435\u043d\u0442, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438\u0433\u0440\u043e\u043a\u043e\u0432, \u043d\u0435\u00a0\u043f\u0438\u0448\u0435\u0442 \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 (15\u201330\u00a0\u0444\u0430\u0439\u043b\u043e\u0432) \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0441\u043a\u043e\u0440\u043c\u0438\u0442\u044c \u0435\u043c\u0443 \u0441\u0443\u043f\u0435\u0440\u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u00ab\u0422\u0417\u00bb \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (\u0430\u043b\u044f \u00ab\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u043e\u043b\u0438\u00bb) \u0432\u043e\u00a0\u0432\u0441\u044f\u043a\u0438\u0435 \u00abRules\u00bb \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b.<\/p>\n<blockquote>\n<p><strong>\u0427\u0442\u043e \u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434, \u0447\u0442\u043e\u0431 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0445\u043e\u0434<\/strong><\/p>\n<\/blockquote>\n<ul>\n<li>\n<p>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u043e\u043b\u0438 \u0432 Project Rules\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0426\u0435\u043b\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 Project Rules<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0435\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0432 User Rules<\/p>\n<\/li>\n<li>\n<p>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0440\u0435\u0442\u044b\u00a0 \u0432 User Rules<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 User Rules<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0432 Docs<\/p>\n<\/li>\n<li>\n<p>\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442 \u043d\u0430 47+ \u0442\u044b\u0441\u044f\u0447 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439, \u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442 \u043d\u0430 10 \u0442\u044b\u0441\u044f\u0447 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u043f\u0442\u0430 \u043f\u043e \u043c\u043e\u0435\u043c\u0443 \u0441\u043a\u0440\u043e\u043c\u043d\u043e\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e<\/summary>\n<div class=\"spoiler__content\">\n<p> # \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 AIWP-Processor (\u0427\u0430\u0441\u0442\u044c 1) ## 1. \u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f <strong>\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430:<\/strong> AIWP-Processor   <strong>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430:<\/strong> WordPress   <strong>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f:<\/strong> Google Gemini API   <strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:<\/strong> \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430   <strong>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f API:<\/strong> [Google Gemini API FAQ](..\/doc\/<a href=\"http:\/\/gemini-api-faq.md\" rel=\"noopener noreferrer nofollow\">gemini-api-faq.md<\/a>) ## 2. \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f ### 2.1. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b 1. <strong>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Google Gemini API:<\/strong>    &#8212; \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a REST API \u0441\u0435\u0440\u0432\u0438\u0441\u0430 Google Gemini.    &#8212; \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f API-\u043a\u043b\u044e\u0447\u0430.    &#8212; \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439.    &#8212; \u0412\u044b\u0431\u043e\u0440 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u043b\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e (<code>Text_Generator<\/code>, <code>Image_Generator<\/code>). <\/p>\n<ol start=\"2\">\n<li>\n<p><strong>\u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 WordPress:<\/strong> <\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u043f\u043e\u0441\u0442\u043e\u0432 <code>post_title<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u043e\u0432 <code>post_content<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 <code>featured_image<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441:<\/strong> <\/p>\n<ul>\n<li>\n<p>\u041c\u0435\u0442\u0430\u0431\u043e\u043a\u0441 \u0434\u043b\u044f \u0447\u0430\u0442-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 <code>metabox-chat.php<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 WordPress \u0438 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 Gutenberg.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043d\u0435\u043b\u044c \u0441 \u0432\u043a\u043b\u0430\u0434\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c <code>dashboard.php<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h4>2.2. \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430 metabox-chat.php<\/h4>\n<h3>2.2.1. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/h3>\n<p><strong>1. \u0412\u0435\u0440\u0445\u043d\u044f\u044f \u043f\u0430\u043d\u0435\u043b\u044c \u043c\u0435\u0442\u0430\u0431\u043e\u043a\u0441\u0430<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-metabox-header\"&gt;     &lt;h3&gt;AI Content Generator&lt;\/h3&gt;     &lt;div class=\"aiwp-metabox-controls\"&gt;         &lt;button title=\"Clear chat history\" class=\"aiwp-clear-history\"&gt;             &lt;span class=\"dashicons dashicons-trash\"&gt;&lt;\/span&gt;         &lt;\/button&gt;         &lt;button title=\"Show help\" class=\"aiwp-help\"&gt;             &lt;span class=\"dashicons dashicons-editor-help\"&gt;&lt;\/span&gt;         &lt;\/button&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>2. \u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-generation-controls\"&gt;     &lt;div class=\"aiwp-options\"&gt;         &lt;label class=\"aiwp-checkbox\"&gt;             &lt;input name=\"generate_title\" id=\"generate_title\" type=\"checkbox\"&gt;             &lt;span&gt;Generate Title&lt;\/span&gt;         &lt;\/label&gt;         &lt;label class=\"aiwp-checkbox\"&gt;             &lt;input name=\"generate_content\" id=\"generate_content\" type=\"checkbox\"&gt;             &lt;span&gt;Generate Content&lt;\/span&gt;         &lt;\/label&gt;         &lt;label class=\"aiwp-checkbox\"&gt;             &lt;input name=\"generate_image\" id=\"generate_image\" type=\"checkbox\"&gt;             &lt;span&gt;Generate Featured Image&lt;\/span&gt;         &lt;\/label&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>3. \u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0447\u0430\u0442\u0430<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-chat-container\"&gt;     &lt;div id=\"aiwp_chat_messages\" class=\"aiwp-chat-messages\"&gt;              &lt;\/div&gt;     &lt;div class=\"aiwp-chat-input\"&gt;         &lt;textarea rows=\"3\" placeholder=\"Enter your prompt here...\" id=\"aiwp_prompt\"&gt;&lt;\/textarea&gt;         &lt;button class=\"button button-primary\" id=\"aiwp_send\"&gt;             &lt;span class=\"aiwp-button-text\"&gt;Send&lt;\/span&gt;             &lt;span class=\"aiwp-spinner\"&gt;&lt;\/span&gt;         &lt;\/button&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>4. \u041f\u0430\u043d\u0435\u043b\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-results-panel\"&gt;     &lt;div class=\"aiwp-preview\"&gt;              &lt;\/div&gt;     &lt;div class=\"aiwp-actions\"&gt;         &lt;button data-type=\"title\" class=\"button aiwp-apply\"&gt;             Apply Title         &lt;\/button&gt;         &lt;button data-type=\"content\" class=\"button aiwp-apply\"&gt;             Apply Content         &lt;\/button&gt;         &lt;button data-type=\"image\" class=\"button aiwp-apply\"&gt;             Apply Featured Image         &lt;\/button&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<h3>2.2.2. \u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432<\/h3>\n<p><strong>1. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438 \u043e\u0442\u0441\u0442\u0443\u043f\u044b<\/strong><\/p>\n<pre><code class=\"css\">.aiwp-metabox {     min-height: 400px;     max-height: 800px;     display: flex;     flex-direction: column; } .aiwp-chat-container {     flex: 1;     min-height: 300px;     display: flex;     flex-direction: column; } .aiwp-chat-messages {     flex: 1;     overflow-y: auto;     padding: 15px; } <\/code><\/pre>\n<p><strong>2. \u0421\u0442\u0438\u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0447\u0430\u0442\u0430<\/strong><\/p>\n<pre><code class=\"css\">.aiwp-message {     margin-bottom: 15px;     max-width: 85%; } .aiwp-message-user {     margin-left: auto;     background: #e9ecef;     border-radius: 15px 15px 0 15px; } .aiwp-message-ai {     margin-right: auto;     background: #f8f9fa;     border-radius: 15px 15px 15px 0; } <\/code><\/pre>\n<p><strong>3. \u0421\u0442\u0438\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/strong><\/p>\n<pre><code class=\"css\">.aiwp-generation-controls {     padding: 10px;     border-bottom: 1px solid #ddd; } .aiwp-checkbox {     display: inline-flex;     align-items: center;     margin-right: 15px; } .aiwp-actions {     display: flex;     gap: 10px;     padding: 10px;     border-top: 1px solid #ddd; } <\/code><\/pre>\n<h4>2.3. \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043d\u0435\u043b\u044c dashboard.php<\/h4>\n<h3>2.3.1. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438<\/h3>\n<p><strong>1. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/strong><\/p>\n<pre><code>&lt;div class=\"wrap aiwp-dashboard\"&gt;     &lt;h1&gt;AIWP Processor Dashboard&lt;\/h1&gt;          &lt;div class=\"aiwp-container\"&gt;         &lt;nav class=\"aiwp-tabs\"&gt;             &lt;a class=\"active\" href=\"#dashboard\"&gt;Dashboard&lt;\/a&gt;             &lt;a href=\"#google-api\"&gt;Google API&lt;\/a&gt;             &lt;a href=\"#settings\"&gt;Settings&lt;\/a&gt;             &lt;a href=\"#logs\"&gt;Logs&lt;\/a&gt;         &lt;\/nav&gt;                  &lt;div class=\"aiwp-tab-content\"&gt;                      &lt;\/div&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>2. \u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u043d\u0435\u043b\u0438<\/strong><\/p>\n<pre><code class=\"css\">.aiwp-dashboard {     max-width: 1200px;     margin: 20px auto; } .aiwp-container {     min-height: 700px;     background: #fff;     border: 1px solid #ccd0d4;     box-shadow: 0 1px 1px rgba(0,0,0,.04); } .aiwp-tab-content {     padding: 20px; } .aiwp-section {     padding: 10px;     margin-bottom: 20px; } <\/code><\/pre>\n<h3>2.3.2. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432\u043a\u043b\u0430\u0434\u043e\u043a<\/h3>\n<p><strong>1. Dashboard<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-tab-content\" id=\"dashboard\"&gt;     &lt;div class=\"aiwp-section aiwp-status\"&gt;         &lt;h2&gt;System Status&lt;\/h2&gt;         &lt;div class=\"aiwp-grid\"&gt;             &lt;div class=\"aiwp-status-item\"&gt;                 &lt;h4&gt;API Connection&lt;\/h4&gt;                 &lt;div class=\"aiwp-status-indicator\"&gt;&lt;\/div&gt;             &lt;\/div&gt;                      &lt;\/div&gt;     &lt;\/div&gt;          &lt;div class=\"aiwp-section aiwp-models\"&gt;         &lt;h2&gt;Available Models&lt;\/h2&gt;         &lt;table class=\"wp-list-table widefat\"&gt;                      &lt;\/table&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>2. Google API<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-tab-content\" id=\"google-api\"&gt;     &lt;div class=\"aiwp-section\"&gt;         &lt;h2&gt;API Configuration&lt;\/h2&gt;         &lt;form action=\"options.php\" method=\"post\"&gt;             &lt;table class=\"form-table\"&gt;                 &lt;tbody&gt;&lt;tr&gt;                     &lt;th&gt;API Key&lt;\/th&gt;                     &lt;td&gt;                         &lt;input value=\"&lt;?php echo esc_attr(get_option('aiwp_google_api_key')); ?&gt;\" class=\"regular-text\" name=\"aiwp_google_api_key\" type=\"password\"&gt;                     &lt;\/td&gt;                 &lt;\/tr&gt;                              &lt;\/tbody&gt;&lt;\/table&gt;                      &lt;\/form&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>3. Settings<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-tab-content\" id=\"settings\"&gt;     &lt;div class=\"aiwp-section\"&gt;         &lt;h2&gt;General Settings&lt;\/h2&gt;         &lt;form action=\"options.php\" method=\"post\"&gt;             &lt;table class=\"form-table\"&gt;                 &lt;tbody&gt;&lt;tr&gt;                     &lt;th&gt;Email Notifications&lt;\/th&gt;                     &lt;td&gt;                         &lt;label&gt;                             &lt;input value=\"1\" name=\"aiwp_email_notifications\" type=\"checkbox\"&gt;                             &amp;gt;                             Enable email notifications                         &lt;\/label&gt;                     &lt;\/td&gt;                 &lt;\/tr&gt;                              &lt;\/tbody&gt;&lt;\/table&gt;                      &lt;\/form&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p><strong>4. Logs<\/strong><\/p>\n<pre><code>&lt;div class=\"aiwp-tab-content\" id=\"logs\"&gt;     &lt;div class=\"aiwp-section\"&gt;         &lt;div class=\"aiwp-logs-header\"&gt;             &lt;h2&gt;Operation Logs&lt;\/h2&gt;             &lt;div class=\"aiwp-logs-actions\"&gt;                 &lt;button id=\"clear_logs\" class=\"button\"&gt;Clear Logs&lt;\/button&gt;                 &lt;button id=\"export_logs\" class=\"button\"&gt;Export Logs&lt;\/button&gt;             &lt;\/div&gt;         &lt;\/div&gt;                  &lt;div class=\"aiwp-logs-table-container\"&gt;             &lt;table class=\"wp-list-table widefat fixed striped\"&gt;                 &lt;thead&gt;                     &lt;tr&gt;                         &lt;th&gt;Timestamp&lt;\/th&gt;                         &lt;th&gt;Level&lt;\/th&gt;                         &lt;th&gt;Message&lt;\/th&gt;                         &lt;th&gt;Context&lt;\/th&gt;                     &lt;\/tr&gt;                 &lt;\/thead&gt;                 &lt;tbody id=\"logs_content\"&gt;                                      &lt;\/tbody&gt;             &lt;\/table&gt;         &lt;\/div&gt;     &lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<h3>3. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f<\/h3>\n<h4>3.1. \u041b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043d\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u044c\u044e<\/h4>\n<ul>\n<li>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441: &#171;You are a content generator. Generate a post with the title: {title} and content: {content}&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Generate Title&#187;: \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438 &#171;Generate Content&#187;: \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\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-458092","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/458092","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=458092"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/458092\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=458092"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=458092"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=458092"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}