

{"id":7676,"date":"2025-02-22T16:35:26","date_gmt":"2025-02-22T16:35:26","guid":{"rendered":"https:\/\/aigender.net\/?page_id=7676"},"modified":"2025-02-23T06:35:29","modified_gmt":"2025-02-23T06:35:29","slug":"resi","status":"publish","type":"page","link":"https:\/\/aigender.net\/index.php\/resi\/","title":{"rendered":"RESI"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"box-shadow:6px 6px 9px rgba(0, 0, 0, 0.2)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:90%\">\n<div class='mwai-chatbot-container' data-params='{&quot;aiName&quot;:&quot;AI: &quot;,&quot;userName&quot;:&quot;User: &quot;,&quot;guestName&quot;:&quot;Guest:&quot;,&quot;textSend&quot;:&quot;Send&quot;,&quot;textClear&quot;:&quot;Clear&quot;,&quot;imageUpload&quot;:true,&quot;fileUpload&quot;:true,&quot;multiUpload&quot;:false,&quot;maxUploads&quot;:1,&quot;fileUploads&quot;:1,&quot;fileSearch&quot;:true,&quot;mode&quot;:&quot;assistant&quot;,&quot;textInputPlaceholder&quot;:&quot;Type your message...&quot;,&quot;textInputMaxLength&quot;:512,&quot;textCompliance&quot;:&quot;&quot;,&quot;startSentence&quot;:&quot;\\u0417\\u0434\\u0440\\u0430\\u0432\\u043e! \\u0408\\u0430\\u0441 \\u0441\\u0443\\u043c \\u0412\\u0418 \\u0435\\u043a\\u0441\\u043f\\u0435\\u0440\\u0442 \\u0437\\u0430 \\u0420\\u0415\\u0421\\u0418. \\u041a\\u0430\\u043a\\u043e \\u0434\\u0430 \\u0432\\u0438 \\u043f\\u043e\\u043c\\u043e\\u0433\\u043d\\u0430\\u043c&quot;,&quot;localMemory&quot;:true,&quot;themeId&quot;:&quot;chatgpt&quot;,&quot;window&quot;:false,&quot;icon&quot;:&quot;&quot;,&quot;iconText&quot;:&quot;&quot;,&quot;iconTextDelay&quot;:1,&quot;iconAlt&quot;:&quot;AI Engine Chatbot&quot;,&quot;iconPosition&quot;:&quot;bottom-right&quot;,&quot;centerOpen&quot;:false,&quot;width&quot;:&quot;&quot;,&quot;openDelay&quot;:&quot;&quot;,&quot;iconBubble&quot;:false,&quot;windowAnimation&quot;:&quot;zoom&quot;,&quot;fullscreen&quot;:false,&quot;copyButton&quot;:false,&quot;pdfButton&quot;:true,&quot;headerSubtitle&quot;:&quot;Discuss with&quot;,&quot;containerType&quot;:&quot;standard&quot;,&quot;headerType&quot;:&quot;standard&quot;,&quot;messagesType&quot;:&quot;standard&quot;,&quot;inputType&quot;:&quot;standard&quot;,&quot;footerType&quot;:&quot;standard&quot;}' data-system='{&quot;botId&quot;:&quot;chatbot-qshhps&quot;,&quot;customId&quot;:null,&quot;userData&quot;:null,&quot;sessionId&quot;:&quot;69f519fd333d9&quot;,&quot;restNonce&quot;:null,&quot;contextId&quot;:null,&quot;pluginUrl&quot;:&quot;https:\\\/\\\/aigender.net\\\/wp-content\\\/plugins\\\/ai-engine-pro&quot;,&quot;restUrl&quot;:&quot;https:\\\/\\\/aigender.net\\\/index.php\\\/wp-json&quot;,&quot;stream&quot;:true,&quot;debugMode&quot;:false,&quot;eventLogs&quot;:false,&quot;speech_recognition&quot;:false,&quot;speech_synthesis&quot;:false,&quot;typewriter&quot;:false,&quot;crossSite&quot;:false,&quot;actions&quot;:[],&quot;blocks&quot;:[],&quot;shortcuts&quot;:[]}' data-theme='{&quot;type&quot;:&quot;internal&quot;,&quot;name&quot;:&quot;ChatGPT&quot;,&quot;themeId&quot;:&quot;chatgpt&quot;,&quot;settings&quot;:[],&quot;style&quot;:&quot;&quot;,&quot;cssUrl&quot;:&quot;https:\\\/\\\/aigender.net\\\/wp-content\\\/plugins\\\/ai-engine-pro\\\/themes\\\/chatgpt.css&quot;}'><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<script>\nvar mwaiButtons = {\n    \"\u0428\u0442\u043e \u0435 \u0420\u0415\u0421\u0418\": \/\/ button text\n    {\n        \"prompt\": \"\u0428\u0442\u043e \u0435 \u0420\u0415\u0421\u0418\", \/\/ the message sent to chatbot\n        \"sees\": \"\u0428\u0442\u043e \u0435 \u0420\u0415\u0421\u0418\" \/\/ the text that appears in chat\n    },\n    \"\u041e\u0431\u0458\u0430\u0441\u043d\u0438 \u0433\u0438 \u0435\u0442\u0430\u043f\u0438\u0442\u0435 \u043d\u0430 \u0420\u0415\u0421\u0418\": \/\/ button text\n    {\n        \"prompt\": \"\u041e\u0431\u0458\u0430\u0441\u043d\u0438 \u0433\u0438 \u0435\u0442\u0430\u043f\u0438\u0442\u0435 \u043d\u0430 \u0420\u0415\u0421\u0418\", \/\/ the message sent to chatbot\n        \"sees\": \"\u041e\u0431\u0458\u0430\u0441\u043d\u0438 \u0433\u0438 \u0435\u0442\u0430\u043f\u0438\u0442\u0435 \u043d\u0430 \u0420\u0415\u0421\u0418\" \/\/ the text that appears in chat\n    },\n    \"\u041f\u0440\u0438\u043a\u0430\u0436\u0438 \u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0442 \u0448\u0442\u043e \u0433\u043e \u043f\u0440\u0438\u043a\u0430\u0447\u0438\u0432 \": \/\/ button text\n    {\n        \"prompt\": \"\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u0458 \u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0442 \u0448\u0442\u043e \u0433\u043e \u043f\u0440\u0438\u043a\u0430\u0447\u0438\u0432. \u043d\u0435 \u0458\u0430 \u0437\u0430\u043f\u043e\u0447\u043d\u0443\u0432\u0430\u0458 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0446\u0438\u0458\u0430\u0442\u0430. \u0441\u0430\u043c\u043e \u043e\u043f\u0448\u0442\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\", \/\/ the message sent to chatbot\n        \"sees\": \"\u041f\u0440\u0438\u043a\u0430\u0436\u0438 \u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0442 \u0448\u0442\u043e \u0433\u043e \u043f\u0440\u0438\u043a\u0430\u0447\u0438\u0432\" \/\/ the text that appears in chat\n    },\n};\n\nfunction generateContextualButtons(responseText) {\n    \/\/ Extract questions or context-relevant actions from the bot's response text\n    let questions = extractQuestions(responseText);\n    let buttons = [];\n    \n    \/\/ Limit to three buttons\n    questions.slice(0, 3).forEach(question => {\n        buttons.push({\n            type: 'message',\n            data: { \n                label: question, \n                message: question, \n                variant: null,\n                icon: null\n            }\n        });\n    });\n    \n    return buttons;\n}\n\nfunction extractQuestions(text) {\n    \/\/ Simple example of extracting questions from text\n    let questions = [];\n    let sentences = text.split(\/(?<!\\w\\.\\w.)(?<![A-Z][a-z]\\.)(?<=\\.|\\?)\\s\/g);\n    sentences.forEach(sentence => {\n        if (sentence.trim().endsWith('?')) {\n            questions.push(sentence.trim());\n        }\n    });\n    return questions;\n}\n\n(function waitForMwaiAPI(startTime) {\n    if (typeof MwaiAPI !== 'undefined' && document.querySelector('.mwai-reply')) {\n        function mwaiSearchReplace(textDiv) {\n            function replaceText(text) {\n                for (let buttonName in mwaiButtons) {\n                    const buttonData = mwaiButtons[buttonName];\n                    text = text.replaceAll(buttonData[\"prompt\"], buttonData[\"sees\"]);\n                }\n                return text;\n            }\n            textDiv.forEach(function(element) {\n                const html = element.innerHTML;\n                const newHtml = replaceText(html);\n                if (html !== newHtml) { element.innerHTML = newHtml; }\n            });\n        }\n        MwaiAPI.chatbots.forEach(chatbot => {\n            \/\/ Set up observer on .mwai-chatbot to look for changes to .mwai-conversation\n            const chatbotElement = document.querySelector('#mwai-chatbot-'+chatbot.botId);\n\n            if (chatbotElement) {\n                function doInitialButtons() {\n                    const textDiv = chatbotElement.querySelectorAll('.mwai-reply');\n                    if (textDiv.length == 1 && !chatbotElement.querySelector(\".mwai-shortcuts\")) {\n                        \/\/ there is only one message in chat - assuming it's the bot's intro message\n                        \/\/ and the buttons have not been added yet\n                        var buttons = [];\n                        for (var buttonText in mwaiButtons) {\n                            var button = mwaiButtons[buttonText];\n                            buttons.push({\n                                type: 'message',\n                                data: { \n                                    label: buttonText, \n                                    message: button.prompt, \n                                    variant: null,\n                                    icon: null\n                                }\n                            });\n                        }\n                        if (buttons.length > 0) { chatbot.setShortcuts(buttons); }\n                    }\n                    mwaiSearchReplace(textDiv);\n                }\n\n                function doContextualButtons() {\n                    const textDiv = chatbotElement.querySelectorAll('.mwai-reply');\n                    if (textDiv.length > 1) {\n                        let lastResponse = textDiv[textDiv.length - 1].innerText;\n                        let buttons = generateContextualButtons(lastResponse);\n                        if (buttons.length > 0) { chatbot.setShortcuts(buttons); }\n                    }\n                    mwaiSearchReplace(textDiv);\n                }\n\n                const conversationObserver = new MutationObserver((mutationsList, observer) => {\n                    for (let mutation of mutationsList) {\n                        if (mutation.type === 'childList') {\n                            doContextualButtons();\n                        }\n                    }\n                });\n                const observerConfig = {\n                    childList: true, \/\/ observe child node changes\n                    subtree: true, \/\/ observe descendants\n                    characterData: true \/\/ observe changes in text content\n                };\n                const conversationElement = chatbotElement.querySelector('.mwai-conversation');\n                if (conversationElement) {\n                    conversationObserver.observe(conversationElement, observerConfig);\n                    doInitialButtons();\n                }\n            }\n        });\n    } else {\n        if (Date.now() - startTime < 3000) {\n            setTimeout(() => waitForMwaiAPI(startTime), 20);\n        }\n    }\n})(Date.now());\n<\/script>\n\n\n\n<script>\nfunction generateContextualButtons(responseText) {\n    \/\/ Extract questions or context-relevant actions from the bot's response text\n    let questions = extractQuestions(responseText);\n    let buttons = [];\n    \n    \/\/ Limit to three buttons\n    questions = questions.slice(0, 3);\n    \n    questions.forEach(question => {\n        buttons.push({\n            type: 'message',\n            data: { \n                label: question, \n                message: question, \n                variant: null,\n                icon: null\n            }\n        });\n    });\n    \n    return buttons;\n}\n\nfunction extractQuestions(text) {\n    \/\/ Simple example of extracting questions from text\n    let questions = [];\n    let sentences = text.split(\/(?<!\\w\\.\\w.)(?<![A-Z][a-z]\\.)(?<=\\.|\\?)\\s\/g);\n    sentences.forEach(sentence => {\n        if (sentence.trim().endsWith('?')) {\n            questions.push(sentence.trim());\n        }\n    });\n    return questions;\n}\n\n(function waitForMwaiAPI(startTime) {\n    if (typeof MwaiAPI !== 'undefined' && document.querySelector('.mwai-reply')) {\n        function mwaiSearchReplace(textDiv) {\n            textDiv.forEach(function(element) {\n                const html = element.innerHTML;\n                const newHtml = html;\n                if (html !== newHtml) { element.innerHTML = newHtml; }\n            });\n        }\n        MwaiAPI.chatbots.forEach(chatbot => {\n            \/\/ Set up observer on .mwai-chatbot to look for changes to .mwai-conversation\n            const chatbotElement = document.querySelector('#mwai-chatbot-'+chatbot.botId);\n\n            if (chatbotElement) {\n                function doButtons() {\n                    const textDiv = chatbotElement.querySelectorAll('.mwai-reply');\n                    if (textDiv.length > 0) {\n                        let lastResponse = textDiv[textDiv.length - 1].innerText;\n                        let buttons = generateContextualButtons(lastResponse);\n                        \n                        if (buttons.length > 0) { chatbot.setShortcuts(buttons); }\n                    }\n                    mwaiSearchReplace(textDiv);\n                }\n                const conversationObserver = new MutationObserver((mutationsList, observer) => {\n                    for (let mutation of mutationsList) {\n                        if (mutation.type === 'childList') {\n                            doButtons();\n                        }\n                    }\n                });\n                const observerConfig = {\n                    childList: true, \/\/ observe child node changes\n                    subtree: true, \/\/ observe descendants\n                    characterData: true \/\/ observe changes in text content\n                };\n                const conversationElement = chatbotElement.querySelector('.mwai-conversation');\n                if (conversationElement) {\n                    conversationObserver.observe(conversationElement, observerConfig);\n                    doButtons();\n                }\n            }\n        });\n    } else {\n        if (Date.now() - startTime < 3000) {\n            setTimeout(() => waitForMwaiAPI(startTime), 20);\n        }\n    }\n})(Date.now());\n<\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"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":"RESI - \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":""},"footnotes":""},"class_list":["post-7676","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/pages\/7676","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=7676"}],"version-history":[{"count":16,"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/pages\/7676\/revisions"}],"predecessor-version":[{"id":7703,"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/pages\/7676\/revisions\/7703"}],"wp:attachment":[{"href":"https:\/\/aigender.net\/index.php\/wp-json\/wp\/v2\/media?parent=7676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}