From 78d122136c078730d2c378ffcb6df9f6c1116323 Mon Sep 17 00:00:00 2001 From: Dauren777 Date: Tue, 9 Jun 2026 14:28:58 +0000 Subject: [PATCH] =?UTF-8?q?v66:=20=D1=84=D0=B8=D0=BA=D1=81=20=D0=98=D0=98?= =?UTF-8?q?=20=E2=80=94=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=B0=D0=BA=D1=82=D0=BD?= =?UTF-8?q?=D0=B5=D0=B5,=20=D0=B1=D0=B5=D0=B7=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 116 +++++++++-------------------------------------------- 1 file changed, 19 insertions(+), 97 deletions(-) diff --git a/index.html b/index.html index b442bd8..513158c 100644 --- a/index.html +++ b/index.html @@ -257,103 +257,25 @@ function renderAi(){ function aiAsk(){var q=(document.getElementById("aiQ").value||"").trim().toLowerCase();if(!q)return;document.getElementById("aiQ").value="";chatHistory.push({role:"user",text:"Вы: "+esc(q)});chatHistory.push({role:"bot",text:"🤖 ИИ: "+aiAnswer(q)});renderAi();var el=document.getElementById("aiChat");if(el)el.scrollTop=el.scrollHeight} -function aiAnswer(q){var all=ev||[],now=new Date(),late=all.filter(function(e){return e.s==="late"}),done=all.filter(function(e){return e.s==="done"}),warn=all.filter(function(e){return e.s==="warn"}),wait=all.filter(function(e){return e.s==="wait"});var dp=all.length?Math.round(done.length/all.length*100):0; - -// Helper: events due this month -function dueThisMonth(){var m=now.getMonth()+1;return all.filter(function(e){if(e.s==="done"||e.s==="late")return false;var p=e.due.split(".");return p.length===3&&parseInt(p[1])===m})} -// Helper: branch stats -function branchStats(){var r=[];br.forEach(function(b,i){var it=all.filter(function(e){return e.b===i});var d=it.filter(function(e){return e.s==="done"}).length;var l=it.filter(function(e){return e.s==="late"}).length;r.push({name:b,done:d,total:it.length,late:l,pct:it.length?Math.round(d/it.length*100):0})});r.sort(function(a,b){return b.pct-a.pct});return r} -// Helper: risk calc -function calcRisk(e){if(e.s==="done")return{level:"отсутствует",pct:0,reason:""};if(e.s==="late")return{level:"критический",pct:100,reason:"Мероприятие просрочено"};var score=0,reasons=[];var p=e.due.split(".");if(p.length===3){var d=new Date(parseInt(p[2]),parseInt(p[1])-1,parseInt(p[0]));var days=Math.round((d-now)/86400000);if(days<=7){score+=40;reasons.push("срок через "+days+" дн.")}else if(days<=14){score+=25;reasons.push("срок через "+days+" дн.")}else if(days<=30){score+=15;reasons.push("срок через "+days+" дн.")}}if(e.p<20){score+=25;reasons.push("низкий прогресс ("+e.p+"%)")}else if(e.p<50){score+=15;reasons.push("прогресс "+e.p+"%")}var d=getMD(e.id,-1);var hasRpt=false;for(var k in d)if(d.hasOwnProperty(k)&&d[k]&&d[k].report)hasRpt=true;if(!hasRpt){score+=20;reasons.push("нет текстового отчёта")}var hasFiles=false;for(var k in d)if(d.hasOwnProperty(k)&&d[k]&&d[k].files&&d[k].files.length)hasFiles=true;if(!hasFiles&&e.p<30){score+=10;reasons.push("нет подтверждающих файлов")}var level=score>=60?"критический":score>=35?"высокий":score>=15?"средний":"низкий";return{level:level,pct:Math.min(score,95),reason:reasons.join("; ")||"показатели в норме"}} - -// === QUERY ROUTING === -var qq=q.toLowerCase(); - -// 1. Control -if(qq.indexOf("просрочен")>=0||qq.indexOf("просрочк")>=0){if(!late.length)return"Просроченных мероприятий нет.";var r="🔴 Просрочено "+late.length+" мероприятий:
";late.forEach(function(e){r+="• №"+e.id+" — "+esc(e.t.slice(0,80))+"...
Филиал: "+br[e.b]+" | Срок: "+e.due+" | Прогресс: "+e.p+"%
"});r+="
→ Рекомендация: эскалировать руководителям. Провести совещание с отстающими филиалами.";return r} - -if(qq.indexOf("текущ")>=0||qq.indexOf("этот месяц")>=0||qq.indexOf("завершить")>=0){var dtm=dueThisMonth();if(!dtm.length)return"В текущем месяце нет мероприятий с наступающим сроком.";var r="📅 Мероприятия к завершению в текущем месяце ("+dtm.length+"):
";dtm.forEach(function(e){r+="• №"+e.id+" — "+esc(e.t.slice(0,70))+"...
Срок: "+e.due+" | Статус: "+st[e.s]+" | Прогресс: "+e.p+"%
"});return r} - -// 2. Incidents -if(qq.indexOf("происшеств")>=0||qq.indexOf("несчастн")>=0||qq.indexOf("травм")>=0)return"📊 Анализ происшествий:
По данным системы, за 2026 год зафиксированы инциденты, связанные с просрочкой мероприятий по безопасности. "+late.length+" мероприятий просрочено. Основные риски: недостаточный контроль исполнения, отсутствие подтверждающих документов.

→ Рекомендация: усилить мониторинг филиалов с наибольшим числом просрочек. Провести внеплановые аудиты." - -// 3-4. KPIs / Ask data -if(qq.indexOf("показател")>=0||qq.indexOf("kpi")>=0||qq.indexOf("ltif")>=0||qq.indexOf("динамик")>=0){var bs=branchStats();var r="📈 Показатели безопасности:
• План выполнен на "+dp+"%
• Просрочено: "+late.length+" мероприятий
• Лучший филиал: "+bs[0].name+" ("+bs[0].pct+"%)
• Худший: "+bs[bs.length-1].name+" ("+bs[bs.length-1].pct+"%)

Отрицательная динамика у филиалов с просрочками: ";var worst=bs.filter(function(b){return b.late>0});if(worst.length)r+=worst.map(function(b){return b.name+" ("+b.late+" просрочек)"}).join(", ");else r+="отсутствует";return r} - -if(qq.indexOf("почему")>=0||qq.indexOf("причин")>=0){var lateReasons={};late.forEach(function(e){var rk=calcRisk(e);if(!lateReasons[rk.reason])lateReasons[rk.reason]=0;lateReasons[rk.reason]++});var reasons=Object.keys(lateReasons).sort(function(a,b){return lateReasons[b]-lateReasons[a]});var r="🔍 Основные причины отставания:
";reasons.slice(0,5).forEach(function(rk){r+="• "+rk+" — "+lateReasons[rk]+" мероприятий
"});r+="
→ Вывод: основные факторы — отсутствие отчётности и низкая активность исполнителей.";return r} - -if(qq.indexOf("сравн")>=0||qq.indexOf("филиал")>=0){var bs=branchStats();var r="🏢 Сравнение филиалов:
";bs.forEach(function(b){r+=""});r+="
Филиал%ИсполненоПросрочено
"+b.name+""+b.pct+"%"+b.done+"/"+b.total+""+(b.late||"—")+"
";return r} - -// 5. Risk prediction -if(qq.indexOf("риск")>=0||qq.indexOf("вероят")>=0||qq.indexOf("прогноз")>=0){ - var risks=[];all.forEach(function(e){if(e.s!=="done"){var cr=calcRisk(e);if(cr.level!=="низкий")risks.push({e:e,risk:cr})}});risks.sort(function(a,b){return b.risk.pct-a.risk.pct}); - if(!risks.length)return"Мероприятий с высоким риском невыполнения не выявлено. Все показатели в норме."; - var r="⚠️ Прогноз рисков невыполнения:
"; - risks.slice(0,8).forEach(function(x){var cl=x.risk.level==="критический"?"r":x.risk.level==="высокий"?"a":"w";r+="№"+x.e.id+""+x.risk.pct+"% — "+esc(x.e.t.slice(0,60))+"...
Причина: "+x.risk.reason+"
"}); - r+="
→ Рекомендация: сфокусироваться на критических и высоких рисках. Обеспечить загрузку подтверждающих документов."; - return r -} - -// 6. Auto-detect problems -if(qq.indexOf("проблем")>=0||qq.indexOf("выяв")>=0||qq.indexOf("контрол")>=0){ - var problems=[]; - if(late.length)problems.push(late.length+" просроченных мероприятий"); - var noReport=all.filter(function(e){if(e.s==="done")return false;var d=getMD(e.id,-1);var has=false;for(var k in d)if(d.hasOwnProperty(k)&&d[k]&&d[k].report)has=true;return !has}); - if(noReport.length>5)problems.push(noReport.length+" мероприятий без текстового отчёта"); - var lowProg=all.filter(function(e){return e.s==="warn"&&e.p<20}); - if(lowProg.length)problems.push(lowProg.length+" мероприятий с прогрессом <20%"); - var r="🔍 Автоматический анализ выявил:
"; - problems.forEach(function(p){r+="• "+p+"
"}); - if(!problems.length)r+="• Критических проблем не выявлено
"; - r+="
→ Рекомендация: "+ (late.length?"Приоритет — устранить просрочки. ":"")+(noReport.length>5?"Активизировать работу по заполнению отчётов. ":"")+"Провести аудит проблемных филиалов."; - return r -} - -// 7. Reports -if(qq.indexOf("отчёт")>=0||qq.indexOf("еженед")>=0||qq.indexOf("ежемес")>=0||qq.indexOf("квартал")>=0){return"📑 Для формирования отчётов перейдите на вкладку «Отчётность». Доступны форматы CSV и HTML. Для детальной аналитики используйте вкладку «Аналитика» — там есть кнопки скачивания полного отчёта по всем мероприятиям."} - -// 8. Documents -if(qq.indexOf("документ")>=0||qq.indexOf("подготов")>=0||qq.indexOf("письм")>=0||qq.indexOf("приказ")>=0||qq.indexOf("протокол")>=0||qq.indexOf("служеб")>=0){return"📝 Подготовка документов:
• Служебные записки и письма — используйте данные из системы для обоснования
• Протоколы совещаний — формируются на основе статусов мероприятий
• Корректирующие мероприятия — генерируются автоматически для просроченных пунктов

Для выгрузки данных используйте кнопки CSV/HTML на вкладке «Отчётность»."} - -// 9-10. Document analysis / Quality -if(qq.indexOf("провер")>=0||qq.indexOf("полнот")>=0||qq.indexOf("качеств")>=0||qq.indexOf("подтвержд")>=0){ - var noFiles=all.filter(function(e){if(e.s==="done")return false;var d=getMD(e.id,-1);var has=false;for(var k in d)if(d.hasOwnProperty(k)&&d[k]&&d[k].files&&d[k].files.length)has=true;return !has}); - var noText=all.filter(function(e){if(e.s==="done")return false;var d=getMD(e.id,-1);var has=false;for(var k in d)if(d.hasOwnProperty(k)&&d[k]&&d[k].report)has=true;return !has}); - return"🔍 Проверка качества отчётности:
• Без подтверждающих файлов: "+noFiles.length+" мероприятий
• Без текстового отчёта: "+noText.length+" мероприятий
• Полнота подтверждения: "+(100-Math.round(noFiles.length/all.length*100))+"%

→ Рекомендация: запросить у филиалов недостающие подтверждающие материалы."; -} - -// 11. Knowledge base -if(qq.indexOf("требован")>=0||qq.indexOf("норматив")>=0||qq.indexOf("закон")>=0||qq.indexOf("порядок")>=0||qq.indexOf("стандарт")>=0){return"📚 База знаний:
• Требования к обучению — согласно Правилам обучения по БиОТ (Приказ МТСЗН РК)
• Порядок расследования НС — согласно Трудовому кодексу РК, глава 20
• Требования к СИЗ — согласно ТР ТС 019/2011
• Внутренние документы — Стратегия развития ПБ АО «Самрук-Қазына» на 2024-2028 гг.

Для доступа к полным текстам обратитесь к нормативной базе компании."} - -// 12. Auditor -if(qq.indexOf("аудит")>=0||qq.indexOf("аудитор")>=0||qq.indexOf("несоответств")>=0||qq.indexOf("нарушен")>=0){return"🔎 AI-аудитор — автоматическая проверка:
• Сроки обучения: требуется сверка с данными КУ
• Медосмотры: контроль по графику (Сервисная фабрика)
• СИЗ: проверка обеспечения (все филиалы)
• Инструктажи: контроль периодичности

Выявлено:
• "+late.length+" мероприятий с нарушением сроков
• Рекомендуется провести аудит филиалов с просрочками"; - -// 13. Lessons learned -if(qq.indexOf("урок")>=0||qq.indexOf("опыт")>=0||qq.indexOf("извлеч")>=0){var r="📖 База извлечённых уроков:
На основе анализа просроченных мероприятий:
";late.slice(0,3).forEach(function(e){var cr=calcRisk(e);r+="• №"+e.id+": "+cr.reason+"
Урок: необходим регулярный контроль и ранняя эскалация
"});r+="
→ Профилактика: внедрить систему раннего предупреждения (за 30, 14, 7 дней).";return r} - -// 14. Next year plan -if(qq.indexOf("план на след")>=0||qq.indexOf("2027")>=0||qq.indexOf("предложен")>=0){return"📋 Предложения в План на 2027 год:
На основе анализа 2026 года:
• Усилить контроль за сроками (автоматические уведомления)
• Внедрить ежемесячный мониторинг подтверждающих документов
• Провести дополнительное обучение ответственных филиалов
• Расширить применение цифровых инструментов (ИИ-помощник)
• Включить мероприятия по профилактике повторных нарушений"} - -// 15. 360 -if(qq.indexOf("360")>=0||qq.indexOf("комплекс")>=0||qq.indexOf("системн")>=0||qq.indexOf("общая оценка")>=0){var bs=branchStats();return"🔵 Производственная безопасность 360°:
• План ПБ: выполнено "+dp+"%
• Просрочено: "+late.length+" мероприятий
• Филиалы в зоне риска: "+bs.filter(function(b){return b.pct<50}).map(function(b){return b.name}).join(", ")+"
• Системная проблема: низкая активность по загрузке подтверждающих документов
• Приоритет: устранение просрочек, активизация отчётности"} - -// 16. Daily digest -if(qq.indexOf("сводка")>=0||qq.indexOf("ежедн")>=0||qq.indexOf("утр")>=0||qq.indexOf("сегодня")>=0){var dtm=dueThisMonth();return"📰 Ежедневная сводка — "+new Date().toLocaleDateString()+"

🔴 Критическое:
• Просрочено: "+late.length+" мероприятий
"+(dtm.length?"• К завершению в этом месяце: "+dtm.length+" мероприятий
":"")+"
📊 Показатели:
• План выполнен на "+dp+"%
• В процессе: "+warn.length+"
• Не начато: "+wait.length+"

💡 Рекомендации:
"+(late.length?"• Эскалировать просрочки руководителям филиалов
":"")+"• Проверить наличие подтверждающих документов
• Запросить отчёты у отстающих филиалов"} - -// 17. Advisor -if(qq.indexOf("советник")>=0||qq.indexOf("директор")>=0||qq.indexOf("оцени")>=0||qq.indexOf("выступи")>=0){ - var bs=branchStats();var worst3=bs.slice(-3).map(function(b){return b.name+" ("+b.pct+"%)"}).join(", "); - return"👔 Советник директора по ПБ — оценка состояния:

Ключевые выводы:
• План выполнен на "+dp+"%. "+(dp>=70?"Темп хороший.":dp>=40?"Темп средний, требуется ускорение.":"Темп недостаточный, критическая ситуация.")+"
• Просрочено "+late.length+" мероприятий — "+(late.length>3?"требуется немедленная эскалация":"ситуация контролируема")+"

Основные риски:
• Филиалы в зоне риска: "+worst3+"
• Недостаточная активность по загрузке документов

Управленческие решения:
1. Провести совещание с руководителями отстающих филиалов
2. Установить еженедельный контроль для просроченных мероприятий
3. Запросить подтверждающие документы по всем мероприятиям в статусе «В процессе»
4. Усилить роль ИИ-помощника в ежедневном мониторинге
5. Подготовить доклад для Правления о текущем состоянии ПБ"; -} - -// Status query -if(qq.indexOf("статус")>=0||qq.indexOf("пункт")>=0||qq.indexOf("мероприятие")>=0){var num=q.match(/\d+/);if(num){var e=null;for(var i=0;i
Статус: "+st[e.s]+"
Филиал: "+br[e.b]+"
Срок: "+e.due+"
Прогресс: "+e.p+"%
Риск: "+cr.level+" ("+cr.pct+"%)
Причина: "+cr.reason;if(e.sub)r+="
Подпункты: "+e.sub.length+" шт.";return r}return"Пункт №"+num[0]+" не найден."}} - -// Greeting -if(qq.indexOf("привет")>=0||qq.indexOf("здрав")>=0||qq.indexOf("помощ")>=0||qq.indexOf("что ты")>=0||qq.indexOf("кто ты")>=0)return"👋 Здравствуйте! Я ИИ-помощник по производственной безопасности АО «Казахтелеком».

Я анализирую План мероприятий на 2026 год и могу ответить на вопросы о статусе исполнения, просрочках, рисках, рейтинге филиалов, подготовить сводку для руководства, оценить ситуацию как советник директора.

Задайте вопрос — например: «сводка», «риски», «рейтинг филиалов», «просроченные», «советник»."; - -// Fallback -return"Я могу ответить на вопросы:
«просроченные» — список просрочек
«сводка» — ежедневная сводка
«риски» — прогноз с вероятностью %
«рейтинг филиалов» — сравнение
«статус пункта N» — статус мероприятия
«причины» — анализ причин отставания
«советник» — оценка директора по ПБ
«проверка» — аудит качества отчётности
«текущий месяц» — что нужно завершить
«показатели» — KPI безопасности
«360» — комплексная оценка
«уроки» — извлечённый опыт
«аудит» — выявленные несоответствия"; +function aiAnswer(q){ + var all=ev||[],now=new Date(),late=all.filter(function(e){return e.s==="late"}),done=all.filter(function(e){return e.s==="done"}),warn=all.filter(function(e){return e.s==="warn"}),dp=all.length?Math.round(done.length/all.length*100):0; + function bs(){var r=[];br.forEach(function(b,i){var it=all.filter(function(e){return e.b===i}),d=it.filter(function(e){return e.s==="done"}).length,l=it.filter(function(e){return e.s==="late"}).length;r.push({name:b,done:d,total:it.length,late:l,pct:it.length?Math.round(d/it.length*100):0})});r.sort(function(a,b){return b.pct-a.pct});return r} + function cr(e){if(e.s==="done")return{l:"отсутствует",p:0};if(e.s==="late")return{l:"критический",p:100};var s=0;var p=e.due.split(".");if(p.length===3){var d=new Date(parseInt(p[2]),parseInt(p[1])-1,parseInt(p[0])),days=Math.round((d-now)/86400000);if(days<=7)s+=40;else if(days<=14)s+=25;else if(days<=30)s+=15}if(e.p<20)s+=25;else if(e.p<50)s+=15;var md=getMD(e.id,-1),hr=false;for(var k in md)if(md.hasOwnProperty(k)&&md[k]&&md[k].report)hr=true;if(!hr)s+=20;var l=s>=60?"критический":s>=35?"высокий":s>=15?"средний":"низкий";return{l:l,p:Math.min(s,95)}} + var qq=q.toLowerCase(); + if(qq.indexOf("просрочен")>=0){if(!late.length)return"Просрочек нет.";var r="Просрочено "+late.length+":
";late.forEach(function(e){r+="• №"+e.id+" — "+esc(e.t.slice(0,70))+"...
"+br[e.b]+" | срок "+e.due+"
"});return r} + if(qq.indexOf("текущ")>=0||qq.indexOf("месяц")>=0){var dtm=all.filter(function(e){if(e.s==="done"||e.s==="late")return false;var p=e.due.split(".");return p.length===3&&parseInt(p[1])===(now.getMonth()+1)});return dtm.length?"К завершению в этом месяце ("+dtm.length+"):
"+dtm.map(function(e){return"• №"+e.id+" — "+esc(e.t.slice(0,60))+"... ("+e.due+")"}).join("
"):"В этом месяце срочных мероприятий нет."} + if(qq.indexOf("риск")>=0||qq.indexOf("прогноз")>=0){var risks=[];all.forEach(function(e){if(e.s!=="done"){var c=cr(e);if(c.l!=="низкий")risks.push({e:e,risk:c})}});risks.sort(function(a,b){return b.risk.p-a.risk.p});if(!risks.length)return"Рисков не выявлено.";var r="Прогноз рисков:
";risks.slice(0,8).forEach(function(x){r+="• №"+x.e.id+" — "+x.risk.p+"% ("+x.risk.l+") — "+esc(x.e.t.slice(0,50))+"...
"});return r} + if(qq.indexOf("рейтинг")>=0||qq.indexOf("филиал")>=0||qq.indexOf("сравн")>=0){var bsd=bs(),r="Рейтинг филиалов:
";bsd.forEach(function(b,i){r+=(i+1)+". "+b.name+" — "+b.pct+"% ("+b.done+"/"+b.total+(b.late?", просрочено:"+b.late:"")+")
"});return r} + if(qq.indexOf("сводка")>=0||qq.indexOf("ежедн")>=0||qq.indexOf("утр")>=0){return"Сводка на "+new Date().toLocaleDateString()+"
• План: "+dp+"% ("+done.length+"/"+all.length+")
• Просрочено: "+late.length+"
• В процессе: "+warn.length+"
• Не начато: "+(all.length-done.length-late.length-warn.length)+"

→ Рекомендации:
"+(late.length?"• Эскалировать просрочки
":"")+"• Проверить подтверждающие документы
• Запросить отчёты у отстающих";} + if(qq.indexOf("советник")>=0||qq.indexOf("директор")>=0){var bsd=bs(),w3=bsd.slice(-3).map(function(b){return b.name+" ("+b.pct+"%)"}).join(", ");return"👔 Советник директора по ПБ:

Выводы:
• План: "+dp+"%. "+(dp>=70?"Темп хороший.":dp>=40?"Темп средний.":"Критично!")+"
• Просрочено: "+late.length+"

Риски: "+w3+"

Решения:
1. Совещание с отстающими филиалами
2. Еженедельный контроль просрочек
3. Запросить документы у всех в статусе «В процессе»
4. Усилить ИИ-мониторинг
5. Доклад Правлению";} + if(qq.indexOf("почему")>=0||qq.indexOf("причин")>=0){return"Причины отставания:
• Отсутствие текстовых отчётов
• Нет подтверждающих файлов
• Низкая активность исполнителей
• Приближение сроков без обновлений

→ Решение: активизировать загрузку отчётов и документов.";} + if(qq.indexOf("проверк")>=0||qq.indexOf("качеств")>=0||qq.indexOf("подтвержд")>=0){var nf=all.filter(function(e){if(e.s==="done")return false;var d=getMD(e.id,-1),h=false;for(var k in d)if(d.hasOwnProperty(k)&&d[k]&&d[k].files&&d[k].files.length)h=true;return !h});return"Проверка качества:
• Без файлов: "+nf.length+" мероприятий
• Полнота: "+(100-Math.round(nf.length/all.length*100))+"%

→ Рекомендация: запросить недостающие документы.";} + if(qq.indexOf("аудит")>=0)return"🔎 AI-аудитор:
• "+late.length+" мероприятий с нарушением сроков
• Рекомендуется аудит отстающих филиалов
• Проверить: обучение, медосмотры, СИЗ, инструктажи"; + if(qq.indexOf("360")>=0||qq.indexOf("комплекс")>=0){var bsd=bs();return"ПБ 360°:
• План: "+dp+"%
• Зона риска: "+bsd.filter(function(b){return b.pct<50}).map(function(b){return b.name}).join(", ")+"
• Приоритет: устранить просрочки, активизировать отчётность";} + if(qq.indexOf("показател")>=0||qq.indexOf("kpi")>=0){var bsd=bs();return"KPI безопасности:
• План: "+dp+"%
• Лучший: "+bsd[0].name+" ("+bsd[0].pct+"%)
• Худший: "+bsd[bsd.length-1].name+" ("+bsd[bsd.length-1].pct+"%)
• Просрочено: "+late.length;} + if(qq.indexOf("статус")>=0||qq.indexOf("пункт")>=0){var num=q.match(/\d+/);if(num){var e=null;for(var i=0;iПункт №"+e.id+"
Статус: "+st[e.s]+"
Филиал: "+br[e.b]+"
Срок: "+e.due+"
Риск: "+c.l+" ("+c.p+"%)";}return"Пункт №"+num[0]+" не найден.";}} + if(qq.indexOf("привет")>=0||qq.indexOf("здрав")>=0||qq.indexOf("помощ")>=0)return"👋 Я ИИ-помощник по ПБ АО «Казахтелеком». Спросите: «сводка», «риски», «рейтинг филиалов», «советник», «статус пункта N»."; + return"Спросите: сводка · риски · рейтинг филиалов · советник · просроченные · проверка · аудит · 360 · статус пункта N · причины · показатели"; } // ===== EDIT (no regions) =====