

{"id":6380,"date":"2024-07-31T02:00:12","date_gmt":"2024-07-31T02:00:12","guid":{"rendered":"https:\/\/aigender.net\/?page_id=6380"},"modified":"2024-09-30T08:40:22","modified_gmt":"2024-09-30T08:40:22","slug":"product","status":"publish","type":"page","link":"https:\/\/aigender.net\/index.php\/product\/","title":{"rendered":"\u0420\u043e\u0434\u043e\u0432 AICopilot"},"content":{"rendered":"\n    <div class=\"top-container\">\n        <h1>AICopilot \u0410\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u0437\u0430 \u0423\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0414\u0438\u0458\u0430\u043b\u043e\u0437\u0438 \u0438 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438, \u00a9\u0418\u043d\u0441\u0442\u0438\u0442\u0443\u0442 \u0437\u0430 \u0440\u043e\u0434\u043e\u0432\u0438 \u0441\u0442\u0443\u0434\u0438\u0438, \u0424\u0438\u043b\u043e\u0437\u043e\u0444\u0441\u043a\u0438 \u0444\u0430\u043a\u0443\u043b\u0442\u0435\u0442, \u0421\u043a\u043e\u043f\u0458\u0435<\/h1>\n        <div class=\"system-prompt-container\" style=\"display:none;\">\n            <input type=\"text\" id=\"system-prompt\" value=\"\u041c\u043e\u043b\u0430\u043c \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u0438 \u043d\u0430 \u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 \u0458\u0430\u0437\u0438\u043a. \u041e\u0434\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u0442\u0440\u0435\u0431\u0430 \u0434\u0430 \u0431\u0438\u0434\u0430\u0442 \u0434\u0435\u0442\u0430\u043b\u043d\u0438 \u0438 \u043f\u0440\u043e\u0448\u0438\u0440\u0435\u043d\u0438.\">\n        <\/div>\n    <\/div>\n\n    <div class=\"container\">\n        <div class=\"window\" id=\"summary-window\">\n            <h6>\u0414\u0438\u0458\u0430\u043b\u043e\u0433<\/h6>\n            <div class=\"chat-container\" id=\"summary-container\"><\/div>\n            <div class=\"input-container\">\n                <textarea id=\"summary-input\" placeholder=\"\u0412\u043d\u0435\u0441\u0435\u0442\u0435 \u043f\u043e\u0440\u0430\u043a\u0430 ...\"><\/textarea>\n            <\/div>\n            <div class=\"input-container\">\n                <button onclick=\"sendSummaryMessage()\">\u0418\u0441\u043f\u0440\u0430\u0442\u0438<\/button>\n                <button onclick=\"stopResponse()\" class=\"stop-button\">\u0421\u0442\u043e\u043f<\/button>\n                <button class=\"save-context-button\" onclick=\"pasteContext()\">\u0417\u0430\u043b\u0435\u043f\u0438 \u0434\u0438\u0458\u0430\u043b\u043e\u0433 \u0432\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442<\/button>\n                <button class=\"reset-button\" onclick=\"resetDialog()\">\u0420\u0435\u0441\u0435\u0442\u0438\u0440\u0430\u0458 \u0434\u0438\u0458\u0430\u043b\u043e\u0433<\/button>\n                <button class=\"copy-button\" onclick=\"copyContent('summary-container')\" title=\"\u041a\u043e\u043f\u0438\u0440\u0430\u0458\">\ud83d\udccb<\/button>\n                <button class=\"edit-button\" onclick=\"toggleEditMode('summary-container')\" title=\"\u0423\u0440\u0435\u0434\u0438\">\u270f\ufe0f<\/button>\n            <\/div>\n        <\/div>\n\n        <div class=\"resizer\" id=\"resizer\"><\/div>\n\n        <div class=\"window\" id=\"new-window\">\n            <h6>\u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438<\/h6>\n            <div class=\"chat-container\" id=\"new-container\"><\/div>\n            <div class=\"input-container\">\n                <button onclick=\"summarizeChat()\">\u0421\u0443\u043c\u0438\u0440\u0430\u0458 \u0434\u0438\u0458\u0430\u043b\u043e\u0433<\/button>\n                <button onclick=\"createOutline()\">\u041d\u0430\u043f\u0440\u0430\u0432\u0438 Outline<\/button>\n                <button onclick=\"createArticle()\">\u041d\u0430\u043f\u0440\u0430\u0432\u0438 \u0421\u0442\u0430\u0442\u0438\u0458\u0430<\/button>\n                <button class=\"save-button\" onclick=\"saveAs()\">\u0421\u043d\u0438\u043c\u0438 \u043a\u0430\u043a\u043e<\/button>\n                <button class=\"delete-button\" onclick=\"clearProducts()\">\u0418\u0437\u0431\u0440\u0438\u0448\u0438<\/button>\n                <button class=\"copy-button\" onclick=\"copyContent('new-container')\" title=\"\u041a\u043e\u043f\u0438\u0440\u0430\u0458\">\ud83d\udccb<\/button>\n                <button class=\"edit-button\" onclick=\"toggleEditMode('new-container')\" title=\"\u0423\u0440\u0435\u0434\u0438\">\u270f\ufe0f<\/button>\n            <\/div>\n            <div class=\"input-container\">\n                <textarea id=\"custom-prompt\" placeholder=\"\u0412\u043d\u0435\u0441\u0435\u0442\u0435 \u043f\u0440\u0438\u043b\u0430\u0433\u043e\u0434\u0435\u043d \u043f\u0440\u043e\u043c\u043f\u0442...\"><\/textarea>\n                <button onclick=\"sendCustomPrompt()\">\u0418\u0441\u043f\u0440\u0430\u0442\u0438 \u041f\u0440\u043e\u043c\u043f\u0442<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u043e \u043f\u043e\u043b\u0435 \u0437\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0434\u043d\u043e\u0442\u043e \u043d\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430 -->\n    <div class=\"context-container\">\n        <h6>\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0442<\/h6>\n        <div class=\"input-container\">\n            <textarea id=\"conversation-context\" class=\"dark-theme\" placeholder=\"\u0412\u043d\u0435\u0441\u0435\u0442\u0435 \u0438\u043b\u0438 \u043f\u0430\u0441\u0442\u0438\u0440\u0430\u0458\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u043e\u0432\u0434\u0435...\"><\/textarea>\n            <button class=\"copy-button\" onclick=\"copyContent('conversation-context')\" title=\"\u041a\u043e\u043f\u0438\u0440\u0430\u0458\">\ud83d\udccb<\/button>\n            <button class=\"clear-context-button\" onclick=\"clearTextArea()\" title=\"\u0418\u0437\u0431\u0440\u0438\u0448\u0438 \u0442\u0435\u043a\u043e\u0432\u0435\u043d \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\">\ud83d\uddd1\ufe0f<\/button>\n            <button class=\"danger-button\" onclick=\"clearContext()\" title=\"\u0418\u0437\u0431\u0440\u0438\u0448\u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043e\u0434 \u043b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0435\u043c\u043e\u0440\u0438\u0458\u0430\">\u274c<\/button>\n        <\/div>\n    <\/div>\n\n    <style>\n        body {\n            display: flex;\n            flex-direction: column;\n            height: 100vh;\n            margin: 0;\n            font-family: Arial, sans-serif;\n            background-color: #121212;\n            color: #e0e0e0;\n        }\n        .top-container {\n            display: flex;\n            flex-direction: column;\n            padding: 10px;\n            background-color: #1f1f1f;\n            border-bottom: 1px solid #333;\n        }\n        .top-container h1 {\n            margin: 0;\n            padding-bottom: 10px;\n            font-size: 24px;\n            color: #e0e0e0;\n        }\n        .api-key-container, .system-prompt-container {\n            margin-bottom: 10px;\n        }\n        .api-key-container input, .system-prompt-container input {\n            width: 300px;\n            padding: 10px;\n            font-size: 11px;\n            background-color: #2c2c2c;\n            color: #e0e0e0;\n            border: 1px solid #444;\n        }\n        .container {\n            flex: 1;\n            display: flex;\n            flex-direction: row;\n            padding: 10px;\n            background-color: #121212;\n            height: calc(100vh - 40px); \/* \u0412\u0438\u0441\u0438\u043d\u0430\u0442\u0430 \u043d\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430 *\/\n            overflow: hidden; \/* \u0421\u043a\u0440\u0438\u0432\u0430\u045a\u0435 \u043d\u0430 \u0432\u0438\u0448\u043e\u043a\u043e\u0442 *\/\n        }\n        .window {\n            display: flex;\n            flex-direction: column;\n            border: 1px solid #333;\n            margin: 10px;\n            padding: 10px;\n            background-color: #1f1f1f;\n            color: #e0e0e0;\n            overflow: hidden;\n        }\n        .window:first-of-type {\n            flex-grow: 1;\n            min-width: 100px;\n        }\n        .window:last-of-type {\n            flex-grow: 1;\n            min-width: 100px;\n        }\n        .window h6 {\n            font-size: 12px;\n            margin-bottom: 10px;\n        }\n        .chat-container {\n            flex: 1;\n            overflow-y: auto; \/* \u0414\u043e\u0434\u0430\u0432\u0430\u045a\u0435 \u043d\u0430 \u0441\u043a\u0440\u043e\u043b\u0435\u0440 \u0437\u0430 \u043a\u043e\u043d\u0442\u0435\u0458\u043d\u0435\u0440\u043e\u0442 \u0441\u043e \u043f\u043e\u0440\u0430\u043a\u0438 *\/\n            padding: 10px;\n            border: 1px solid #333;\n            margin-bottom: 10px;\n            background-color: #2c2c2c;\n            border-radius: 8px;\n        }\n        .input-container {\n            display: flex;\n            flex-wrap: wrap; \/* \u0414\u043e\u0434\u0430\u0432\u0430\u045a\u0435 \u043d\u0430 \u043e\u0432\u0430 \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043e\u0441\u0438\u0433\u0443\u0440\u0430\u043c\u0435 \u0434\u0435\u043a\u0430 \u043a\u043e\u043f\u0447\u0438\u045a\u0430\u0442\u0430 \u0441\u0435 \u0432\u0438\u0434\u043b\u0438\u0432\u0438 *\/\n        }\n        .input-container textarea {\n            flex: 1;\n            padding: 10px;\n            font-size: 11px;\n            background-color: #2c2c2c;\n            color: #e0e0e0;\n            border: 1px solid #444;\n            border-radius: 4px;\n            height: 60px; \/* \u041f\u043e\u0441\u0442\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u0432\u0438\u0441\u0438\u043d\u0430\u0442\u0430 \u043d\u0430 textarea *\/\n            resize: none; \/* \u041e\u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u043f\u0440\u043e\u043c\u0435\u043d\u0430 \u043d\u0430 \u0433\u043e\u043b\u0435\u043c\u0438\u043d\u0430\u0442\u0430 *\/\n        }\n        .input-container button {\n            padding: 5px 8px; \/* \u041d\u0430\u043c\u0430\u043b\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 padding *\/\n            font-size: 10px; \/* \u041d\u0430\u043c\u0430\u043b\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 font-size *\/\n            margin: 5px; \/* \u041d\u0430\u043c\u0430\u043b\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u043c\u0430\u0440\u0433\u0438\u043d\u0438\u0442\u0435 \u043e\u043a\u043e\u043b\u0443 \u043a\u043e\u043f\u0447\u0438\u045a\u0430\u0442\u0430 *\/\n            border: 1px solid #444;\n            border-radius: 4px;\n            background-color: #555;\n            color: white;\n            cursor: pointer;\n        }\n        .save-button, .stop-button, .reset-button, .delete-button {\n            margin: 5px; \/* \u041d\u0430\u043c\u0430\u043b\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u043c\u0430\u0440\u0433\u0438\u043d\u0438\u0442\u0435 \u043e\u043a\u043e\u043b\u0443 \u043a\u043e\u043f\u0447\u0438\u045a\u0430\u0442\u0430 *\/\n            padding: 5px 8px; \/* \u041d\u0430\u043c\u0430\u043b\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 padding *\/\n            font-size: 10px; \/* \u041d\u0430\u043c\u0430\u043b\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 font-size *\/\n            border: 1px solid #444;\n            border-radius: 4px;\n            background-color: #555;\n            color: white;\n            cursor: pointer;\n        }\n        .message {\n            margin-bottom: 10px;\n            padding: 10px;\n            border-radius: 8px;\n        }\n        .user-message {\n            background-color: #1e88e5;\n            color: #ffffff;\n            align-self: flex-end;\n        }\n        .bot-message {\n            background-color: #333;\n            color: #ffffff;\n            align-self: flex-start;\n            font-size: 14px; \/* \u0417\u0433\u043e\u043b\u0435\u043c\u0435\u0442\u0435 \u0458\u0430 \u0433\u043e\u043b\u0435\u043c\u0438\u043d\u0430\u0442\u0430 \u043d\u0430 \u0431\u0443\u043a\u0432\u0438\u0442\u0435 *\/\n        }\n        .error-message {\n            background-color: #e53935;\n            color: #ffffff;\n        }\n        .editable {\n            border: 1px dashed #007bff;\n            padding: 5px;\n        }\n        .copy-button, .edit-button, .clear-context-button, .danger-button {\n            background: none;\n            border: none;\n            color: #fff;\n            font-size: 14px; \/* \u041d\u0430\u043c\u0430\u043b\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 font-size \u0437\u0430 \u0438\u043a\u043e\u043d\u0438\u0442\u0435 *\/\n            cursor: pointer;\n            margin-left: 5px; \/* \u041d\u0430\u043c\u0430\u043b\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u043c\u0430\u0440\u0433\u0438\u043d\u0438\u0442\u0435 *\/\n        }\n        .copy-button:hover, .edit-button:hover, .clear-context-button:hover, .danger-button:hover {\n            color: #00f;\n        }\n        .copy-button[title]:hover:after, .edit-button[title]:hover:after, .clear-context-button[title]:hover:after, .danger-button[title]:hover:after {\n            content: attr(title);\n            position: absolute;\n            background: #333;\n            color: #fff;\n            padding: 5px 10px;\n            border-radius: 5px;\n            top: -25px;\n            right: 0;\n            white-space: nowrap;\n        }\n        .danger-button {\n            color: red; \/* \u0426\u0440\u0432\u0435\u043d\u0430 \u0431\u043e\u0458\u0430 \u0437\u0430 \u043f\u043e\u043e\u043f\u0430\u0441\u043d\u0430\u0442\u0430 \u0438\u043a\u043e\u043d\u0430 *\/\n        }\n        .context-container {\n            margin-top: 20px;\n            padding: 10px;\n            background-color: #1f1f1f;\n            border: 1px solid #333;\n            border-radius: 8px;\n            flex-grow: 1; \/* \u0414\u043e\u0434\u0430\u0458\u0442\u0435 \u043e\u0432\u0430 \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0448\u0438\u0440\u0438 \u043f\u0440\u043e\u0437\u043e\u0440\u043e\u0442 *\/\n            min-height: 400px; \/* \u041f\u043e\u0441\u0442\u0430\u0432\u0435\u0442\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u043d\u0430 \u0432\u0438\u0441\u0438\u043d\u0430 *\/\n        }\n        .context-container h6 {\n            font-size: 12px;\n            margin-bottom: 10px;\n        }\n        .context-container .input-container {\n            display: flex;\n            align-items: center;\n        }\n        .context-container textarea {\n            flex: 1;\n            padding: 10px;\n            font-size: 11px;\n            background-color: #2c2c2c;\n            color: #e0e0e0;\n            border: 1px solid #444;\n            border-radius: 4px;\n            resize: none; \/* \u041e\u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u043f\u0440\u043e\u043c\u0435\u043d\u0430 \u043d\u0430 \u0433\u043e\u043b\u0435\u043c\u0438\u043d\u0430\u0442\u0430 *\/\n            height: 400px; \/* \u041f\u043e\u0441\u0442\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u0432\u0438\u0441\u0438\u043d\u0430\u0442\u0430 \u043d\u0430 textarea *\/\n        }\n        .resizer {\n            width: 5px;\n            background-color: #333;\n            cursor: col-resize;\n            margin: 10px 0;\n            position: relative;\n            z-index: 1;\n        }\n    <\/style>\n\n    <script>\n    document.addEventListener('DOMContentLoaded', function () {\n        const summaryContainer = document.getElementById('summary-container');\n        const newContainer = document.getElementById('new-container');\n        const conversationContext = document.getElementById('conversation-context');\n        let apiKey = ''; \/\/ \u041f\u0440\u0430\u0437\u0435\u043d \u043a\u043b\u0443\u0447 \u043a\u043e\u0458 \u045c\u0435 \u0441\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0438 \u043e\u0434 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0442\n        let stopRequested = false;\n\n        let context = {\n            previousMessages: [{ role: 'system', content: '\u0422\u0438 \u0441\u0435 \u0432\u0438\u043a\u0430\u0448 \u0418\u0420\u0421 \u0438 \u0442\u0438 \u0441\u0438 \u0430\u0441\u0438\u0441\u0442\u0435\u043d\u0442 \u043d\u0430 \u0418\u043d\u0441\u0442\u0438\u0442\u0443\u0442\u043e\u0442 \u0437\u0430 \u0440\u043e\u0434\u043e\u0432\u0438 \u0441\u0442\u0443\u0434\u0438\u0438. \u041c\u043e\u043b\u0430\u043c \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u0438 \u043d\u0430 \u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 \u0458\u0430\u0437\u0438\u043a. \u041e\u0434\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u0442\u0440\u0435\u0431\u0430 \u0434\u0430 \u0431\u0438\u0434\u0430\u0442 \u0434\u0435\u0442\u0430\u043b\u043d\u0438 \u0438 \u043f\u0440\u043e\u0448\u0438\u0440\u0435\u043d\u0438. \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0442 \u043d\u0430 \u0442\u0432\u043e\u0438\u0442\u0435 \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u0438 \u0441\u0435 \u043e\u0434 \u0440\u043e\u0434\u043e\u0432\u0430\u0442\u0430 \u0442\u0435\u043e\u0440\u0438\u0458\u0430 \u0438 \u0444\u0435\u043c\u0438\u043d\u0438\u0437\u043c\u043e\u0442' }]\n        };\n\n        console.log(\"Initial context:\", context);\n\n        function updateContext(message) {\n            context.previousMessages.push(message);\n            localStorage.setItem('chatContext', JSON.stringify(context));\n            console.log(\"Updated context:\", context);\n        }\n\n        function loadContext() {\n            const savedContext = localStorage.getItem('chatContext');\n            if (savedContext) {\n                context = JSON.parse(savedContext);\n                console.log(\"Loaded context from local storage:\", context);\n                alert(\"\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0442 \u0435 \u0432\u0447\u0438\u0442\u0430\u043d \u043e\u0434 \u043b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0435\u043c\u043e\u0440\u0438\u0458\u0430.\");\n            }\n        }\n\n        loadContext();\n\n        \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u0458\u0430 \u0437\u0430 \u0434\u043e\u0431\u0438\u0432\u0430\u045a\u0435 \u043d\u0430 API \u043a\u043b\u0443\u0447\u043e\u0442 \u043e\u0434 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0442\n        async function fetchApiKey() {\n            try {\n                const response = await fetch('https:\/\/aigender.net\/wp-json\/api-key-manager\/v1\/get-key');\n                if (!response.ok) {\n                    throw new Error(`HTTP error! status: ${response.status}`);\n                }\n                const data = await response.json();\n                apiKey = data.openai_api_key;\n                console.log('API Key fetched successfully:', apiKey);\n            } catch (error) {\n                console.error('Error fetching API key:', error);\n            }\n        }\n\n        \/\/ \u041f\u043e\u0432\u0438\u043a \u0437\u0430 \u0434\u043e\u0431\u0438\u0432\u0430\u045a\u0435 \u043d\u0430 API \u043a\u043b\u0443\u0447\u043e\u0442 \u043f\u0440\u0438 \u0432\u0447\u0438\u0442\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430\n        fetchApiKey();\n\n        window.sendSummaryMessage = async function() {\n            const summaryInput = document.getElementById('summary-input').value;\n\n            if (summaryInput.trim() === '' || apiKey.trim() === '') {\n                alert('\u0412\u0435 \u043c\u043e\u043b\u0438\u043c\u0435 \u0432\u043d\u0435\u0441\u0435\u0442\u0435 \u043f\u043e\u0440\u0430\u043a\u0430 \u0438 API \u043a\u043b\u0443\u0447.');\n                return;\n            }\n\n            updateContext({ role: 'user', content: summaryInput });\n            addMessageToContainer(summaryContainer, \"\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u043a: \" + summaryInput, 'user-message');\n\n            try {\n                const botResponse = await getBotResponse(summaryInput, summaryContainer);\n                updateContext({ role: 'assistant', content: botResponse });\n            } catch (error) {\n                console.error(\"Error getting bot response:\", error);\n                addMessageToContainer(summaryContainer, \"\u0413\u0440\u0435\u0448\u043a\u0430: \" + error.message, 'error-message');\n            }\n\n            document.getElementById('summary-input').value = '';\n        }\n\n        async function getBotResponse(userMessage, container) {\n            \/\/ \u0414\u043e\u0434\u0430\u0432\u0430\u045a\u0435 \u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0442 \u043e\u0434 \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u043e\u0442\u043e \u043f\u043e\u043b\u0435 \u0437\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0432\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0458\u0430\u0442\u043e\u0442 \u043d\u0430 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0442\n            if (conversationContext.value.trim() !== '') {\n                context.previousMessages.push({ role: 'user', content: conversationContext.value });\n            }\n\n            const requestBody = JSON.stringify({\n                model: \"gpt-4o-2024-08-06\",\n                messages: context.previousMessages.concat([{ role: 'user', content: userMessage }]),\n                max_tokens: 16000,\n                stream: true\n            });\n\n            console.log(\"Request sent to API:\", requestBody);\n\n            const response = await fetch('https:\/\/api.openai.com\/v1\/chat\/completions', {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                    'Authorization': `Bearer ${apiKey}`\n                },\n                body: requestBody\n            });\n\n            if (!response.ok) {\n                const errorText = await response.text();\n                console.error(\"API response:\", errorText);\n                throw new Error('Network response was not ok');\n            }\n\n            const reader = response.body.getReader();\n            const decoder = new TextDecoder('utf-8');\n            let botResponse = '';\n\n            \/\/ \u041a\u0440\u0435\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0435\u043b\u0435\u043c\u0435\u043d\u0442 \u0437\u0430 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0442 \u043d\u0430 \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u043e\u0442\n            const messageElement = document.createElement('div');\n            messageElement.className = `message bot-message`;\n            container.appendChild(messageElement);\n\n            while (true) {\n                const { value, done } = await reader.read();\n                if (done || stopRequested) break;\n                const chunk = decoder.decode(value, { stream: true });\n                const lines = chunk.split('\\n').filter(Boolean);\n                for (const line of lines) {\n                    if (line.startsWith('data: ')) {\n                        const jsonString = line.slice(6).trim();\n                        if (jsonString === \"[DONE]\") {\n                            console.log(\"Stream ended with [DONE]\");\n                            continue; \/\/ \u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u0458\u0442\u0435 \u0433\u043e [DONE] \u0442\u043e\u043a\u0435\u043d\u043e\u0442\n                        }\n                        if (jsonString) {\n                            try {\n                                const data = JSON.parse(jsonString);\n                                if (data.choices && data.choices[0] && data.choices[0].delta && data.choices[0].delta.content) {\n                                    const partialResponse = data.choices[0].delta.content;\n                                    botResponse += partialResponse;\n                                    \/\/ \u0410\u0436\u0443\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0442 \u0441\u043e \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0442 \u043d\u0430 \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u043e\u0442\n                                    messageElement.innerText = botResponse;\n                                    container.scrollTop = container.scrollHeight;\n                                }\n                            } catch (error) {\n                                console.error(\"Error parsing JSON:\", error);\n                                console.error(\"JSON String:\", jsonString);\n                            }\n                        }\n                    }\n                }\n            }\n\n            stopRequested = false;\n            return botResponse;\n        }\n\n        window.stopResponse = function() {\n            stopRequested = true;\n        }\n\n        window.pasteContext = function() {\n            \/\/ \u0421\u043e\u0431\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0441\u0438\u0442\u0435 \u043f\u043e\u0440\u0430\u043a\u0438 \u043e\u0434 \u0434\u0438\u0458\u0430\u043b\u043e\u0433\u043e\u0442\n            let allMessages = \"\";\n            summaryContainer.querySelectorAll('.message').forEach(message => {\n                allMessages += message.innerText + \"\\n\";\n            });\n            \/\/ \u041f\u0430\u0441\u0442\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0458\u0430\u0442\u0430 \u0432\u043e \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u043e\u0442\u043e \u043f\u043e\u043b\u0435 \u0437\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\n            conversationContext.value = allMessages;\n            alert(\"\u0418\u0441\u0442\u043e\u0440\u0438\u0458\u0430\u0442\u0430 \u0435 \u0437\u0430\u043b\u0435\u043f\u0435\u043d\u0430 \u0432\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442.\");\n        }\n\n        window.copyContent = function(containerId) {\n            const container = document.getElementById(containerId);\n            const tempTextArea = document.createElement(\"textarea\");\n            tempTextArea.value = container.innerText;\n            document.body.appendChild(tempTextArea);\n            tempTextArea.select();\n            document.execCommand('copy');\n            document.body.removeChild(tempTextArea);\n            alert(\"\u0421\u043e\u0434\u0440\u0436\u0438\u043d\u0430\u0442\u0430 \u0435 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0430.\");\n        }\n\n        window.clearTextArea = function() {\n            conversationContext.value = '';\n        }\n\n        window.clearContext = function() {\n            if (confirm(\"\u0414\u0430\u043b\u0438 \u0441\u0442\u0435 \u0441\u0438\u0433\u0443\u0440\u043d\u0438 \u0434\u0435\u043a\u0430 \u0441\u0430\u043a\u0430\u0442\u0435 \u0434\u0430 \u0433\u043e \u0438\u0437\u0431\u0440\u0438\u0448\u0435\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0442 \u043e\u0434 \u043b\u043e\u043a\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0435\u043c\u043e\u0440\u0438\u0458\u0430?\")) {\n                localStorage.removeItem('chatContext');\n                conversationContext.value = '';\n                alert(\"\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0442 \u0435 \u0438\u0437\u0431\u0440\u0438\u0448\u0430\u043d.\");\n            }\n        }\n\n        function addMessageToContainer(container, message, className) {\n            const messageElement = document.createElement('div');\n            messageElement.className = `message ${className}`;\n            messageElement.innerText = message;\n                        container.appendChild(messageElement);\n            container.scrollTop = container.scrollHeight;\n        }\n\n        window.resetDialog = function() {\n            summaryContainer.innerHTML = '';\n            context = {\n                previousMessages: [{ role: 'system', content: '\u041c\u043e\u043b\u0430\u043c \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u0438 \u043d\u0430 \u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 \u0458\u0430\u0437\u0438\u043a. \u041e\u0434\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u0442\u0440\u0435\u0431\u0430 \u0434\u0430 \u0431\u0438\u0434\u0430\u0442 \u0434\u0435\u0442\u0430\u043b\u043d\u0438 \u0438 \u043f\u0440\u043e\u0448\u0438\u0440\u0435\u043d\u0438.' }]\n            };\n            localStorage.removeItem('chatContext');\n            console.log(\"Context reset:\", context);\n            alert(\"\u0418\u0441\u0442\u043e\u0440\u0438\u0458\u0430\u0442\u043e\u0442 \u043d\u0430 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0442 \u0435 \u0440\u0435\u0441\u0435\u0442\u0438\u0440\u0430\u043d.\");\n        }\n\n        window.toggleEditMode = function(containerId) {\n            const container = document.getElementById(containerId);\n            const isEditable = container.contentEditable === \"true\";\n            container.contentEditable = !isEditable;\n            alert(isEditable ? \"\u0423\u0440\u0435\u0434\u0443\u0432\u0430\u045a\u0435\u0442\u043e \u0435 \u0438\u0441\u043a\u043b\u0443\u0447\u0435\u043d\u043e.\" : \"\u0423\u0440\u0435\u0434\u0443\u0432\u0430\u045a\u0435\u0442\u043e \u0435 \u0432\u043a\u043b\u0443\u0447\u0435\u043d\u043e.\");\n        }\n\n        const resizer = document.getElementById('resizer');\n        const leftWindow = document.getElementById('summary-window');\n        const rightWindow = document.getElementById('new-window');\n        let isResizing = false;\n\n        resizer.addEventListener('mousedown', function (e) {\n            isResizing = true;\n            document.addEventListener('mousemove', resize);\n            document.addEventListener('mouseup', stopResize);\n        });\n\n        function resize(e) {\n            if (!isResizing) return;\n            const containerOffset = document.querySelector('.container').offsetLeft;\n            const resizerOffset = e.clientX - containerOffset;\n            leftWindow.style.width = resizerOffset + 'px';\n            rightWindow.style.width = (document.querySelector('.container').offsetWidth - resizerOffset - 5) + 'px'; \/\/ 5px \u0435 \u0448\u0438\u0440\u0438\u043d\u0430\u0442\u0430 \u043d\u0430 \u0440\u0435\u0441\u0430\u0458\u0437\u0435\u0440\u043e\u0442\n        }\n\n        function stopResize() {\n            isResizing = false;\n            document.removeEventListener('mousemove', resize);\n            document.removeEventListener('mouseup', stopResize);\n        }\n\n        \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0437\u0430 \u043a\u043e\u043f\u0447\u0438\u045a\u0430\u0442\u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u0438\u043e\u0442 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446\n        window.summarizeChat = async function() {\n            try {\n                const summary = await summarizeDialogue();\n                addMessageToContainer(newContainer, \"\u0421\u0443\u043c\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0434\u0438\u0458\u0430\u043b\u043e\u0433\u043e\u0442: \" + summary, 'bot-message');\n            } catch (error) {\n                console.error(\"Error summarizing chat:\", error);\n                addMessageToContainer(newContainer, \"\u0413\u0440\u0435\u0448\u043a\u0430: \" + error.message, 'error-message');\n            }\n        }\n\n        window.createOutline = async function() {\n            try {\n                const outline = await createOutlineFromDialogue();\n                addMessageToContainer(newContainer, \"Outline: \" + outline, 'bot-message');\n            } catch (error) {\n                console.error(\"Error creating outline:\", error);\n                addMessageToContainer(newContainer, \"\u0413\u0440\u0435\u0448\u043a\u0430: \" + error.message, 'error-message');\n            }\n        }\n\n        window.createArticle = async function() {\n            try {\n                const article = await createArticleFromDialogue();\n                addMessageToContainer(newContainer, \"\u0421\u0442\u0430\u0442\u0438\u0458\u0430: \" + article, 'bot-message');\n            } catch (error) {\n                console.error(\"Error creating article:\", error);\n                addMessageToContainer(newContainer, \"\u0413\u0440\u0435\u0448\u043a\u0430: \" + error.message, 'error-message');\n            }\n        }\n\n        window.saveAs = function() {\n            const textToSave = Array.from(newContainer.querySelectorAll('.message'))\n                .map(child => child.innerText)\n                .join(\"\\n\");\n            const blob = new Blob([textToSave], { type: \"text\/plain;charset=utf-8\" });\n            const link = document.createElement(\"a\");\n            link.href = URL.createObjectURL(blob);\n            link.download = \"products.txt\";\n            document.body.appendChild(link);\n            link.click();\n            document.body.removeChild(link);\n        }\n\n        window.clearProducts = function() {\n            newContainer.innerHTML = '';\n        }\n\n        window.sendCustomPrompt = async function() {\n            const customPrompt = document.getElementById('custom-prompt').value;\n            if (customPrompt.trim() === '') {\n                alert('\u0412\u0435 \u043c\u043e\u043b\u0438\u043c\u0435 \u0432\u043d\u0435\u0441\u0435\u0442\u0435 \u043f\u0440\u0438\u043b\u0430\u0433\u043e\u0434\u0435\u043d \u043f\u0440\u043e\u043c\u043f\u0442.');\n                return;\n            }\n\n            try {\n                const response = await getBotResponse(customPrompt, newContainer);\n            } catch (error) {\n                console.error(\"Error sending custom prompt:\", error);\n                addMessageToContainer(newContainer, \"\u0413\u0440\u0435\u0448\u043a\u0430: \" + error.message, 'error-message');\n            }\n        }\n\n        async function summarizeDialogue() {\n            const requestBody = JSON.stringify({\n                model: \"gpt-4o-2024-08-06\",\n                messages: context.previousMessages.concat([\n                    { role: 'user', content: \"\u0421\u0443\u043c\u0438\u0440\u0430\u0458 \u0433\u043e \u043e\u0432\u043e\u0458 \u0434\u0438\u0458\u0430\u043b\u043e\u0433 \u0432\u0438 \u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0433\u043b\u0430\u0432\u043d\u0438 \u043f\u043e\u0435\u043d\u0442\u0438.\" },\n                    { role: 'user', content: conversationContext.value.trim() }\n                ]),\n                max_tokens: 16000,\n                stream: true\n            });\n\n            const response = await fetch('https:\/\/api.openai.com\/v1\/chat\/completions', {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                    'Authorization': `Bearer ${apiKey}`\n                },\n                body: requestBody\n            });\n\n            if (!response.ok) {\n                const errorText = await response.text();\n                console.error(\"API response:\", errorText);\n                throw new Error('Network response was not ok');\n            }\n\n            const reader = response.body.getReader();\n            const decoder = new TextDecoder('utf-8');\n            let summary = '';\n\n            \/\/ \u041a\u0440\u0435\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0435\u043b\u0435\u043c\u0435\u043d\u0442 \u0437\u0430 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0442 \u043d\u0430 \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u043e\u0442\n            const messageElement = document.createElement('div');\n            messageElement.className = `message bot-message`;\n            newContainer.appendChild(messageElement);\n\n            while (true) {\n                const { value, done } = await reader.read();\n                if (done) break;\n                const chunk = decoder.decode(value, { stream: true });\n                const lines = chunk.split('\\n').filter(Boolean);\n                for (const line of lines) {\n                    if (line.startsWith('data: ')) {\n                        const jsonString = line.slice(6).trim();\n                        if (jsonString === \"[DONE]\") {\n                            console.log(\"Stream ended with [DONE]\");\n                            continue; \/\/ \u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u0458\u0442\u0435 \u0433\u043e [DONE] \u0442\u043e\u043a\u0435\u043d\u043e\u0442\n                        }\n                        if (jsonString) {\n                            try {\n                                const data = JSON.parse(jsonString);\n                                if (data.choices && data.choices[0] && data.choices[0].delta && data.choices[0].delta.content) {\n                                    const partialSummary = data.choices[0].delta.content;\n                                    summary += partialSummary;\n                                    \/\/ \u0410\u0436\u0443\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0442 \u0441\u043e \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0442 \u043d\u0430 \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u043e\u0442\n                                    messageElement.innerText = summary;\n                                    newContainer.scrollTop = newContainer.scrollHeight;\n                                }\n                            } catch (error) {\n                                console.error(\"Error parsing JSON:\", error);\n                                console.error(\"JSON String:\", jsonString);\n                            }\n                        }\n                    }\n                }\n            }\n\n            return summary;\n        }\n\n        async function createOutlineFromDialogue() {\n            const requestBody = JSON.stringify({\n                model: \"gpt-4o-2024-08-06\",\n                messages: context.previousMessages.concat([\n                    { role: 'user', content: \"\u041d\u0430\u043f\u0440\u0430\u0432\u0438 outline \u0437\u0430 \u0441\u0442\u0430\u0442\u0438\u0458\u0430 \u043e\u0434 \u043e\u0432\u043e\u0458 \u0434\u0438\u0458\u0430\u043b\u043e\u0433.\" },\n                    { role: 'user', content: conversationContext.value.trim() }\n                ]),\n                max_tokens: 16000,\n                stream: true\n            });\n\n            const response = await fetch('https:\/\/api.openai.com\/v1\/chat\/completions', {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                    'Authorization': `Bearer ${apiKey}`\n                },\n                body: requestBody\n            });\n\n            if (!response.ok) {\n                const errorText = await response.text();\n                console.error(\"API response:\", errorText);\n                throw new Error('Network response was not ok');\n            }\n\n            const reader = response.body.getReader();\n            const decoder = new TextDecoder('utf-8');\n            let outline = '';\n\n            \/\/ \u041a\u0440\u0435\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0435\u043b\u0435\u043c\u0435\u043d\u0442 \u0437\u0430 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0442 \u043d\u0430 \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u043e\u0442\n            const messageElement = document.createElement('div');\n            messageElement.className = `message bot-message`;\n            newContainer.appendChild(messageElement);\n\n            while (true) {\n                const { value, done } = await reader.read();\n                if (done) break;\n                const chunk = decoder.decode(value, { stream: true });\n                const lines = chunk.split('\\n').filter(Boolean);\n                for (const line of lines) {\n                    if (line.startsWith('data: ')) {\n                        const jsonString = line.slice(6).trim();\n                        if (jsonString === \"[DONE]\") {\n                            console.log(\"Stream ended with [DONE]\");\n                            continue; \/\/ \u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u0458\u0442\u0435 \u0433\u043e [DONE] \u0442\u043e\u043a\u0435\u043d\u043e\u0442\n                        }\n                        if (jsonString) {\n                            try {\n                                const data = JSON.parse(jsonString);\n                                if (data.choices && data.choices[0] && data.choices[0].delta && data.choices[0].delta.content) {\n                                    const partialOutline = data.choices[0].delta.content;\n                                    outline += partialOutline;\n                                    \/\/ \u0410\u0436\u0443\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0442 \u0441\u043e \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0442 \u043d\u0430 \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u043e\u0442\n                                    messageElement.innerText = outline;\n                                    newContainer.scrollTop = newContainer.scrollHeight;\n                                }\n                            } catch (error) {\n                                console.error(\"Error parsing JSON:\", error);\n                                console.error(\"JSON String:\", jsonString);\n                            }\n                        }\n                    }\n                }\n            }\n\n            return outline;\n        }\n\n        async function createArticleFromDialogue() {\n            const requestBody = JSON.stringify({\n                model: \"gpt-4o-2024-08-06\",\n                messages: context.previousMessages.concat([\n                    { role: 'user', content: \"\u041d\u0430\u043f\u0438\u0448\u0438 \u0430\u043a\u0430\u0434\u0435\u043c\u0441\u043a\u0430 \u0441\u0442\u0430\u0442\u0438\u0458\u0430 \u0431\u0430\u0437\u0438\u0440\u0430\u043d\u0430 \u043d\u0430 \u043e\u0432\u043e\u0458 \u0434\u0438\u0458\u0430\u043b\u043e\u0433.\" },\n                    { role: 'user', content: conversationContext.value.trim() }\n                ]),\n                max_tokens: 16000,\n                stream: true\n            });\n\n            const response = await fetch('https:\/\/api.openai.com\/v1\/chat\/completions', {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                    'Authorization': `Bearer ${apiKey}`\n                },\n                body: requestBody\n            });\n\n            if (!response.ok) {\n                const errorText = await response.text();\n                console.error(\"API response:\", errorText);\n                throw new Error('Network response was not ok');\n            }\n\n            const reader = response.body.getReader();\n            const decoder = new TextDecoder('utf-8');\n            let article = '';\n\n            \/\/ \u041a\u0440\u0435\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0435\u043b\u0435\u043c\u0435\u043d\u0442 \u0437\u0430 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0442 \u043d\u0430 \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u043e\u0442\n            const messageElement = document.createElement('div');\n            messageElement.className = `message bot-message`;\n            newContainer.appendChild(messageElement);\n\n            while (true) {\n                const { value, done } = await reader.read();\n                if (done) break;\n                const chunk = decoder.decode(value, { stream: true });\n                const lines = chunk.split('\\n').filter(Boolean);\n                for (const line of lines) {\n                    if (line.startsWith('data: ')) {\n                        const jsonString = line.slice(6).trim();\n                        if (jsonString === \"[DONE]\") {\n                            console.log(\"Stream ended with [DONE]\");\n                            continue; \/\/ \u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u0458\u0442\u0435 \u0433\u043e [DONE] \u0442\u043e\u043a\u0435\u043d\u043e\u0442\n                        }\n                        if (jsonString) {\n                            try {\n                                const data = JSON.parse(jsonString);\n                                if (data.choices && data.choices[0] && data.choices[0].delta && data.choices[0].delta.content) {\n                                    const partialArticle = data.choices[0].delta.content;\n                                    article += partialArticle;\n                                    \/\/ \u0410\u0436\u0443\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0442 \u0441\u043e \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0442 \u043d\u0430 \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u043e\u0442\n                                    messageElement.innerText = article;\n                                    newContainer.scrollTop = newContainer.scrollHeight;\n                                }\n                            } catch (error) {\n                                console.error(\"Error parsing JSON:\", error);\n                                console.error(\"JSON String:\", jsonString);\n                            }\n                        }\n                    }\n                }\n            }\n\n            return article;\n        }\n    });\n    <\/script>\n    \n\n\n\n<h2 class=\"wp-block-heading has-primary-color has-text-color has-link-color wp-elements-7d1e6cb34428290e0636dff4b1d497fd\">\u0410\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u0437\u0430 \u0423\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0414\u0438\u0458\u0430\u043b\u043e\u0437\u0438 \u0438 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u0441\u043e \u041c\u0435\u043c\u043e\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u0412\u043e\u0432\u0435\u0434<\/h3>\n\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-79a976427f7abab3957e7b7dec0e0594\">A\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0434\u0438\u0458\u0430\u043b\u043e\u0437\u0438 \u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u0441\u043e \u043c\u0435\u043c\u043e\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u0435\u0442\u0441\u0442\u0430\u0432\u0443\u0432\u0430 \u0438\u043d\u043e\u0432\u0430\u0442\u0438\u0432\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u0430 \u043d\u0430 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u0442\u0435. \u041e\u0432\u0430\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u043e\u0432\u043e\u0437\u043c\u043e\u0436\u0443\u0432\u0430 \u0435\u0444\u0438\u043a\u0430\u0441\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0434\u0438\u0458\u0430\u043b\u043e\u0437\u0438\u0442\u0435 \u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438\u0442\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438, \u0441\u043e \u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u0437\u0430 \u043c\u0435\u043c\u043e\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0442. \u0418\u0441\u0442\u043e \u0442\u0430\u043a\u0430, \u043e\u043d\u0430 \u0448\u0442\u043e \u0458\u0430 \u043f\u0440\u0430\u0432\u0438 \u043e\u0432\u0430\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u0443\u043d\u0438\u043a\u0430\u0442\u043d\u0430 \u0435 \u043d\u0435\u0458\u0437\u0438\u043d\u0430\u0442\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442 \u0434\u0430 \u0433\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0430 \u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0430 \u0434\u0438\u0458\u0430\u043b\u043e\u0437\u0438\u0442\u0435 \u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438\u0442\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438, \u0448\u0442\u043e \u043e\u0432\u043e\u0437\u043c\u043e\u0436\u0443\u0432\u0430 \u043f\u043e\u0434\u043e\u0431\u0440\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u045a\u0435 \u0438 \u0441\u043e\u0433\u043b\u0435\u0434\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435 \u043d\u0430 \u043a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435. \u0421\u043e \u043a\u043e\u0440\u0438\u0441\u0442\u0435\u045a\u0435 \u043d\u0430 \u043e\u0432\u0430\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430, \u043a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u0438\u043c\u0430\u0430\u0442 \u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u0434\u0430 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442 \u0441\u0432\u043e\u0458\u0430\u0442\u0430 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u0438 \u0434\u0430 \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u0430\u0442 \u0441\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u0442\u0435 \u043d\u0430 \u0435\u0434\u043d\u043e \u0435\u0434\u043d\u043e\u0441\u0442\u0430\u0432\u043d\u043e \u0438 \u0435\u0444\u0438\u043a\u0430\u0441\u043d\u043e \u043d\u0438\u0432\u043e. \u041e\u0432\u043e\u0458 \u0432\u0438\u0434 \u043d\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u0438\u0434\u0435 \u043e\u0434 \u043a\u043e\u0440\u0438\u0441\u0442 \u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u0438 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0438 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u0443\u0434\u0435\u0458\u045c\u0438 \u0438\u043c \u043d\u043e\u0432\u0438 \u043d\u0430\u0447\u0438\u043d\u0438 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u0442\u0435 \u0438 \u043f\u043e\u0434\u043e\u0431\u0440\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430. \u0412\u043e \u0446\u0435\u043b\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442, \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0434\u0438\u0458\u0430\u043b\u043e\u0437\u0438 \u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u0441\u043e \u043c\u0435\u043c\u043e\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u0435\u0442\u0441\u0442\u0430\u0432\u0443\u0432\u0430 \u043e\u0434\u043b\u0438\u0447\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u0430\u0442\u0430 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0458\u0430 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u0442\u0435.<\/p>\n\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-4410e461a93ba413f97c1e2b24cdbea6\">\u041c\u0435\u043c\u043e\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0434\u0438\u0458\u0430\u043b\u043e\u0433\u043e\u0442 \u0432\u043e \u0433\u043b\u043e\u0431\u0430\u043b\u0435\u043d \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442:&nbsp;\u0426\u0435\u043b\u043e\u043a\u0443\u043f\u043d\u0438\u043e\u0442 \u0434\u0438\u0458\u0430\u043b\u043e\u0433 \u0441\u0435 \u043c\u0435\u043c\u043e\u0440\u0438\u0440\u0430 \u0432\u043e \u0433\u043b\u043e\u0431\u0430\u043b\u0435\u043d \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0438 \u0441\u0435 \u043a\u043e\u0440\u0438\u0441\u0442\u0438 \u043f\u0440\u0438 \u0441\u0435\u043a\u043e\u0458\u0430 \u043d\u0430\u0440\u0435\u0434\u043d\u0430 \u0441\u0435\u0441\u0438\u0458\u0430. \u041e\u0432\u0430 \u043e\u0432\u043e\u0437\u043c\u043e\u0436\u0443\u0432\u0430 \u043a\u043e\u043d\u0442\u0438\u043d\u0443\u0438\u0442\u0435\u0442 \u0438 \u043a\u043e\u0445\u0435\u0440\u0435\u043d\u0442\u043d\u043e\u0441\u0442 \u0432\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435. \u041a\u043e\u0433\u0430 \u045c\u0435 \u0433\u043e \u0438\u0437\u0431\u0440\u0438\u0448\u0435\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0442 \u043e\u0434 \u043b\u043e\u043a\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0435\u043c\u043e\u0440\u0438\u0458\u0430, \u0446\u0435\u043b\u0438\u043e\u0442 \u0437\u0430\u0447\u0443\u0432\u0430\u043d \u0434\u0438\u0458\u0430\u043b\u043e\u0433 \u0441\u0435 \u0431\u0440\u0438\u0448\u0435. \u041e\u0432\u0430 \u0441\u0435 \u043f\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0432\u0430 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u274c\u201d.<\/p>\n\n\n\n<p>\u041d\u0430\u0448\u0430\u0442\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u0435 \u0434\u0438\u0437\u0430\u0458\u043d\u0438\u0440\u0430\u043d\u0430 \u0437\u0430 \u0434\u0430 \u043f\u043e\u043c\u043e\u0433\u043d\u0435 \u0432\u043e \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0434\u0438\u0458\u0430\u043b\u043e\u0437\u0438 \u0438 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438, \u043a\u043e\u0440\u0438\u0441\u0442\u0435\u0458\u045c\u0438 \u043d\u0430\u043f\u0440\u0435\u0434\u043d\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0437\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 \u043f\u0440\u0438\u0440\u043e\u0434\u0435\u043d \u0458\u0430\u0437\u0438\u043a \u043f\u0440\u0435\u043a\u0443 OpenAI API. \u0421\u043e \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u0435\u043d \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0458\u0441 \u0438 \u043d\u0430\u043f\u0440\u0435\u0434\u043d\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043e\u0432\u0430\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u0458\u0430 \u043e\u043b\u0435\u0441\u043d\u0443\u0432\u0430 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u0438 \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435\u0442\u043e \u0441\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0412\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435 \u043e\u043f\u0438\u0448\u0430\u043d\u0438 \u043a\u043b\u0443\u0447\u043d\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u0423\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0434\u0438\u0458\u0430\u043b\u043e\u0437\u0438<\/li>\n<\/ol>\n\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-9e960eda239043eda2c013744053953a\">\u0412\u043d\u0435\u0441\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u043f\u043e\u0440\u0430\u043a\u0438:&nbsp;\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043c\u043e\u0436\u0430\u0442 \u0434\u0430 \u0432\u043d\u0435\u0441\u0443\u0432\u0430\u0430\u0442 \u043f\u043e\u0440\u0430\u043a\u0438 \u0437\u0430 \u0441\u0443\u043c\u0438\u0440\u0430\u045a\u0435 \u0432\u043e \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u043e\u0442\u043e \u043f\u043e\u043b\u0435 \u0438 \u0434\u0430 \u0433\u0438 \u0438\u0441\u043f\u0440\u0430\u045c\u0430\u0430\u0442 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u0418\u0441\u043f\u0440\u0430\u0442\u0438\u201d.<\/p>\n\n\n\n<p>\u0421\u0442\u043e\u043f\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u043e\u0434\u0433\u043e\u0432\u043e\u0440:&nbsp;\u0410\u043a\u043e \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u043e\u0442 \u043e\u0434 \u0431\u043e\u0442\u043e\u0442 \u0435 \u043f\u0440\u0435\u0434\u043e\u043b\u0433, \u043a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043c\u043e\u0436\u0430\u0442 \u0434\u0430 \u0433\u043e \u0441\u0442\u043e\u043f\u0438\u0440\u0430\u0430\u0442 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u0421\u0442\u043e\u043f\u201d.<\/p>\n\n\n\n<p>\u0417\u0430\u043b\u0435\u043f\u0438 \u0434\u0438\u0458\u0430\u043b\u043e\u0433 \u0432\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442:&nbsp;\u0426\u0435\u043b\u043e\u0441\u043d\u0438\u043e\u0442 \u0434\u0438\u0458\u0430\u043b\u043e\u0433 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043b\u0435\u043f\u0438 \u0432\u043e \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u043e\u0442\u043e \u043f\u043e\u043b\u0435 \u0437\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u0417\u0430\u043b\u0435\u043f\u0438 \u0434\u0438\u0458\u0430\u043b\u043e\u0433 \u0432\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u201d.<\/p>\n\n\n\n<p>\u0420\u0435\u0441\u0435\u0442\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0434\u0438\u0458\u0430\u043b\u043e\u0433:&nbsp;\u0421\u0438\u0442\u0435 \u043f\u043e\u0440\u0430\u043a\u0438 \u043e\u0434 \u0434\u0438\u0458\u0430\u043b\u043e\u0433\u043e\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0435\u0442\u0438\u0440\u0430\u0430\u0442 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u0420\u0435\u0441\u0435\u0442\u0438\u0440\u0430\u0458 \u0434\u0438\u0458\u0430\u043b\u043e\u0433\u201d.<\/p>\n\n\n\n<p>\u041a\u043e\u043f\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0434\u0438\u0458\u0430\u043b\u043e\u0433:&nbsp;\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043c\u043e\u0436\u0430\u0442 \u0434\u0430 \u0433\u043e \u043a\u043e\u043f\u0438\u0440\u0430\u0430\u0442 \u0434\u0438\u0458\u0430\u043b\u043e\u0433\u043e\u0442 \u0432\u043e \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\ud83d\udccb\u201d.<\/p>\n\n\n\n<p>\u0423\u0440\u0435\u0434\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u0434\u0438\u0458\u0430\u043b\u043e\u0433:&nbsp;\u0414\u0438\u0458\u0430\u043b\u043e\u0433\u043e\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0443\u0440\u0435\u0434\u0443\u0432\u0430 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u270f\ufe0f\u201d.<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u0423\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438<\/li>\n<\/ol>\n\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-07ebf077ecfa8ff696a490fb840f9d2c\">\u0421\u0443\u043c\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0434\u0438\u0458\u0430\u043b\u043e\u0433:&nbsp;\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043c\u043e\u0436\u0430\u0442 \u0434\u0430 \u0441\u0443\u043c\u0438\u0440\u0430\u0430\u0442 \u0446\u0435\u043b\u043e\u0441\u0435\u043d \u0434\u0438\u0458\u0430\u043b\u043e\u0433 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u0421\u0443\u043c\u0438\u0440\u0430\u0458 \u0434\u0438\u0458\u0430\u043b\u043e\u0433\u201d.<\/p>\n\n\n\n<p>\u041a\u0440\u0435\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 Outline:&nbsp;\u041c\u043e\u0436\u043d\u043e\u0441\u0442 \u0437\u0430 \u043a\u0440\u0435\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 outline \u043e\u0434 \u0434\u0438\u0458\u0430\u043b\u043e\u0433\u043e\u0442 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u041d\u0430\u043f\u0440\u0430\u0432\u0438 Outline\u201d.<\/p>\n\n\n\n<p>\u041a\u0440\u0435\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0458\u0430:&nbsp;\u041c\u043e\u0436\u043d\u043e\u0441\u0442 \u0437\u0430 \u043a\u0440\u0435\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0446\u0435\u043b\u043e\u0441\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0458\u0430 \u043e\u0434 \u0434\u0438\u0458\u0430\u043b\u043e\u0433\u043e\u0442 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u041d\u0430\u043f\u0440\u0430\u0432\u0438 \u0421\u0442\u0430\u0442\u0438\u0458\u0430\u201d.<\/p>\n\n\n\n<p>\u0421\u043d\u0438\u043c\u0430\u045a\u0435 \u043d\u0430 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438:&nbsp;\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043c\u043e\u0436\u0430\u0442 \u0434\u0430 \u0433\u0438 \u0441\u043d\u0438\u043c\u0430\u0430\u0442 \u0441\u0438\u0442\u0435 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u0432\u043e \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u0435\u043d \u0444\u0430\u0458\u043b \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u0421\u043d\u0438\u043c\u0438 \u043a\u0430\u043a\u043e\u201d.<\/p>\n\n\n\n<p>\u0411\u0440\u0438\u0448\u0435\u045a\u0435 \u043d\u0430 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438:&nbsp;\u041c\u043e\u0436\u043d\u043e\u0441\u0442 \u0437\u0430 \u0431\u0440\u0438\u0448\u0435\u045a\u0435 \u043d\u0430 \u0441\u0438\u0442\u0435 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u0418\u0437\u0431\u0440\u0438\u0448\u0438\u201d.<\/p>\n\n\n\n<p>\u041a\u043e\u043f\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438:&nbsp;\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043c\u043e\u0436\u0430\u0442 \u0434\u0430 \u0433\u0438 \u043a\u043e\u043f\u0438\u0440\u0430\u0430\u0442 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438\u0442\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u0432\u043e \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\ud83d\udccb\u201d.<\/p>\n\n\n\n<p>\u0423\u0440\u0435\u0434\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438:&nbsp;\u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438\u0442\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0443\u0440\u0435\u0434\u0443\u0432\u0430\u0430\u0442 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u270f\ufe0f\u201d.<\/p>\n\n\n\n<p>\u0418\u0441\u043f\u0440\u0430\u045c\u0430\u045a\u0435 \u043d\u0430 \u043f\u0440\u0438\u043b\u0430\u0433\u043e\u0434\u0435\u043d \u043f\u0440\u043e\u043c\u043f\u0442:&nbsp;\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043c\u043e\u0436\u0430\u0442 \u0434\u0430 \u0432\u043d\u0435\u0441\u0430\u0442 \u043f\u0440\u0438\u043b\u0430\u0433\u043e\u0434\u0435\u043d \u043f\u0440\u043e\u043c\u043f\u0442 \u0438 \u0434\u0430 \u0433\u043e \u0438\u0441\u043f\u0440\u0430\u0442\u0430\u0442 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u0418\u0441\u043f\u0440\u0430\u0442\u0438 \u041f\u0440\u043e\u043c\u043f\u0442\u201d.<\/p>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u0423\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0442<\/li>\n<\/ol>\n\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-bd0402130895a66b954aac55bce2bd91\">\u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u043e \u043f\u043e\u043b\u0435 \u0437\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442:&nbsp;\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043c\u043e\u0436\u0430\u0442 \u0434\u0430 \u0432\u043d\u0435\u0441\u0443\u0432\u0430\u0430\u0442 \u0438\u043b\u0438 \u043f\u0430\u0441\u0442\u0438\u0440\u0430\u0430\u0442 \u0442\u0435\u043a\u0441\u0442 \u0432\u043e \u043f\u043e\u043b\u0435\u0442\u043e \u0437\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442. \u041f\u043e\u043b\u0435\u0442\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0441\u043a\u0438 \u043f\u0440\u0435\u043c\u0438\u043d\u0443\u0432\u0430 \u0432\u043e \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u0443\u0440\u0435\u0434\u0443\u0432\u0430\u045a\u0435 \u043a\u043e\u0433\u0430 \u0441\u0435 \u043a\u043b\u0438\u043a\u043d\u0435 \u043d\u0430 \u043d\u0435\u0433\u043e.<\/p>\n\n\n\n<p>\u041a\u043e\u043f\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442:&nbsp;\u041c\u043e\u0436\u043d\u043e\u0441\u0442 \u0437\u0430 \u043a\u043e\u043f\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u0441\u043e\u0434\u0440\u0436\u0438\u043d\u0430\u0442\u0430 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0442 \u0432\u043e \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\ud83d\udccb\u201d.<\/p>\n\n\n\n<p>\u0411\u0440\u0438\u0448\u0435\u045a\u0435 \u043d\u0430 \u0442\u0435\u043a\u043e\u0432\u0435\u043d \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442:&nbsp;\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043c\u043e\u0436\u0430\u0442 \u0434\u0430 \u0433\u043e \u0438\u0437\u0431\u0440\u0438\u0448\u0430\u0442 \u0442\u0435\u043a\u043e\u0432\u043d\u043e \u043d\u0430\u043f\u0438\u0448\u0430\u043d\u0438\u043e\u0442 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0432\u043e \u043f\u043e\u043b\u0435\u0442\u043e \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\ud83d\uddd1\ufe0f\u201d.<\/p>\n\n\n\n<p>\u0411\u0440\u0438\u0448\u0435\u045a\u0435 \u043d\u0430 \u0446\u0435\u043b\u0438\u043e\u0442 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442:&nbsp;\u041c\u043e\u0436\u043d\u043e\u0441\u0442 \u0437\u0430 \u0431\u0440\u0438\u0448\u0435\u045a\u0435 \u043d\u0430 \u0446\u0435\u043b\u0438\u043e\u0442 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043e\u0434 \u043b\u043e\u043a\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0435\u043c\u043e\u0440\u0438\u0458\u0430 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043f\u0447\u0435\u0442\u043e \u201c\u274c\u201d.<\/p>\n\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-1e82f588c33f25ad09448345db5d08d7\">\u041e\u0432\u0430\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u0435 \u043c\u043e\u045c\u043d\u0430 \u0430\u043b\u0430\u0442\u043a\u0430 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0434\u0438\u0458\u0430\u043b\u043e\u0437\u0438 \u0438 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438, \u043e\u0432\u043e\u0437\u043c\u043e\u0436\u0443\u0432\u0430\u0458\u045c\u0438 \u043a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u0434\u0430 \u0433\u0438 \u0441\u0443\u043c\u0438\u0440\u0430\u0430\u0442, \u0443\u0440\u0435\u0434\u0443\u0432\u0430\u0430\u0442, \u043a\u043e\u043f\u0438\u0440\u0430\u0430\u0442 \u0438 \u0441\u043d\u0438\u043c\u0430\u0430\u0442 \u0441\u0432\u043e\u0438\u0442\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438 \u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u043e, \u043c\u0435\u043c\u043e\u0440\u0438\u0440\u0430\u045a\u0435\u0442\u043e \u043d\u0430 \u0434\u0438\u0458\u0430\u043b\u043e\u0433\u043e\u0442 \u0432\u043e \u0433\u043b\u043e\u0431\u0430\u043b\u0435\u043d \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043e\u0432\u043e\u0437\u043c\u043e\u0436\u0443\u0432\u0430 \u043a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u0434\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442 \u0441\u043e \u0441\u0432\u043e\u0438\u0442\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438 \u043e\u0434 \u043a\u0430\u0434\u0435 \u0448\u0442\u043e \u0437\u0430\u0441\u0442\u0430\u043d\u0430\u043b\u0435, \u0434\u0443\u0440\u0438 \u0438 \u043f\u0440\u0438 \u043d\u0430\u0440\u0435\u0434\u043d\u0438\u0442\u0435 \u0441\u0435\u0441\u0438\u0438. \u0411\u0440\u0438\u0448\u0435\u045a\u0435\u0442\u043e \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0435\u043c\u043e\u0440\u0438\u0458\u0430 \u043e\u0432\u043e\u0437\u043c\u043e\u0436\u0443\u0432\u0430 \u043b\u0435\u0441\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0441\u0442\u0430 \u0438 \u0437\u0430\u0447\u0443\u0432\u0430\u043d\u0438\u0442\u0435 \u043f\u043e\u0434\u0430\u0442\u043e\u0446\u0438.\u0430\u0442\u043d\u043e\u0441\u0442\u0430 \u0438 \u0437\u0430\u0447\u0443\u0432\u0430\u043d\u0438\u0442\u0435 \u043f\u043e\u0434\u0430\u0442\u043e\u0446\u0438.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0410\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u0437\u0430 \u0423\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0414\u0438\u0458\u0430\u043b\u043e\u0437\u0438 \u0438 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u0441\u043e \u041c\u0435\u043c\u043e\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0412\u043e\u0432\u0435\u0434 A\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0434\u0438\u0458\u0430\u043b\u043e\u0437\u0438 \u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u0441\u043e \u043c\u0435\u043c\u043e\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u0435\u0442\u0441\u0442\u0430\u0432\u0443\u0432\u0430 \u0438\u043d\u043e\u0432\u0430\u0442\u0438\u0432\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u0430 \u043d\u0430 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u0442\u0435. \u041e\u0432\u0430\u0430 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u043e\u0432\u043e\u0437\u043c\u043e\u0436\u0443\u0432\u0430 \u0435\u0444\u0438\u043a\u0430\u0441\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0434\u0438\u0458\u0430\u043b\u043e\u0437\u0438\u0442\u0435 \u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438\u0442\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438, \u0441\u043e \u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u0437\u0430 \u043c\u0435\u043c\u043e\u0440\u0438\u0440\u0430\u045a\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0442. \u0418\u0441\u0442\u043e \u0442\u0430\u043a\u0430, \u043e\u043d\u0430 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6400,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"slim_seo":{"title":"\u0420\u043e\u0434\u043e\u0432 AICopilot - \u041a\u043e\u0440\u0438\u0441\u0442\u0435\u045a\u0435 \u043d\u0430 \u0432\u0435\u0448\u0442\u0430\u0447\u043a\u0430\u0442\u0430 \u0438\u043d\u0442\u0435\u043b\u0438\u0433\u0435\u043d\u0446\u0438\u0458\u0430 (AI) \u0437\u0430 \u0443\u043d\u0430\u043f\u0440\u0435\u0434\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u0440\u043e\u0434\u043e\u0432\u0430\u0442\u0430 \u0435\u0434\u043d\u0430\u043a\u0432\u043e\u0441\u0442","description":"AICopilot \u0410\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u0437\u0430 \u0423\u043f\u0440\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0441\u043e \u0414\u0438\u0458\u0430\u043b\u043e\u0437\u0438 \u0438 \u0422\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438, \u00a9\u0418\u043d\u0441\u0442\u0438\u0442\u0443\u0442 \u0437\u0430 \u0440\u043e\u0434\u043e\u0432\u0438 \u0441\u0442\u0443\u0434\u0438\u0438, \u0424\u0438\u043b\u043e\u0437\u043e\u0444\u0441\u043a\u0438 \u0444\u0430\u043a\u0443\u043b\u0442\u0435\u0442, \u0421\u043a\u043e\u043f\u0458\u0435 \u0414\u0438\u0458\u0430\u043b\u043e\u0433 \u0418\u0441\u043f\u0440\u0430\u0442\u0438 \u0421\u0442\u043e\u043f \u0417\u0430\u043b\u0435\u043f\u0438 \u0434\u0438\u0458\u0430\u043b"},"footnotes":""},"class_list":["post-6380","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/pages\/6380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/comments?post=6380"}],"version-history":[{"count":12,"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/pages\/6380\/revisions"}],"predecessor-version":[{"id":7372,"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/pages\/6380\/revisions\/7372"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/media\/6400"}],"wp:attachment":[{"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/media?parent=6380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}