QUICK_PROMPTS = [ "Проект в ЛИМС не виден", "VPN не работает", "Восстановить файл", "Ошибка в Meridium", ] IT_SYSTEMS = [ "Meridium 4", "ЕСУИД", "1С", "StarLims", "ЛИМС", "ВКУС", ] GLOSSARY_ANSWERS = { "есуид": ( "**ЕСУИД** (Единая система управления идентификационными данными) — " "корпоративная система аутентификации. Через неё вы входите в Meridium, 1С " "и другие корпоративные приложения. Портал: https://idmoam.sibur.local/identity" ), "meridium": ( "**Meridium 4** — система управления активами и надёжностью оборудования (APM). " "Основной URL: https://s001as-apmapp.sibur.local/Meridium/. " "Отчёты: https://s001as-apmrep.sibur.local/ReportServer" ), "вкус": ( "**ВКУС** (Витрина корпоративных услуг СИБУРа) — единый сервисный вход " "для сотрудников: помощь по ИТ-вопросам, создание обращений и отслеживание их статуса." ), "лимс": ( "**ЛИМС** (Laboratory Information Management System) — лабораторная " "информационная система для управления образцами и результатами анализов." ), "starlims": ( "**StarLims** — лабораторная информационная система, используемая на " "предприятиях СИБУРа для учёта лабораторных исследований." ), } KNOWLEDGE_ENTRIES = [ { "patterns": [ r"meridium.*(вход|войти|логин|парол|авториз)", r"не могу.*meridium", r"meridium.*не открыв", ], "system": "Meridium 4", "confidence": 85, "package": { "recommendation": ( "Для входа в Meridium 4 используется единая учётная запись ЕСУИД. " "Если основная система не открывается, сначала проверьте доступ к порталу ЕСУИД." ), "steps": [ "Откройте портал ЕСУИД: https://idmoam.sibur.local/identity", "Войдите с корпоративными учётными данными", "Перейдите в Meridium 4: https://s001as-apmapp.sibur.local/Meridium/", "При ошибке доступа — очистите кэш браузера (Ctrl+Shift+Delete) и повторите вход", "Если пароль не подходит — запросите сброс через ЕСУИД или создайте обращение", ], "sources": [ {"title": "Инструкция по входу в Meridium 4", "url": "https://vkus.sibur.local/"}, {"title": "URL систем Meridium", "url": "https://s001as-apmapp.sibur.local/Meridium/"}, ], "colleague_cases": [ { "summary": "Ошибка «доступ запрещён» после смены пароля", "outcome": "Помог выход из всех сессий ЕСУИД и повторный вход через режим инкогнито", }, { "summary": "Meridium не загружается в Chrome", "outcome": "Решилось добавлением сайта в доверенные зоны и обновлением браузера", }, ], "ticket_draft": { "title": "Проблема с входом в Meridium 4", "description": "Не удаётся войти в систему Meridium 4. Проверка ЕСУИД и очистка кэша не помогли.", "system": "Meridium 4", "priority": "Высокий", }, }, }, { "patterns": [ r"есуид.*(парол|сброс|разблок)", r"сброс.*парол", r"забыл.*парол", r"разблокир.*учётн", ], "system": "ЕСУИД", "confidence": 90, "package": { "recommendation": ( "Пароль ЕСУИД можно сбросить самостоятельно через портал самообслуживания " "или обратившись в ИТ-поддержку." ), "steps": [ "Откройте портал ЕСУИД: https://idmoam.sibur.local/identity", "Нажмите «Забыли пароль?» на странице входа", "Введите корпоративный логин (формат: ivanov.as)", "Следуйте инструкциям на экране — ссылка придёт на корпоративную почту", "При блокировке учётной записи — создайте обращение на разблокировку", ], "sources": [ {"title": "ЕСУИД — единая система идентификации", "url": "https://idmoam.sibur.local/identity"}, {"title": "Инструкция по сбросу пароля", "url": "https://vkus.sibur.local/"}, ], "colleague_cases": [ { "summary": "Ссылка для сброса не приходит", "outcome": "Проверили папку «Спам» и убедились, что почтовый ящик не переполнен", }, ], "ticket_draft": { "title": "Сброс / разблокировка пароля ЕСУИД", "description": "Требуется сброс или разблокировка учётной записи ЕСУИД. Самостоятельный сброс не удался.", "system": "ЕСУИД", "priority": "Средний", }, }, }, { "patterns": [ r"meridium.*(отчёт|отчет|report)", r"отчёт.*meridium", r"apmrep", r"reportserver", ], "system": "Meridium 4", "confidence": 82, "package": { "recommendation": ( "Отчёты Meridium 4 формируются на отдельном сервере отчётов. " "Ошибки часто связаны с правами доступа или недоступностью сервера." ), "steps": [ "Проверьте доступность сервера отчётов: https://s001as-apmrep.sibur.local/ReportServer", "Убедитесь, что основной Meridium 4 работает: https://s001as-apmapp.sibur.local/Meridium/", "Откройте отчёт повторно — дождитесь полной загрузки", "При ошибке — откройте консоль браузера (F12) и сохраните текст ошибки", "Если проблема сохраняется — приложите скриншот к обращению", ], "sources": [ {"title": "Сервер отчётов Meridium 4", "url": "https://s001as-apmrep.sibur.local/ReportServer"}, {"title": "Руководство по отчётам Meridium", "url": "https://vkus.sibur.local/"}, ], "colleague_cases": [ { "summary": "Ошибка 403 при открытии отчёта", "outcome": "Потребовалось обновление роли в группе доступа (ГД) — оформили заявку на доступ", }, ], "warning": ( "В одном из похожих случаев коллеги решили проблему переустановкой браузера, " "хотя официальная инструкция рекомендует сначала проверить права доступа. " "Рекомендуем следовать регламенту." ), "ticket_draft": { "title": "Ошибка при формировании отчёта Meridium 4", "description": "При открытии отчёта на сервере s001as-apmrep возникает ошибка. Основной модуль Meridium работает.", "system": "Meridium 4", "priority": "Высокий", }, }, }, { "patterns": [ r"1[сc].*(медлен|тормоз|долго|загруз)", r"медленн.*1[сc]", r"1[сc].*не открыв", ], "system": "1С", "confidence": 78, "package": { "recommendation": ( "Медленная работа 1С может быть связана с нагрузкой на сервер, " "сетевым подключением или локальным кэшем клиента." ), "steps": [ "Перезапустите клиент 1С полностью (закройте все окна)", "Проверьте подключение к корпоративной сети (VPN, если работаете удалённо)", "Очистите кэш 1С: удалите папку %APPDATA%\\1C\\1Cv8\\", "Попробуйте запустить 1С в другое время — утром нагрузка выше", "Зафиксируйте время возникновения проблемы для обращения в поддержку", ], "sources": [ {"title": "Рекомендации по работе с 1С", "url": "https://vkus.sibur.local/"}, ], "colleague_cases": [ { "summary": "1С зависает при открытии базы утром", "outcome": "Проблема была на стороне сервера — решилась после перезапуска сеансов администратором", }, ], "ticket_draft": { "title": "Медленная работа 1С", "description": "Клиент 1С загружается более 5 минут. Перезапуск и очистка кэша не помогли.", "system": "1С", "priority": "Средний", }, }, }, { "patterns": [ r"лимс.*(проект|не виден|не отображ)", r"проект.*лимс", r"starlims.*(проект|не виден)", ], "system": "ЛИМС", "confidence": 80, "package": { "recommendation": ( "Если проект не отображается в ЛИМС, чаще всего причина в правах доступа " "или привязке проекта к вашему подразделению." ), "steps": [ "Обновите страницу и проверьте фильтры в списке проектов", "Убедитесь, что выбрано правильное предприятие / площадка", "Проверьте, что у вас есть роль для просмотра проектов в ЛИМС", "Уточните у коллег, виден ли проект у других пользователей", "Если проект новый — возможно, он ещё не синхронизирован, подождите до 24 часов", ], "sources": [ {"title": "Инструкция по работе с проектами ЛИМС", "url": "https://vkus.sibur.local/"}, ], "colleague_cases": [ { "summary": "Проект не появился после создания", "outcome": "Потребовалось обновление роли доступа через заявку в ИТ-поддержку", }, ], "ticket_draft": { "title": "Проект в ЛИМС не виден", "description": "Проект не отображается в списке ЛИМС. Фильтры и обновление страницы не помогли.", "system": "ЛИМС", "priority": "Средний", }, }, }, { "patterns": [ r"vpn.*(не работ|не подключ|ошибк|обрыв)", r"не работает.*vpn", r"впн", ], "system": "Общее", "confidence": 75, "package": { "recommendation": ( "Проблемы с VPN обычно связаны с сетевым подключением, устаревшим клиентом " "или истёкшим сертификатом." ), "steps": [ "Проверьте подключение к интернету", "Перезапустите VPN-клиент и повторите подключение", "Перезагрузите компьютер", "Убедитесь, что используете корпоративный VPN-клиент последней версии", "Если ошибка сохраняется — сделайте скриншот сообщения об ошибке", ], "sources": [ {"title": "Инструкция по VPN", "url": "https://vkus.sibur.local/"}, ], "ticket_draft": { "title": "VPN не работает", "description": "Не удаётся подключиться к корпоративному VPN. Перезапуск клиента не помог.", "system": "Общее", "priority": "Высокий", }, }, }, { "patterns": [ r"восстанов.*файл", r"удалил.*файл", r"потерял.*файл", r"вернуть.*файл", ], "system": "Общее", "confidence": 72, "package": { "recommendation": ( "Восстановление файлов возможно из корзины, резервных копий на сетевом диске " "или через обращение в ИТ-поддержку." ), "steps": [ "Проверьте корзину на рабочем столе", "Если файл был на сетевом диске — проверьте папку «Предыдущие версии» (ПКМ → Свойства)", "Вспомните точное имя файла и расположение", "Не сохраняйте новые файлы на диск, где был удалён файл", "Оформите обращение с указанием пути и времени удаления", ], "sources": [ {"title": "Политика резервного копирования", "url": "https://vkus.sibur.local/"}, ], "ticket_draft": { "title": "Восстановление удалённого файла", "description": "Требуется восстановление удалённого файла. Корзина и предыдущие версии не помогли.", "system": "Общее", "priority": "Средний", }, }, }, { "patterns": [ r"ошибк.*meridium", r"ошибк.*меридиум", r"meridium.*ошибк", ], "system": "Meridium 4", "confidence": 80, "package": { "recommendation": ( "Ошибки в Meridium 4 могут быть связаны с доступом, сессией ЕСУИД " "или недоступностью сервера приложения." ), "steps": [ "Зафиксируйте точный текст ошибки (скриншот)", "Выйдите из Meridium и войдите заново через ЕСУИД", "Проверьте доступность: https://s001as-apmapp.sibur.local/Meridium/", "Очистите кэш браузера и повторите попытку", "Если ошибка в отчётах — проверьте сервер отчётов отдельно", ], "sources": [ {"title": "Meridium 4 — основная система", "url": "https://s001as-apmapp.sibur.local/Meridium/"}, {"title": "Руководство пользователя Meridium", "url": "https://vkus.sibur.local/"}, ], "ticket_draft": { "title": "Ошибка в Meridium 4", "description": "При работе в Meridium 4 возникает ошибка. Повторный вход не помог.", "system": "Meridium 4", "priority": "Высокий", }, }, }, ] DEFAULT_PROFILE = { "first_name": "Алексей", "patronymic": "Петрович", "last_name": "Смирнов", "position": "Инженер по надёжности", "department": "АО «Сибур-Нефтехим»", } def get_colleague_cases_for_system(system: str | None, limit: int = 3) -> list[dict[str, str]]: """Опыт коллег по системе — для блока self-service при ответах из RAG.""" if not system: return [] seen: set[str] = set() cases: list[dict[str, str]] = [] for entry in KNOWLEDGE_ENTRIES: if entry.get("system") != system: continue for case in entry.get("package", {}).get("colleague_cases") or []: key = case.get("summary", "") if not key or key in seen: continue seen.add(key) cases.append(case) if len(cases) >= limit: return cases # Дополнительные кейсы для лабораторных систем extra_by_system: dict[str, list[dict[str, str]]] = { "ЛИМС": [ { "summary": "Не удаётся провести переиспытание образца", "outcome": "Потребовалось проверить статус образца и роль «Проведение переиспытаний»", }, ], "StarLims": [ { "summary": "Переиспытание недоступно в карточке образца", "outcome": "Образец был в статусе «Завершён» — сначала выполнили отмену завершения", }, { "summary": "Ошибка при создании переиспытания", "outcome": "Помогла очистка кэша браузера и повторный вход (не по регламенту)", }, ], } for case in extra_by_system.get(system, []): key = case.get("summary", "") if key and key not in seen: seen.add(key) cases.append(case) if len(cases) >= limit: break return cases[:limit]