В настоящий момент базовая версия Qlik Sense Enterprise имеет крайне небогатый функционал рассылки оповещений. А точнее, он вообще отсутствует.
В линейке продуктов присутствует такая вещь как Qlik Alerting, но он не везде подходит в виду своей стоимости и области применения (оповещения на основе данных из приложений). Поэтому для налаживания оперативных оповещений, нам придется использовать сторонние решения. Одно из них — боты Telegram.
Использование Telegram-ботов хорошо тем, что его можно начать без осваивания кликовского API, а также без установки дополнительных коннекторов. Поэтому, давайте начинать.
Создание Telegram-бота
Прежде всего, вам нужно добавить в Telegram в список контактов бота BotFather. Это служба, которая отвечает за создание новых ботов.
Пишем в чат с BotFather команду /newbot. После этого нас попросят указать имя нового бота. Оно должно заканчиваться на _bot (строчными буквами).
В случае успеха, вы увидите сообщение с токеном вашего бота (комбинацию цифр и букв). Она будет нужна для отправки сообщений через вашего бота.
Собственно, на этом все.
Отправка сообщений из скрипта
Для отправки сообщения из скрипта нужно использовать нижеприведенный код, и запустить загрузку данных.
set vTBot_Token=; //Токен бота set vTBot_ChatID=; //ИД чата или получателя set vWebConnection=; //Название любого подключения с типом Web-файл на сервере Qlik set vTBot_Message=; //Текст сообщения, %0A — перенос строки TG_Message: LOAD 1 FROM [lib://$(vWebConnection)] (url is [https://api.telegram.org/bot$(vTBot_Token)/sendMessage?chat_id=$(vTBot_ChatID)parse_mode=HTML]); drop table TG_Message; //Очистка переменных, чтобы не отображать их в визуальном слое set vTBot_Token=; set vTBot_ChatID=; set vTBot_Message=; set vTBot_Message=;
Чтобы обращаться к Telegram, вам потребуется создать подключение к данным с типом web-файл к любому адресу, хоть к https://yandex.ru. Т.к. URL для обращения мы будем передавать через параметр URL IS, в котором для коннекта к web-файлу можно указать совершенно любой адрес.
Забавный факт — обращение к URL не только приводит к загрузке данных из него, но и позволяет инициировать действия во внешней системе. Мы специально указываем цифру 1 как поле в загрузке таблицы TG_Message, чтобы Qlik мог выполнить обращение к адресу, ничего при этом из него не загружая.
Если вам интересно, то в ответ отдается Json-строка с информацией об отправленном сообщении. Но мы не будет тратить время на ее разбор.
Откуда взять ID чата или пользователя? Рекомендую использовать этого бота:
У него можно узнать собственный ИД. Чтобы узнать ИД чата, нужно добавить в него бота и обратиться с командой /getgroupid.
Добавьте вашего бота себе в контакты, пропишите все необходимые параметры и запустите скрипт. Вы должны получить сообщение от бота.
Примеры использования
Мониторинг сбоев в заданиях обновления данных.
Создайте приложение с названием типа Task Control. В него разместите скрипт отправки сообщения с текстом типа «Сбой обновления данных, проверьте ».
Создайте для приложения Task Control задачу на обновление данных.
В качестве триггеров укажите неуспешные выполнения тасков, которые вы хотите мониторить. На каждый таск нужно создавать отдельный триггер, иначе клик будет проверять одновременный провал всех тасков в триггере. а этого не случатся, т.к. цепочка остановится после первого провала.
Теперь в случае завершения таска с ошибкой вы получите сообщение такого вида:
Это самый оперативный способ получения информации о сбое ровно в тот момент, когда он случится.
Мониторинг полноты данных в источнике
При работе с облачными сервисами распространена практика выгрузки данных через API в промежуточную базу, откуда они потом сохраняются в QVD-файл. Иногда API-механизмы сбоят, что может привести к наличию в промежуточной базе только части данных.
Дальнейшая загрузка этих данных приведет к недостоверной картине в аналитике, и бизнес пользователя начнут вам писать что-то вроде «ВАШ Qlik опять сломался».
Чтобы этого не происходило, можно перед перезаписью QVD-файла сравнивать кол-во записей в нем на данный момент, и кол-во данных в источнике. Если данных в источнике меньше чем X% от того что есть в QVD, то загрузка данных из источника пропускается. При этом, вы можете отправлять себе сигнальные сообщения об этих инцидентах.
Вот например как выглядела перезапись из медленного API данных с нуля. Первое число — сколько записей в QVD, второе — сколько записей в БД.
При этом пользователи продолжают работать с самой полной версией данных, хоть и слегка неактуальной.
Рассылка информации по списку пользователей
Несомненно, вы уже подумали об организации рассылок оповещений через Telegram. Это можно реализовать через скрипт, хотя и не очень удобно — ведь вам придется средствами скрипта сгенерировать полный текст сообщения для каждого получателя. А значит, придется делать кучу джойнов и агрегирований.
Однако для MVP оповещений это весьма удобной вариант, т.к. позволяет гарантированно получить результат в предсказуемые сроки (в отличие от поднятия доп. сервисов, API-интеграций и прочего шаманства).
В общем механика такая: вам сначала нужно будет собрать таблицу, в которой каждая строка — это текст сообщения и ИД получателя, а после пройтись по этой таблице скриптом отправки сообщения через цикл. Структура скрипта может быть примерно такой:
Т.е. у нас есть таблица Messages с сообщениями, где каждое сообщение пронумеровано по номеру строки, в поле M_ID.
Дальше идем в цикле по значениям этого поля, при этом в качестве переменных получателя и сообщения через функцию peek забираем значения этих полей в соответствующей M_ID строке. Внутри Peek() вычитаем единицу от M_ID, т.к. нумерация строк в этой функции начинается с 0.
Заключение
Как видите, с помощью оповещений через Telegram очень легко повысить свою осведомленность о состоянии дел на сервере Qlik. Обязательно используйте эту механику, чтобы узнавать о нужных событиях до того, как вам начнут жаловаться пользователи.
А также, предусматривайте в своих скриптах сценарии реакции на нештатные ситуации.
Источник: bi2business.ru
Как раздеть девушку нейросетью (пошаговая инструкция)
Нейросети 2023
Автор kristianakila На чтение 3 мин Просмотров 120к. Опубликовано 06.02.2023
Довольно нашумевшая возможность (функция) нейросетей, от которой нервничают все приличные девушки. А вот парни только рады! С помощью этой инструкции вы сможете раздеть любую девушку, имея её фотографию. Девушки! Парней тоже можно раздевать!
Какие нейросети раздевают девушек в 2023 году
Я выделил бы 3 варианта, как вы можете раздеть свою подругу.
- Бот в телерамме DreamPower. Совершенно бесплатно поможет тебе раздеть любую девушку по фотографии.
- Нейросеть Deepsukebe. Условно бесплатно, платить вам придется за большее количество генераций и снятия водяных знаков. Первые генерации бесплатны.
- Нейросеть Stable Diffusion. Бесплатная нейросеть с открытым кодом, которую нужно устанавливать на свой ПК. Большинство различных сервисов построенны именно на ней.
Инструкция по раздеванию в Stable Diffusion
Особенности и подготовка
Лучше всего нейросеть справляется, если у вас есть фотография в купальнике, или когда на человеке минимум одежды. Но и раздеть полностью одетого она тоже способна.
Эта инструкция ТОЛЬКО для ознакомления и ее не стоит использовать в каких то корыстных целях! Уважайте права и комфорт других людей.
Установка нейросети Stable Diffusion
Лучшая неросеть, которая имеет в своем наборе такую функцию как “Inpaint” (она то нам и нужна) это Stable Diffusion или сокращено SD. Для начала посетите инструкцию по установке этой нейросети. Как только вы ее установили, читайте далее.
Минимальные системные требования для установки, это наличие видеокарты с 4гб видеопамяти.
Пошаговая инструкция по раздеванию
Итак, давайте найдем несколько интересующих нас фотографий в социальных сетях или на Яндекс картинках. Я возьму то, что мне попалось на глаза с первого взгляда. Плюс возьму что нибудь сложное.
Шаг №1. Запускаем нейросеть SD
Для запуска используйте файл в папке с нейросетью с названием “webui-user“, после этого вы попадете на главную страницу. Вам нужен раздел (вкладка) “img2img” и далее “Inpaint“.
Шаг №2. Promt
В этом поле нужно вписать запрос, который вы хотите сгенерировать. В моем случае это “голая девушка” или “naked girl“.
Шаг №3. Настройка
Как только нашли раздел, сразу добавьте свое изображение в соотвествующее поле. И настройте нейросеть как на скриншоте ниже.
Функция Inpaint
Как только вы все настроили и загрузили нужную вам фотографию, следующим шагом будет выделение с помощью карандашика части тела которые вы хотите изменить.
Ну а далее просто начните генерацию изображений с помощью кнопки “Generate“. Если вы видите неудовлетворяющий вас результат, просто сгенерируйте еще несколько изображений или поиграйтесь с настройкой “Denoising strength” и “Only masked padding, pixels“. А вот что получилось в итоге у меня!
Раздетые девушки в Stable Diffusion
Получившиеся изображения (голые части я замазал):
И таким образом вы можете раздеть любую девушку!
Источник: neyrosety.ru
Анонимный чат в Telegram с помощью бота и Integromat
В нашем виде услуги иногда нужно дать возможность клиенту и исполнителю пообщаться друг с другом напрямую.
Но это обязательно должно быть анонимно, чтобы они не могли видеть друг друга и написать друг другу напрямую. В то же время, должна быть возможность менеджеру помогать им и вмешиваться в переговоры в случае необходимости. Если у вас есть похожая задача, то такой сценарий вам подойдет.
Создаем группы в Telegram
Реализуем сценарий в Integromat
Вот как будет выглядеть такой сценарий, если менеджера 3, и у них в сумме 5 пар чатов. Все это обрабатывает 1 бот. Бот копирует сообщение из 1 чата и отправляет его в другой чат.
Сценарий с анонимным чатом Telegram через Integromat. Такие одуванчики
Рассмотрим пример с 1 парой чатов.
Создание модуля Telegram — Watch Updates
Идем в Interegromat, создаем сценарий. Первый модуль Telegram -> Watch updates. Подключаем бота туда. Далее при любом действии в чатах, где сидит бот, сюда будет прилетать уведомление.
Далее если менеджеров несколько и чатов несколько, ставим фильтры, чтобы бот постил в чаты нужного менеджера. Если менеджер только 1, то пропускаем этот момент.
Посылаем бота в ту ветку, в которую надо на основе id чата уведомления
Далее, чтобы отсечь все ненужные уведомления, нужно поставить фильтры на тип сообщения. А конкретно меня интересуют только 6:
Создаем сеть роутеров
Делаем роутер и ставим проверку на «не пустые» сообщения с вышеперечисленными типами.
Роутер с проверкой на типы сообщения
Далее приведу 2 скрина с примерами фильтров для текста и фото.
Проверка присутствия текста сообщения
Проверка присутствия фото в сообщении
Допустим, поставили фильтры на тип сообщения. Дальше нам нужно поставить фильтры на id чата.
- Если уведомление пришло в чат 1, то копируем и шлем сообщение в чат 2
- Если уведомление пришло в чат 2, то копируем и шлем сообщение в чат 1
Вот как выглядит фильтр:
Фильтр с проверкой чата
И вот как может выглядеть финальный модуль отправки текстового сообщения после фильтра:
Копирование и отправка анонимного сообщения
Для каждого типа сообщения нужно создавать разные модули Telegram. Например Send a Text Message, Send a Photo, Send a Document и т.д.
Здесь, если пакет дошел до этого модуля, значит сообщение было текстовым, оно в чате клиента, и его нужно переслать в чат исполнителя.
Копирование сообщения в последнем модуле
Текстом сообщения будет являться текст из сообщения с чатом клиента:
- Это либо сообщение клиента, тогда перед сообщением добавится Client:
- Либо сообщение от менеджера, тогда перед ним будет Agent:
- Тоже самое, только наоборот, делается в ветке, где чат id исполнителя.
Также важно обрезать сообщение функцией substring, чтобы при слишком длинном сообщении модуль Telegram не выдал ошибку и сценарий не остановился.
Для всех остальных типов файлов (аудио, видео, документ) можно просто добавлять Caption клиента или исполнителя, чтобы было понятно «кто» пишет.
В целом все, это схема просто великолепно работает. Менеджер просто наблюдает за процессом, а не передает каждую мелочь вручную из чата в чат. Задержка между передачей сообщения 2-5 секунд, что вообще не влияет на качество общения. Ну и спасибо Telegram за такие возможности!
Если что-то не понятно, спрашивайте в комментах.
SEO-менеджер.
Люблю SEO, маркетинг, увлекаюсь автоматизацией и терпеть не могу ручную работу, которую можно делегировать роботу.
Источник: codelessman.com