{"id":43171,"date":"2026-06-12T15:31:48","date_gmt":"2026-06-12T09:31:48","guid":{"rendered":"https:\/\/iacoos.kz\/?page_id=43171"},"modified":"2026-06-17T11:18:38","modified_gmt":"2026-06-17T05:18:38","slug":"ai-assistant","status":"publish","type":"page","link":"https:\/\/old.iacoos.kz\/kz\/ai-assistant","title":{"rendered":"\u0416\u0418 \u041a\u04e9\u043c\u0435\u043a\u0448\u0456\u0441\u0456"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"43171\" class=\"elementor elementor-43171\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ef56546 e-flex e-con-boxed e-con e-parent\" data-id=\"ef56546\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eb0c8c1 elementor-widget elementor-widget-html\" data-id=\"eb0c8c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"iacoos-chat\" style=\"max-width:900px;margin:20px auto;border:1px solid #d6e4f0;border-radius:12px;overflow:hidden;font-family:Arial,sans-serif;box-shadow:0 4px 16px rgba(0,0,0,0.12);\">\r\n\r\n  <div style=\"background:linear-gradient(135deg,#003574,#005a9e);color:white;padding:18px 24px;display:flex;align-items:center;gap:12px;\">\r\n    <div style=\"width:38px;height:38px;background:rgba(255,255,255,0.2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;\">\ud83c\udf3f<\/div>\r\n    <div>\r\n      <div style=\"font-size:16px;font-weight:700;\" id=\"headerTitle\">AI-\u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442 IACOOS<\/div>\r\n      <div style=\"font-size:12px;opacity:0.8;\" id=\"headerSub\">\u042d\u043a\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0440\u0442\u0430\u043b \u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0430<\/div>\r\n    <\/div>\r\n    <div style=\"margin-left:auto;display:flex;gap:6px;\">\r\n      <button onclick=\"setLang('ru')\" id=\"btn-ru\" style=\"padding:5px 12px;border-radius:20px;border:2px solid white;background:white;color:#003574;font-weight:700;cursor:pointer;font-size:12px;\">RU<\/button>\r\n      <button onclick=\"setLang('kz')\" id=\"btn-kz\" style=\"padding:5px 12px;border-radius:20px;border:2px solid rgba(255,255,255,0.5);background:transparent;color:white;font-weight:700;cursor:pointer;font-size:12px;\">KZ<\/button>\r\n      <button onclick=\"setLang('en')\" id=\"btn-en\" style=\"padding:5px 12px;border-radius:20px;border:2px solid rgba(255,255,255,0.5);background:transparent;color:white;font-weight:700;cursor:pointer;font-size:12px;\">EN<\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div style=\"padding:12px 16px;background:#f0f6ff;border-bottom:1px solid #d6e4f0;\">\r\n    <div style=\"font-size:12px;color:#666;margin-bottom:8px;\" id=\"quickLabel\">\u0411\u044b\u0441\u0442\u0440\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b:<\/div>\r\n    <div style=\"display:flex;flex-wrap:wrap;gap:6px;\" id=\"quickBtns\"><\/div>\r\n  <\/div>\r\n\r\n  <div id=\"chatWindow\" style=\"height:420px;overflow-y:auto;background:#f7f9fc;padding:20px;display:flex;flex-direction:column;gap:10px;\"><\/div>\r\n\r\n  <div style=\"padding:14px 16px;border-top:1px solid #d6e4f0;background:white;display:flex;gap:8px;\">\r\n    <input type=\"text\" id=\"userInput\"\r\n      style=\"flex:1;padding:11px 14px;border:1px solid #c5d8f0;border-radius:8px;font-size:14px;outline:none;\"\r\n      onkeypress=\"if(event.key==='Enter')sendMessage();\"\r\n      placeholder=\"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u043e\u043f\u0440\u043e\u0441...\">\r\n    <button onclick=\"sendMessage()\"\r\n      style=\"padding:11px 20px;background:#003574;color:white;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;\">\u27a4<\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n@keyframes blink { 0%,100%{opacity:0.2} 50%{opacity:1} }\r\n<\/style>\r\n\r\n<script>\r\nconst GROQ_PHP_URL = 'https:\/\/iacoos.kz\/groq.php';\r\n\r\nlet currentLang = 'ru';\r\n\r\nconst ui = {\r\n  ru: { header:'AI-\u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442 IACOOS', sub:'\u042d\u043a\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0440\u0442\u0430\u043b \u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0430', quick:'\u0411\u044b\u0441\u0442\u0440\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b:', placeholder:'\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u043e\u043f\u0440\u043e\u0441...', langSwitch:'\u042f\u0437\u044b\u043a \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0451\u043d \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439.', welcome:'\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u042f AI-\u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442 \u044d\u043a\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430\u043b\u0430 \u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0430. \u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u043b\u044e\u0431\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e\u0431 \u044d\u043a\u043e\u043b\u043e\u0433\u0438\u0438, \u0437\u0430\u043a\u043e\u043d\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0435 \u0438\u043b\u0438 \u043f\u0440\u0438\u0440\u043e\u0434\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445.' },\r\n  kz: { header:'IACOOS AI-\u041a\u0435\u04a3\u0435\u0441\u0448\u0456\u0441\u0456', sub:'\u049a\u0430\u0437\u0430\u049b\u0441\u0442\u0430\u043d\u043d\u044b\u04a3 \u044d\u043a\u043e\u043b\u043e\u0433\u0438\u044f\u043b\u044b\u049b \u043f\u043e\u0440\u0442\u0430\u043b\u044b', quick:'\u0416\u044b\u043b\u0434\u0430\u043c \u0441\u04b1\u0440\u0430\u049b\u0442\u0430\u0440:', placeholder:'\u0421\u04b1\u0440\u0430\u0493\u044b\u04a3\u044b\u0437\u0434\u044b \u0435\u043d\u0433\u0456\u0437\u0456\u04a3\u0456\u0437...', langSwitch:'\u0422\u0456\u043b \u049b\u0430\u0437\u0430\u049b \u0442\u0456\u043b\u0456\u043d\u0435 \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u044b\u043b\u0434\u044b.', welcome:'\u0421\u04d9\u043b\u0435\u043c\u0435\u0442\u0441\u0456\u0437 \u0431\u0435! \u041c\u0435\u043d \u049a\u0430\u0437\u0430\u049b\u0441\u0442\u0430\u043d\u043d\u044b\u04a3 \u044d\u043a\u043e\u043b\u043e\u0433\u0438\u044f\u043b\u044b\u049b \u043f\u043e\u0440\u0442\u0430\u043b\u044b\u043d\u044b\u04a3 AI-\u043a\u0435\u04a3\u0435\u0441\u0448\u0456\u0441\u0456\u043c\u0456\u043d. \u042d\u043a\u043e\u043b\u043e\u0433\u0438\u044f, \u0437\u0430\u04a3\u043d\u0430\u043c\u0430 \u043d\u0435\u043c\u0435\u0441\u0435 \u0442\u0430\u0431\u0438\u0493\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0442\u0430\u0440 \u0442\u0443\u0440\u0430\u043b\u044b \u043a\u0435\u0437 \u043a\u0435\u043b\u0433\u0435\u043d \u0441\u04b1\u0440\u0430\u049b \u049b\u043e\u0439\u044b\u04a3\u044b\u0437.' },\r\n  en: { header:'IACOOS AI Assistant', sub:'Kazakhstan Environmental Portal', quick:'Quick questions:', placeholder:'Type your question...', langSwitch:'Language switched to English.', welcome:'Hello! I am the AI consultant of Kazakhstan\\'s Environmental Portal. Ask any question about ecology, legislation or natural resources.' }\r\n};\r\n\r\nconst quickTopics = {\r\n  ru: ['\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0420\u0412\u041f\u0417?','\u041f\u0430\u0440\u043d\u0438\u043a\u043e\u0432\u044b\u0435 \u0433\u0430\u0437\u044b','\u042d\u043a\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u0434\u0435\u043a\u0441','\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0432\u043e\u0437\u0434\u0443\u0445\u0430','\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0434\u044b','\u0410\u0440\u0430\u043b\u044c\u0441\u043a\u043e\u0435 \u043c\u043e\u0440\u0435','\u041e\u0442\u0445\u043e\u0434\u044b','\u0417\u0430\u043f\u043e\u0432\u0435\u0434\u043d\u0438\u043a\u0438 \u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0430','\u041a\u0432\u043e\u0442\u044b \u043d\u0430 \u0432\u044b\u0431\u0440\u043e\u0441\u044b','\u0412\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\u0430\u044f \u044d\u043d\u0435\u0440\u0433\u0438\u044f','\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b IACOOS'],\r\n  kz: ['\u0420\u0428\u0422\u0422 \u0434\u0435\u0433\u0435\u043d\u0456\u043c\u0456\u0437 \u043d\u0435?','\u041f\u0430\u0440\u043d\u0438\u043a\u0442\u0456\u043a \u0433\u0430\u0437\u0434\u0430\u0440','\u042d\u043a\u043e\u043b\u043e\u0433\u0438\u044f\u043b\u044b\u049b \u043a\u043e\u0434\u0435\u043a\u0441','\u0410\u0443\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0456','\u0421\u0443 \u0441\u0430\u043f\u0430\u0441\u044b','\u0410\u0440\u0430\u043b \u0442\u0435\u04a3\u0456\u0437\u0456','\u049a\u0430\u043b\u0434\u044b\u049b\u0442\u0430\u0440','\u049a\u0430\u0437\u0430\u049b\u0441\u0442\u0430\u043d \u049b\u043e\u0440\u044b\u049b\u0442\u0430\u0440\u044b','\u0428\u044b\u0493\u0430\u0440\u044b\u043d\u0434\u044b \u043a\u0432\u043e\u0442\u0430\u043b\u0430\u0440\u044b','\u0416\u0430\u04a3\u0430\u0440\u0442\u044b\u043b\u0430\u0442\u044b\u043d \u044d\u043d\u0435\u0440\u0433\u0438\u044f','IACOOS \u0431\u0430\u0439\u043b\u0430\u043d\u044b\u0441'],\r\n  en: ['What is PRTR?','Greenhouse gases','Environmental Code','Air monitoring','Water quality','Aral Sea','Waste management','Kazakhstan reserves','Emission quotas','Renewable energy','IACOOS contacts']\r\n};\r\n\r\nfunction setLang(lang) {\r\n  currentLang = lang;\r\n  ['ru','kz','en'].forEach(l => {\r\n    const btn = document.getElementById('btn-'+l);\r\n    if (l === lang) { btn.style.background='white'; btn.style.color='#003574'; btn.style.borderColor='white'; }\r\n    else { btn.style.background='transparent'; btn.style.color='white'; btn.style.borderColor='rgba(255,255,255,0.5)'; }\r\n  });\r\n  document.getElementById('headerTitle').textContent = ui[lang].header;\r\n  document.getElementById('headerSub').textContent = ui[lang].sub;\r\n  document.getElementById('quickLabel').textContent = ui[lang].quick;\r\n  document.getElementById('userInput').placeholder = ui[lang].placeholder;\r\n  renderQuickBtns();\r\n  addBotMessage(ui[lang].langSwitch);\r\n}\r\n\r\nfunction renderQuickBtns() {\r\n  const container = document.getElementById('quickBtns');\r\n  container.innerHTML = '';\r\n  quickTopics[currentLang].forEach(q => {\r\n    const btn = document.createElement('button');\r\n    btn.textContent = q;\r\n    btn.style.cssText = 'padding:5px 11px;background:white;border:1px solid #b8d4f0;border-radius:20px;cursor:pointer;font-size:12px;color:#003574;white-space:nowrap;';\r\n    btn.onmouseover = () => btn.style.background = '#e8f0ff';\r\n    btn.onmouseout = () => btn.style.background = 'white';\r\n    btn.onclick = () => { document.getElementById('userInput').value = q; sendMessage(); };\r\n    container.appendChild(btn);\r\n  });\r\n}\r\n\r\nasync function sendMessage() {\r\n  const input = document.getElementById('userInput');\r\n  const text = input.value.trim();\r\n  if (!text) return;\r\n  addUserMessage(text);\r\n  input.value = '';\r\n\r\n  const typingId = 'typing-' + Date.now();\r\n  const chat = document.getElementById('chatWindow');\r\n  chat.innerHTML += `<div id=\"${typingId}\" style=\"display:flex;align-items:center;gap:8px;\">\r\n    <div style=\"width:30px;height:30px;background:#e0eedc;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;\">\ud83c\udf3f<\/div>\r\n    <div style=\"background:white;border:1px solid #d6e4f0;padding:10px 14px;border-radius:12px;font-size:13px;color:#888;\">\r\n      <span style=\"display:inline-block;animation:blink 1s step-start infinite;\">\u25cf<\/span>\r\n      <span style=\"display:inline-block;animation:blink 1s step-start 0.3s infinite;\">\u25cf<\/span>\r\n      <span style=\"display:inline-block;animation:blink 1s step-start 0.6s infinite;\">\u25cf<\/span>\r\n    <\/div>\r\n  <\/div>`;\r\n  chat.scrollTop = chat.scrollHeight;\r\n\r\n  try {\r\n    const response = await fetch(GROQ_PHP_URL, {\r\n      method: 'POST',\r\n      headers: { 'Content-Type': 'application\/json' },\r\n      body: JSON.stringify({ message: text, lang: currentLang })\r\n    });\r\n    const data = await response.json();\r\n    const el = document.getElementById(typingId);\r\n    if (el) el.remove();\r\n\r\n    if (data.answer) {\r\n      addBotMessage(data.answer);\r\n    } else {\r\n      addBotMessage(currentLang === 'ru' ? '\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.' : currentLang === 'kz' ? '\u049a\u0430\u0442\u0435 \u043e\u0440\u044b\u043d \u0430\u043b\u0434\u044b. \u041a\u0435\u0439\u0456\u043d\u0456\u0440\u0435\u043a \u043a\u04e9\u0440\u0456\u04a3\u0456\u0437.' : 'An error occurred. Please try again later.');\r\n    }\r\n  } catch (err) {\r\n    const el = document.getElementById(typingId);\r\n    if (el) el.remove();\r\n    addBotMessage(currentLang === 'ru' ? '\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443.' : currentLang === 'kz' ? '\u0421\u0435\u0440\u0432\u0435\u0440\u0433\u0435 \u049b\u043e\u0441\u044b\u043b\u0443 \u043c\u04af\u043c\u043a\u0456\u043d \u0431\u043e\u043b\u043c\u0430\u0434\u044b.' : 'Could not connect to server.');\r\n  }\r\n}\r\n\r\nfunction formatBotText(text) {\r\n  \/\/ \u042d\u043a\u0440\u0430\u043d\u0438\u0440\u0443\u0435\u043c HTML-\u0442\u0435\u0433\u0438 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u0435\u0441\u043b\u0438 \u0418\u0418 \u0432\u0441\u0442\u0430\u0432\u0438\u0442 \u0447\u0442\u043e-\u0442\u043e \u043b\u0438\u0448\u043d\u0435\u0435\r\n  let safe = text.replace(\/<\/g, '&lt;').replace(\/>\/g, '&gt;');\r\n  \/\/ **\u0436\u0438\u0440\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442** -> <b>\r\n  safe = safe.replace(\/\\*\\*(.+?)\\*\\*\/g, '<b>$1<\/b>');\r\n  \/\/ \u041f\u0435\u0440\u0435\u043d\u043e\u0441\u044b \u0441\u0442\u0440\u043e\u043a -> <br>\r\n  safe = safe.replace(\/\\n\/g, '<br>');\r\n  return safe;\r\n}\r\n\r\nfunction addUserMessage(text) {\r\n  const chat = document.getElementById('chatWindow');\r\n  const safe = text.replace(\/<\/g, '&lt;').replace(\/>\/g, '&gt;');\r\n  chat.innerHTML += `<div style=\"display:flex;justify-content:flex-end;\">\r\n    <div style=\"background:#003574;color:white;padding:10px 14px;border-radius:12px 12px 2px 12px;max-width:75%;font-size:14px;line-height:1.5;\">${safe}<\/div>\r\n  <\/div>`;\r\n  chat.scrollTop = chat.scrollHeight;\r\n}\r\n\r\nfunction addBotMessage(text) {\r\n  const chat = document.getElementById('chatWindow');\r\n  chat.innerHTML += `<div style=\"display:flex;align-items:flex-start;gap:8px;\">\r\n    <div style=\"width:30px;height:30px;min-width:30px;background:#e0eedc;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;\">\ud83c\udf3f<\/div>\r\n    <div style=\"background:white;border:1px solid #d6e4f0;padding:10px 14px;border-radius:12px 12px 12px 2px;max-width:78%;font-size:14px;line-height:1.7;\">${formatBotText(text)}<\/div>\r\n  <\/div>`;\r\n  chat.scrollTop = chat.scrollHeight;\r\n}\r\n\r\nrenderQuickBtns();\r\nwindow.onload = () => addBotMessage(ui[currentLang].welcome);\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>&#x1f33f; AI-\u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442 IACOOS \u042d\u043a\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0440\u0442\u0430\u043b \u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0430 RU KZ EN \u0411\u044b\u0441\u0442\u0440\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b: \u27a4<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-43171","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/old.iacoos.kz\/kz\/wp-json\/wp\/v2\/pages\/43171"}],"collection":[{"href":"https:\/\/old.iacoos.kz\/kz\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/old.iacoos.kz\/kz\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/old.iacoos.kz\/kz\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/old.iacoos.kz\/kz\/wp-json\/wp\/v2\/comments?post=43171"}],"version-history":[{"count":29,"href":"https:\/\/old.iacoos.kz\/kz\/wp-json\/wp\/v2\/pages\/43171\/revisions"}],"predecessor-version":[{"id":43241,"href":"https:\/\/old.iacoos.kz\/kz\/wp-json\/wp\/v2\/pages\/43171\/revisions\/43241"}],"wp:attachment":[{"href":"https:\/\/old.iacoos.kz\/kz\/wp-json\/wp\/v2\/media?parent=43171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}