Доброго всем времени! Господа капибары, простите за столь наглую просьбу, но мыслей к кому обратиться у меня уже нет. Попросил я эту новую нейросеть Deepseek написать бота для парсинга и скачивания книг из локальной inpx библиотеки. Он мне его написал, но есть проблема, бот не выдает файл для скачивания, т.е. он находит книгу, выдает название\имя файла, но при нажатии "скачать", он просто копирует строку. Я понимаю что просьба очень наглая, но может кто нибудь проверить код и дополнить\исправить функционал?
Доброго времени суток, капибары и капибарыни! Случилось тут со мной, что я намутил свой телеграм бот для скачивания книг со своего сервера. Библиотека должна быть в формате inpx (например копия флибусты, скаченная с любого удобного трекера). Если вы читали (и о Ктулху!) сделали по моим постам свой сервак, то знаете, что свой сервер - это круто! Бот я задумал совсем давно, когда столкнулся в принципе с такими ботами. И мне в голову пришла мысль, а почему бы и да? (тут хочу уточнить, я не программист и программировать я не умею). С этим вопросом я обратился в интернет
Примерно так оно и было
Первым делом я обратился к нейросетям, они меня конечно поняли, но со своей, извращенной логикой. И как я им не объяснял, что мне нужно, нормальную реализацию моей задумки мне получить так и не удалось. Затык был в парсинге книг из inpx и в принципе в нормальном поиске и скачивании книг (по сути во всем), но какой-никакой костяк они мне дали. Решив, что так жить нельзя, а в одном месте все так же свербит, я пошел на Авито в поиске настоящего программиста, которого я там и нашел. Объяснив задачу и несколько раз объяснив что такое inpx (я раньше думал, что после получения задачи, программист сам способен выяснить технические детали с чем ему нужно работать), он сделал мне полностью рабочего бота, который парсил inpx и даже выдавал результаты поиска и позволял скачивать найденное!
Но у этого бота было множество минусов! Во-первых, все данные он держал в ОЗУ (оперативной памяти), т.е при каждом перезапуске бота, он заново парсил весь inpx. Во-вторых были проблемы с отображением результатов (уже и не вспомню какие), плюс, он был чувствителен к регистру. В третьих, все переменные он держал внутри тела бота, что на мой взгляд было очень неудобно, искать среди всего кода куда и с чем ему работать. Но, так как у меня уже был рабочий бот, с исходниками можно было обратиться к нейросетям. Мой выбор пал на Grok, от Илона нашего Маска!
Нейросети очень сильно помогли мне с этим. Так, я научил бота создавать бд в SQL, куда сохранялись все спарсенные книги, чтобы не выполнять каждый раз парсинг при запуске бота. Переработал сам парсер, изначально он был на Python, но пришлось переписать его на GO и переложил всю работу с парсингом и вставкой книг в SQL на него (парсинг ускорился в несколько раз, с 7-8 минут на версии Python до 48-50 секунд на версии GO после компиляции) Сейчас бот нечувствителен к регистру, все перменные для работы находятся в .env файле, но у него есть ряд ограничений. Он ищет книги только на русском языке, в форматах fb2 и epub. Все остальные языки и форматы игнорируются. В рабочем режиме, после парсинга, бот потребляет не более 70 мегабайт ОЗУ, что делает возможным его запуск на микрокомпьютерах вроде Orange pi. Для запуска бота, вам потребуется сама библиотека, Python, SQL с пользователем, который может создавать и изменять бд в ней. Все переменные указываются в файле .env Сами исходники и версия с парсером на Go лежат тут https://disk.yandex.ru/d/EF36zcqYdp_01A
Совсем забыл! Токен для бота нужно получить в @BotFather и указать его в .env файле! Пример файла лежит в папке с ботом! Просто замените или укажите в нем свои значения. Файл должен лежать в одной папке с ботом. Путь к inpx не абсолютный, обычно этот файл лежит с zip книг. В env указываете только адрес папки с zip, бот сам обнаружит inpx и начнет парсинг
Разрабатывал я его на основе 56 страничного приказа о диспансеризации. Кому интересно можете почитать.
Целью было сделать удобный сервис для пациентов и врачей. Расскажу подробнее про функционал.
Формирование списка обследований
Вот так он выглядит
После ввода данных (пола, года рождения, проходил ли ранее диспансеризацию) присылается индивидуальный перечень обследований на текущий год.
Когда 1 этап полностью заполнен, на основе его результатов формируется 2 этап обследований.
Оценка результатов
Как видно из картинки выше я добавил несколько различных флагов(кружочков слева). Зелёный - норма. Желтый не норма или фактор риска. Красный выраженное отклонение или фактор риска. Последний я вычислял эмпирически.
Для оценки таких обследований как ЭКГ, ФГ и т.п. я хотел подключить нейросеть, но отказался от этого по различным причинам. Потенциально можно внедрить.
Добавил различные калькуляторы
Расчёт ИМТ, относительного и абсолютного сердечно-сосудистого риска. Плюсом для абсолютного ССР может появиться предупреждение, если в анкете отмечены ситуации при которых он не рассчитывается.
Запись к врачу
В разделе "где пройти" добавил возможность найти своё место прикрепления и записаться к врачу через госуслуги прямо из телеграм бота.
Раздел подготовка
Некоторые обследования требуют специальной подготовки. Здесь рассказывается, что для этого нужно, если они есть у вас в этом году.
Освобождение от работы
Бот рассчитывает на сколько дней можно освободиться от работы. По закону на прохождение диспансеризации положено для пенсионеров и предпенсионеров 2 рабочих дня, для остальных 1 день.
Также бот отправляет бланки документов, которые нужны работодателю, чтобы оформить освобождение.
Причины потери здоровья
Данные берутся с сайта ВОЗ по такому показателю как DALY и выводятся индивидуально в зависимости от пола и возраста.
Если в топе присутствуют депрессивные расстройства можно пройти скрининговый тест на депрессию.
Профили
Здесь можно добавлять профили например для своих родственников, которые не могут пользоваться телеграмом или пациентов.
Наблюдение
Эта функция добавлена для связи между врачом и пациентом. При нажатии на кнопку "Добавить под наблюдение" появляется специальная ссылка. Отправив её пациенту врач получает доступ к его профилю и истории осмотров, после того как пациент даст на это согласие. Пользователь в любой момент может ограничить доступ.
История, оповещения
Историю осмотров можно будет смотреть по годам прохождения.
Бот отправит уведомление, что нужно пройти диспансеризацию в день, который укажет пользователь.
P.S. В будущем хотелось бы сделать модуль по системам(сердечно-сосудистая, онконастороженность и т.п.), чтобы врачу было легче понимать взаимосвязь отдельных элементов и в какую сторону диагностики дальше двигаться.
Для каждого случая не нормы можно внедрить дальнейший алгоритм действий или что-то вроде системы поддержки принятия решений.
Если вы когда-либо мечтали создать своего телеграм-бота, но вас пугали технические сложности и необходимость программирования или рисования блок-схем, то у меня для вас отличные новости. Представляю вам Бот в блокноте — конструктор телеграм-ботов, который я разработал специально для тех, кто далёк от мира IT, но хочет легко и быстро создать своего бота. В отличие от традиционных конструкторов с блок-схемами, я предлагаю более гибкий и удобный способ работы. Блок-схемы могут быть сложными и запутанными, особенно когда проект становится большим.
Диалог бота созданный в блокноте
В этой статье я расскажу, как возникла идея создать Бот в блокноте, какие возможности и преимущества он предлагает, а также как вы можете начать использовать его уже сегодня. Если вы хотите создать своего телеграм-бота, но не знаете, с чего начать, или ищете способ упростить этот процесс, — эта статья для вас. В дальнейшем я планирую публиковать статьи с конкретными реализациями для разных областей, с примерами и советами, так что подписывайтесь, чтобы не пропустить.
Идея
Год назад, работая над телеграм-ботом для клиента, я задался вопросом: "Можно ли упростить процесс сборки типовых диалогов в боте и записи результата?" Часто при работе над проектами я использую блокнот для набора текста и Excel для сортировки и визуализации. Опираясь на этот опыт, я решил, что списки — это вполне удобный вариант.
Немного истории
В 2017 году, увидев бота в Telegram, я проникся идеей чат-ботов. Казалось, что это возрождение старой технологии станет успешным и облегчит множество рутинных операций. Так родился прототип CMS с рабочим названием "Core4". Основная идея заключалась в том, чтобы собрать все интерфейсы ботов к одному ядру, независимо от источника сообщения. Ядро должно было принимать, понимать и обрабатывать сообщения, давая ответ в понятной мессенджерам форме.
Результатом стал MVP, работающий с ныне запрещенным Фейсбуком, ушедшим Slack, Skype, Telegram, Viber, ВКонтакте, Яндекс.Алисой и даже WeChat. Все функции бота были разделены на плагины с единым интерфейсом обмена данными, что позволило упростить разработку и код. Однако блокировка Telegram в РФ и рост рабочей нагрузки заставили отложить идею в долгий ящик.
Начало
Я написал плагин для Core4, который обрабатывает текстовые каркасы и выводит квизы в боте. Начал с простого опроса:
Третья планета от Солнца?
> Земля
> Венера
> ЛунаВам понравился тест?
> Да
> нет
Как вас зовут?
Оцените сложность теста в баллах от 1 до 10?
Развитие
Задача не сложная, но хотелось большего: ветвлений, проверок. Конструктор стал понимать типы вопросов и ожидаемых ответов:
— «B» - ожидается ответ кнопкой — «P:» — ожидание телефона через кнопку «Поделиться телефоном», — «G:» — ожидание геопозиции через кнопку «Поделиться геопозицией», — «#:» — ожидание отправки контакта или ручного ввода телефона +7(495)123-45-67, + и не менее 8 цифр, допустимы скобки и разделители — «T:» — ожидание текстового ввода, — «D:» — ожидание целого или десятичного числа, — «E:» — ожидание ввода электронной почты — «U:» — ожидание URL-адреса — «Y:» — ожидание ввода даты DD-MM-YYYY или даты времени DD-MM-YYYY HH:II — «H:» — ожидание ввода времени (часы и минуты) HH:MM — «F:» — ожидание отправки файла, — «X:» — любой тип ответа (но не кнопка)
Добавил возможность задавать оценку кнопочного ответа (Верно/Нет) и начислять баллы за ответ. Для ветвления придумал простой вариант: «Если ответили так, задать вопрос». Планирую добавить сегментацию пользователей на основе ответов (она уже есть в конструкторе, пользователи сегментируются, но в каркасе пока не реализована) .
После доработок каркас опроса стал выглядеть так:
Третья планета от Солнца?
> Земля||Y10
> Венера||N
> Луна||N
Вам понравился тест?
> Да||Y50
> нет||N
> X: Расскажу в сообщении|Опишите впечатление текстом, видео или голосовым
T: Как вас зовут?
D: Оцените сложность теста в баллах от 1 до 10?
Уровень ветвлений стал практически неограниченным, но появились сложности в обработке алгоритма. Решение этих вопросов заняло много времени, но в итоге всё получилось.
Допиливаем напильником и шлифуем
Параллельно был написан веб-интерфейс для пост-обработки каркаса. В конструкторах ботов обычно используются блок-схемы связанные друг с другом стрелками, каждый блок описывает действие, каждому ответу назначается переменная, но в блокноте такое не описать, поэтому я выбрал дерево. Дерево не позволяет делать сложные связи, но для опросов оно логически подходит гораздо лучше, вся схема опроса видна и понятна, возможности дерева позволяют легко переносить вопросы с уровня на уровень и менять их местами, в блочной схеме всё выходит гораздо сложнее.
Вид диалога в конструкторе
Не текстом единым
К вопросам нужно добавлять картинки и мультимедиа, без этого красивый квиз не сделать. От идеи добавлять картинки в каркасе пришлось отказаться, т.к. любую реализацию будет не возможно объяснить не подготовленному пользователю. Перенес ее в веб-конструктор и квизы заиграли новыми красками.
Редактирование ответа и вопроса, если выбран этот ответ
В настройках есть возможность запретить повторный запуск диалога, например, если это был тест на оценку знаний, при прохождении квиза замеряется время затраченное на прохождение, это позволит оценить скорость и уверенность отвечающего. В планах — ограничение времени прохождения.
Настройки квиза
В веб-интерфейсе можно сегментировать пользователя по ответам, что даст возможность рассылать информацию по пересечению сегментов. Сегментация уже работает, а рассылки пока в разработке
Полноценная работа
В веб-интерфейсе есть пункт «Клавиатуры бота», где можно создать стандартные клавиатуры для навигации с подключением к ним квизов, в них же можно задать сообщения при выводе клавиатуры. Используя эту возможность можно создавать сложные переходы и вариации. Конструктор на данном этапе предназначен для работы с квизами, но в планах создание привычных блок-схем с более удобными возможностями.
Создаем клавиатуру и назначаем действие кнопок, в планах визуализировать все на блок-схемах
Общаемся с пользователями
Отлично! Квиз работает, вопросы задаются, типы контролируются, кнопку другого ответа бот не примет, полный контроль! И как хранить результаты? В базе данных, но каждый квиз разный по содержанию и объему, поэтому храним в JSON. Отслеживать результаты в админке приятно, но не интересно. Вот бы была возможность сразу ответить пользователю. Например, мы создали квиз-диалог по вопросам поддержки продукта, пользователь выбрал свой продукт, ответил на некоторые вопросы, мы получили заявку и… как ему ответить? Как задать уточняющие вопросы не покидая телеграм? Создадим закрытый форум в телеграм, добавим туда бота, дадим ему права на чтение сообщений и у нас появляется возможность общения с пользователем, причем общаться может не один наш сотрудник, а все кто состоит в закрытой группе (пользователь ее не видит, он общается с ботом)
Так техподдержка или менеджеры видят заявки, отсюда они могут отвечать сразу в бота
Сохраняем и анализируем
Общение через бота важный и нужный формат, но хочется иметь общую картину, сортировать и фильтровать результаты. Таблицы Гугл то, что нужно, но мы не создаем переменные и как тогда записывать результаты… Обойдемся без переменных! Немного магии и все работает с таблицами, при первом прохождении генерируется лист с максимальным количеством колонок (все варианты ответов), каждый отдельный квиз это отдельный лист и ничто не мешает создавать нам несколько квизов, всё будет ясно и понятно. Если пользователь дал правильный ответ, подсветим эту ячейку зеленым, а количество баллов за ответ покажем в примечании, это даст возможность оценивать результаты не отвлекаясь на описание квиза, не нужно помнить правильные ответы и сразу видно, где ошибка в ответах.
Интеграция с Гугл Таблицами позволяет создать аналогичный Гугл Формам сервис, но без настроек и выхода из Телеграм.
Интеграция с Гугл.Таблицами. Мне нравится! А вам?
Передаем диалог в CRM
В работе я использую российский сервис YouGile https://ru.yougile.com/, в свое время я делал бота для публикации задач из Телеграм на доску, он общедоступный и бесплатный, называется «YouGile unofficial bot». Переслали ему сообщение, он опубликовал его на доске и при необходимости отправил дубль на ваш Email — удобно! А квизы могут быть задачами? Могут! Делаю интеграцию результатов квиза с YouGile и получается — простая и легкая CRM! Можно дать ссылку на квиз и его результаты сразу будут переданы менеджерам, после обработки они перенесут их в нужные колонки, добро пожаловать в Agile-style
Обрабатываем заявки в стиле Аджайл
Для тех кто не хочет ничего подключать
Просто укажите в настройках квиза свою почту или ID аккаунта в телеграм (должен быть подписан на бота), и получайте копии диалогов в почту или мессенджер. Ответить оттуда сложно, но не все задачи требуют ответа. Простая, полезная и удобная функция.
В таком виде результат приходит на email и в Телеграм
Для самых продвинутых
Мало возможностей? Укажите в настройках адрес своего сервера, на котором вы хотите самостоятельно обрабатывать результаты квизов и сразу после завершения диалога бот отправит вам все результаты в виде HTML и JSON, приготовьте их по своему или отправьте в другой сервис. Полезно!
Где использовать?
— Создание квизов и опросов — Техническая поддержка клиентов — Дерево решений (вопросы приводят к выбору единственного результата) — Сбор лидов в CRM — Оценка качества услуг, в том числе использование для тайных покупателей с обработкой отчетов — Тесты на знание предмета — Чекапы — Сбор анкет-заявок в HR и создание предварительных тестов — Онбординг сотрудников — Регистрация участников на мероприятия с возможностью обсуждения деталей и проведения по CRM — Бронирование через квиз — Составление портрета гостя — Сбор показаний приборов учета — Учет рабочего времени и отчеты о проделанной работе — Сбор заявок на подбор — Сбор вопросов перед/на мероприятии — Заполнение анкет на франшизу и т.п. — Оформление брифов и ТЗ с обсуждением и проводкой в CRM — Заявки на подбор помещений — Заявки на расчет стоимости кейтереинга — Бриф на расчет стоимости материалов
Ложка дёгтя
Проект находится в стадии финального тестирования, иногда вылезают баги, но в общем всё работает. Больше всего раздражает задержка на обработку результатов при прохождении квиза в боте. Это из-за того, что продукт молодой. Несколько секунд, но не приятно, но терпимо, это задержка из-за ответов внешних сервисов, без подключения интеграций она вообще не заметна. А в ближайшее время я переделаю обработчик и всё будет летать =)
После пополнения счета иногда выбивает из аккаунта и нужно входить повторно, это магическая ошибка, ищу причину. Ну и конечно, есть баги о которых я не знаю, но вы мне обязательно сообщите =)
Большие планы
Часть запланированного уже частично реализована, часть ещё только на бумаге.
В планах: — Редактор бота в виде блок-схем, в не совсем привычном виде, но будет удобно
— Использование переменных для записи ответов с последующим подключением калькулятора (реализовано на 50%) — Рассылки по сегментированным группам пользователей с персонификацией — Работа бота в группах и каналах, проверка подписки, модерация, публикация оформленных сообщений — Поддержка досок объявлений в форумах (публикация только через бота) — Сбор статистики бота (статистика уже собирается, но пока не выводится) — Подключение плагинов Core4, даст возможность использовать готовые модули для типовых решений (уже работает, вывод квиза и общение в боте это часть из плагинов системы) — Реферальная программа для пассивного заработка (70%) — и многое-многое другое
Как попробовать
Рабочая версия доступна на сайте https://botpad.ru/landing/ На ней можно отредактировать или создать квиз.
Всем доброго дня, сотоварищи. Не знаю к кому обратиться, поэтому решил сделать пост. Езжу на ВАЗ 2101, так как небогат, а по работе надо. Вьехал задом в столб по невнимательности, нужен кузовной ремонт. Собсно суть вопроса - есть ли ребята в Москве, которые возьмутся за кузовню ваза, сделают нормально и недорого? А то либо не берутся (машина дешманская), либо лупят цену дороже самой машины. Обзвонил уже с десяток автосервисов.
Некоторое время назад я разработал бесплатного Телеграм-бота для отправки задач в YouGile, российский аналог ушедшего из РФ Trello. Сегодня этот бот получил неожиданное расширение функционала. Изначально бот был создан для удобной постановки задач через Телеграм, но после общения с одним из пользователей, возникла идея расширить его возможности. Пользователь пожелал, чтобы бот мог одновременно отправлять задачи как в YouGile, так и в Trello.
Изначально я предложил использовать API YouGile и указать адрес колонки в Trello для дублирования задач. Однако, возникла проблема: Trello не принимал задачи, отправленные через email. Как выяснилось, пользователь настроил интеграцию с YouGile через email и указал почту Trello для двойной интеграции, на что бот не был рассчитан. Внесение небольших изменений в алгоритм позволило решить эту задачу. Теперь бот отправляет задачи на оба адреса, обеспечивая пользователя необходимым функционалом.
Сейчас я работаю над проектом «Бот в блокноте». Это конструктор, позволяющий без специальных знаний создавать сложные диалоги для Телеграм-ботов, включая подсчет баллов и отслеживание правильных ответов. В проекте предусмотрена возможность отправки результатов в различные сторонние сервисы, такие как Google Таблицы, группы в Телеграм, и, конечно же, в YouGile. Теперь, с пониманием почтовой интеграции, я вижу возможность отправки данных также и в Trello, а возможно, и в другие сервисы, поддерживающие прием задач через email.
Эта статья получилась небольшой, но может быть полезной для тех, кто использует одновременно YouGile и Trello.
Добрый день Пикабу. Очень надеюсь на вашу помощь в поисках дома для этих сорванцов. Они были подобраны на улице. Кошку(бело-серая) сильно беременную подбросили к нам в подъезд, но её постоянно выгоняли на улицу, и 15 января, выкинули прям с новорожденными котятами. Не смогла устоять , забрала . Троих котят удалось спасти. Ещё троих так же забрала с улицы, они остались без мамы. Но, к сожалению, я не расчитала свои силы( не тяну ни финансово, да и места совсем нет. У меня есть ещё своя старенькая кошь, два взрослых кота, и еще 4 подобрыша подроста, одна из которых тоже оказалась беременна. Возможно кому то приглянутся эти малыши, и у них появится новый дом и любящая семья. Заранее прошу прощение за фото, очень старый телефон. Территориально, город Королёв М.О
Комментарии