Проект: «ReadStreakBot» — тг-бот для чтения книг, на 95% написанный чатгпт  Публичный пост
17 февраля 2024  748
"ReadStreakBot" - тг-бот для чтения книг, на 95% написанный чатгпт

Расскажите о себе и сути проекта?

После школы учиться я никуда не пошёл, а начал работать в торговле, но меня всегда тянуло в IT (в офисе даже как-то мои программисты на новогоднем корпоративе посвятили меня в айтишники, за то что я много в чём секу).
В 2023 году начался хайп с нейросетями и сначала я затестил SD, очень понравилось, прям попал в состояние потока, не спал до 2-3 часов, тестил разные модели, лоры и промты, смотрел видосы и т.д. Конечно же поигрался с SD и NSFW-контентом, но всё никак не заюзывал чатГПТ, потому что думал "Ну чо там такого то?"
А потом решил затестить и ЧатГПТ со словами "А чо если я прям вот русским текстом напишу ТЗ, что оно мне выдаст?" и оно выдало, оно показало мне как глубока кроличья нора...

Сутей проекта несколько:

  1. Кодить - сейчас это переросло в формат "писать ТЗ для чатгпт так, чтобы это сразу работало, а если не робит, то писать ошибки и в крайних случаях самому разбираться в причинах"
  2. Читать - привить навык систематического чтения, не переключаться на 100 статей и блогов, сосредоточить фокус на одном в течение нескольких дней, прокачать фантазию и кругозор
  3. Писать - систематически вести блог, писать что-то на постоянной основе, дисциплина - не хрен моржовый.
  4. Коммуницировать - общаться, взаимодействовать, улучшать свою задумку, слушать мнения и конструктивную критику
  5. Сделать мир лучше - воодушевить кого-то своим примером, чтобы кто-то привил себе навык систематического чтения

Что вошло в прототип и сколько времени на него было потрачено?

Собственно, первый запрос был что-то типа такого: "напиши мне скрипт на python который будет разбивать txt-файл на несколько файлов по 600 символов и называть их text00001 и text00002 и так далее." Данная логика и сейчас используется в боте.
На сам запрос я потратил минуты 2 и каково было моё удивление, что эта шайтан штука мне сразу же выдала готовый код, который делал то, что я от него хотел. Я был просто в шоке, словами не описать что я тогда испытал.


Первое что я подумал - т.е. вот так, программировать уже не нужно учиться по старинке с hellow world (к слову такой формат мне никогда не нравился, я был всегда сторонником того, что изначально нужен проект-цель, пиля который тебе необходимо глубже продвигаться в матчасть)?
Ну и пошло поехало.

Что за бот, зачем нужен?

Основной функционал:

  1. Скидываешь боту файл электронной книжки (fb2, epub и т.д.)
  2. Бот разбивает его на маленькие фрагменты
  3. Нажимаешь "Сл фр" бот присылает первый фрагмент
  4. Прочитал => Пункт 3

Еще немножечко функционала:

  1. Бот считает сколько фрагментов кто прочитал и составляет топы дня, недели, месяца, года и вообще
  2. Боту можно скормить цитату из книги, а потом запросить у него все скормленные ему цитаты
  3. Бот может присылать утреннюю цитату, которую случайно выбирает их всех сохранённых в него цитат
  4. Бот может имитировать блог и сам присылать фрагменты в заданное время (как будто подписан на чей-то канал)
  5. Бот может подгонять "Эй сегодня мало прочитал, вон тебя обогнали - читай больше"
  6. Бот позволяет избавиться от проблемы выбора книги, есть функция случайная книга.
  7. Бот может уведомлять, если вы вдруг начали читать меньше
  8. Бот может уведомлять раз в N фрагментов, что если книга не интересная, то можно её сменить
  9. Бот может показывать сколько дней читали без остановки
  10. Бот за прочитанные фрагменты присуждает уровни (прям как в RPG)
  11. Внутри бота можно дружить и тогда о левелапах будет еще уведомляться и твой друг

Известные баги

  1. Бот не переваривает картинки из-за изначальной логики, исходный файл конвертируется в txt
  2. Бот не переваривает переносы строк в диалогах, бился над проблемой в несколько подходов, не смог победить и в итоге сам привык к этому и забил
  3. Бот не присылает картинки из книг, но в целом тоже можно привыкнуть

Как появилась идея? Что вдохновило?

Из всех способов потребления контента именно чтение было мне ближе всего, но читал я не книги, а 100500 разных каналов и статей. У меня был куплен Feedly суперпремиум с Leo-ассистентом, у меня был поднят RSSHub который заворачивает телеграм-каналы в RSS-ленты и я в целом прочитывал в день просто уйму текста, но на выходе всё как-то забывается либо накапливается так, что буфер в мозгу переполняется инфой.
Затем начал набирать обороты шорт-формат контента вроде YouTube Shorts или TikTok, и он начал забирать у меня слишком много времени.
И как-то в один добрейший вечерочек при просмотре очередного шортса мне пришла в голову мысль, а что если с книгой точно так же сделать? Читаешь фрагмент книги, если понравился жмёшь лайк, он следующий присылает, а если не понравился, жмёшь дизлайк и книга скипается, так и засела у меня в голове эта идея.

Какой технологический стек вы использовали? Почему?

Backend - Python - потому что самый популярный, sqlite - потому что нет пердолинга с установкой
Fronend - Telegram - потому что лучший мессенджер
Кодинг - ChatGPT - потому что я у меня у самого лапки
Деплой - VDS на винде у ВДСины (Потому что кожу на винде и чтобы потом не разрешать кучу конфликтов)

Как вы запускались и искали первых пользователей?

Спустя неделю после создания прототипа я написал своим друзьям, жене, а потом когда уже сам стабильно читал начал всё больше и больше рассказывать всем о боте и так набралось 30 пользователей из них постоянные это 10 человек включая меня.

Случай с залётным пользователем

Поначалу пользователей было вообще типа 3-4 штуки и я каждый день смотрел статистику читает ли кто-то и т.д.
И тут вижу какой-то новый пользователь в статистике, а я никого не звал и все кто пользуется ботом тоже.
А бот в телеге видит ник пользователя, ну и я по нему и вышел на девушку, спросил у неё откуда она нашла бота и т.д.
Оказалось, что она юзала другого похожего бота ("ЧЕГО О_о?" - подумал я, но в современном мире так много людей и идей, что не удивительно, что к разным людям приходят похожие идеи). Но с тем ботом у неё какие-то проблемы были и она нашла моего бота просто по поиску в телеге.
Мы до сих пор общаемся, она пишет багрепорты, фиче реквесты и благодарности (вот уж неожиданное взаимодействие с новым человеком).

С какими самыми неожиданными трудностями пришлось столкнуться?

  1. Надо одновременно работать, читать в своём же боте и еще и его дорабатывать.
  2. Никак не могу достать картинки из книг и присылать их пользователю
  3. Пока не придумал как внятно разделять книгу на главы
  4. А еще не могу придумать как пропускать определять где начинается и кончается введение в книгах, чтобы сделать кнопку "Скипнуть введение", потому что часто в книгах в начале 100 страниц полной мути.

Сколько потратили и заработали? Есть идеи как это можно монетизировать?

Полгода тратил пару вечеров в неделю. Сейчас трачу на хостинг 24 рубля в день.
Монетизировать бота я бы хотел за счёт продажи книг, т.е. сам сервис я не хочу делать платным никогда.
Но тут надо копать в сторону издательств или работы с автором, а до этого пока руки никак не дойдут.
И плюс еще что-то мне подсказывает, чтобы это делать нужно быть большим типа яндекса или литреса.
Возможно кто-то из клуба сможет помочь в этом вопросе?

Какие планы на будущее?

  1. Сделать возможность просматривать профили пользователей в боте, как в соц сети, ходить по менюшкам внутри телеги и смотреть кто что читает и сколько
  2. Решить проблемы с введением, диалогами и картинками
  3. Внедрить режим "Улучшение на 1% каждый день" или "Бой с тенью" - когда ты сравниваешь себя не с другими, а с прошлым собой и улучшаешь свой результат
  4. Цитаты 2.0 - контролируемый рандом в цитатах (чтобы за определённый период все пользователи получили все цитаты), чтобы всем присылалась одна цитата дня, чтобы можно было лайкать их и потом чекать самую залайканную цитату
  5. Полезные советы - включаешь и бот раз в n-е кол-во дней присылает случайный полезный совет о своём функционале
  6. Чекать темп чтения по книгам и по запросу выдавать пользователю и скорить книги по этому показателю, мол вот эту книгу легко и быстро читать, а эту долго и сложно
  7. Внедрить какие-нибудь ачивки, пока хз какие и как
  8. Организовать читальный клуб в канале с выбором книг и обсуждением прочитанного
  9. Статистика о статистике - чекать кто и как часто смотрит статистику и писать ежемесячно о топе стат-мэнов.
  10. Посоветуй книгу - ходишь по менюшкам выбираешь жанры и сложности, а бот тебе выдаёт названия книг и аннотации чо почитать.
  11. В идеале сделать мобильное приложение типа ТикТока со всем ботным функционалом и с возможностью связать бота и приложение, а во влажных мечтах сократить цепочку между авторами и покупателями (а-ля стим), автор сам выкладывает книгу, сам назначает цену, юзеры читают промо фрагменты, смотрят рекомендации, смотрят всякие топы авторов, иными словами TikTokBookRead

Немного статистики и достижений

На данный момент мои текущие 10 активных пользователей, среди которых я сам
19к фрагментов - прочитали все пользователи
159 книг было загружено
150 задач еще не сделано (всякие баги, фичи и т.д., которые я пишу сам себе)
172 задачи уже сделано
4 человека увлеклись чтением после того как поюзали бота (один друг бросил курить, прочитав Аллена Карра, другой начал читать бумажную Мангу, жена начала читать Кинга)
12,5к фрагментов прочитал лично я
70 постов в блоге
вот такая ачивка греет душу

Новогодний ивент

А под новый год я запустил типа ивента, дал возможность всем посмотреть свою стату за год и поделиться ей, чтобы похвалиться среди друзей и знакомых и под постом

Книги прочитанные всеми пользователями в боте:

  • "Мессия Дюны" - Фрэнк Герберт
  • "О дивный новый мир" - Олдос Хаксли
  • "Идиот" - Фёдор Михайлович Достоевский
  • "Преступление и наказание" - Фёдор Михайлович Достоевский
  • "Сияние" - Стивен Кинг
  • "Sapiens. Краткая история человечества" - Юваль Ной Харари
  • "Семь навыков высокоэффективных людей" - Стивен Р. Кови
  • "Мёртвая зона" - Стивен Кинг
  • "Поток: Психология оптимального переживания" - Михай Чиксентмихайи
  • "Библейские истории" - Густав Гече
  • "Мизери" - Стивен Кинг
  • "Хоббит, или Туда и обратно" - Джон Рональд Руэл Толкин
  • Неуказанное произведение (возможно, ошибка в списке)
  • "Покой, игра, развитие" - Дебора Макнамара
  • "Эмпайр V" - Виктор Олегович Пелевин
  • "Убить пересмешника" - Харпер Ли
  • "Куджо" - Стивен Кинг
  • "Атомные привычки: Как приобрести хорошие привычки и избавиться от плохих" - Джеймс Клир
  • "Повелитель мух" - Уильям Голдинг
  • "Мальчики из никогда" - Колсон Уайтхед
  • "Принцип ставок: Как принимать решения в условиях неопределенности" - Дюк (имя автора не указано полностью)
  • "Подумайте еще раз: Сила знания, когда мир постоянно меняется" - Адам Грант
  • "451° по Фаренгейту" - Рэй Брэдбери
  • "Волшебник Изумрудного города" - Александр Мелентьевич Волков
  • "Не отрываясь: Почему мы одержимы технологиями" - Адам Алтер
  • "Пикник на обочине" - Аркадий и Борис Стругацкие
  • "Заповедник" - Сергей Донатович Довлатов
  • "Мужчины без женщин" - Харуки Мураками
  • "Скотный двор" - Джордж Оруэлл
  • "Собачье сердце" - Михаил Афанасьевич Булгаков
  • "Как работать по четыре часа в неделю и при этом не торчать на мели" - Тимоти Феррисс
  • "Падение" - Альбер Камю

Нужны ли какие-то советы или помощь Клуба?

  • Ну несомненно хотелось бы привлечь аудиторию (Планирую написать еще на хабр, но боюсь хабраэффекта)
  • Желательно под нагрузкой не уронить бота (Это как раз и проверю, если бот ляжет, то press F to respect, знайте, что упал под ВастрикЭффектом)
  • Пишите свои идеи отзывы, с радостью почитаю
  • Если кто-то в курсе как можно с юридической точки зрения начать продавать книги внутри бота - то с радостью послушаю

Так же хотелось куда-нибудь приписюлить типа манифеста:

  • Никаких уведомлений от бота без явного согласия пользователя (бесят приложения, которые вдруг решают ни с того ни с сего присылать пуши без разрешения и приходится их выкключать. Мой подход обратный - я ничего не присылаю сам, пока пользователь не включит уведомлялку).
  • Пользователю пренадлежат все его данные (в планах добавить возможность вытянуть из бота всю инфу что в нём есть по пользователю, с возможностью удалить всю эту инфу или обезличить).
  • Багфиксы по запросу - Юзеры пишут - я фиксю в первую очередь то, о чём просят юзеры (если могу)

Какой совет вы бы сами могли дать идущим по вашим стопам?

  • Кодить - это не сложно, с нейросетями mvp-можно сделать очень быстро, надо пробовать и экспериментировать. А быстрый результат подкрепит энтузиазм, что позволит пронести желание дальше и возможно с бОльшей вероятностью довести проект до его реализации
  • Писать блог - это круто, повышается шанс синергии и таких взаимодействий, о которых даже не мечтал

p.s.

Я конечно же еще планировал рассказать о каждой функции в отдельности, как и почему она внедрена, про ребрендеринг и рисование логотипа, про то как пришёл к чтению, но тогда бы я эту статью никогда бы не дописал, а дорогой читатель бы её никогда не прочитал (потому что многобукаф), поэтому я решил на этом закончить, а если кого-то что-то из этого заинтересовала, то допишу в каменты.

Связанные посты
16 комментариев 👇

Прочитал описание, но так и не понял, для чего нужен этот сервис. Но узнал для себя что-то новое - люди читают книги на телефоне, удивительно.

  Развернуть 1 комментарий

@msamoylov, Михаил, я вас удивлю ещё больше если скажу что людей читающих с телефона не мало.
Смотрите вон https://imgur.com/a/X7jxNJk сколько читалок и сколько у них скачиваний, чудеса да?

Смотрите какие есть группы людей:

  1. Люди которые читают бумажные книги с малых лет, которым это интересно и которые регулярно что то читают - мой бот не для них
  2. Люди которые читают книги в электронных читалках - мой бот не для них, вероятно если человек купил себе читалку то он и так систематически читает
  3. Люди которые читают в телефоне, как мы выше выяснили таких не мало.

Но кроме первых трех читающих групп есть люди, которые не читают книги (по разным причинам, мне вот школа со своей литературой отбила желание читать), а сидят в тиктоках, шортсах, читают каналы в ТГ.

Вот для них и есть мой бот.

Плюс ещё есть такой момент, что каждое современное приложение и сервис пестрит всякими красочными кнопками и обложками, социальной составляющей, а мобильные читалки не менялись лет 10. Мой бот - это попытка привнести какие нибудь "современные" фишки в чтение, например ежедневный рейтинг по прочтению фрагментов - читаешь и чекаешь на каком ты месте, кто больше тебя читает кто меньше, некоторых (например меня) это торкает и стимулирует не бросать читать

  Развернуть 1 комментарий

@agapserg, А зачем чтению какие-то фишки? Ты просто читаешь с подходящего тебе носителя и все.

Ачивки какие-то и рейтинги выглядят довольно дико, если честно. Напоминает начальную школу и конкурсы по скоростному чтению. У меня даже грамота была какая-то в первом классе.

Человек или любит читать и делает это всю свою жизнь до тех пор, пока ему позволяет зрение, ну или просто не полюбил чтение и вряд уже полюбит. И никакие ачивки и принуждение не заставят его полюбить читать.

Поэтому лично мне этот сервис кажется странным и мертворожденным.

  Развернуть 1 комментарий

@msamoylov, наверно самая полезная фича в чтении, а точнее после чтения, это обсуждение с теми кто тоже только ее прочитал и хорошо помнит моменты. Условно соединять людей которые читают одну книгу в одно время и заканчивают ее вместе.

  Развернуть 1 комментарий

😱 Комментарий удален его автором...

  Развернуть 1 комментарий

@msamoylov, какие трупы, какие квадраты)
Получается и уроки литературы можно закрыть, прочитали дети, молодцы можно идти дальше.
Нет, есть люди которые умеют обсуждать чужой опыт, чужие идеи в группах. Это не только помогает социальному взаимодействию, но и может привести к внутренним открытиям каждого человека. Есть простое сравнение это посты в клубе и их комментарии, и комментарии как часто пишет васёк имеют ту же ценность как и сам пост!

  Развернуть 1 комментарий

Способ чтения через бот напомнил мне школьные годы и эпоху wap интернета. Cидя на задней парте, читал книжки по маленькому фрагменту, и потом терпеливо ждал пока загрузится следующий фрагмент :)

  Развернуть 1 комментарий

@petter, ой wap... Это же ещё были jimm клиент аськи, сименсы с монохромным дисплеем. Аж олдскулы свело. Ещё чуть попозже вышла обожаемая мной Нокиа 6600, супер крутой телефон.

А по делу - ну в целом так и есть. По сути этот бот - это mvp-версия читалки, в которой я обкатываю всякие свистоперделки

  Развернуть 1 комментарий

Без интернета не почитаешь, а для меня это важный триггер. Нет интернета можно и почитать книгу. Читаю на букмейте (той версии что ушла из россии, попросил, чтоб мой акк привязали к испании, самому никак, иначе плашка висит скачай букмейт от яндекса), на которой можно закачивать свои книги и также скачивать в оффлайн.

  Развернуть 1 комментарий

@vasyaivanovpv, полностью согласен с вами. Ну мб когда-нибудь запилю читалку, со всеми свистоперделками и офф-лайн режимом.

Но пока во многих вещах я конечно же упираюсь в ограничения телеграмма

  Развернуть 1 комментарий

@agapserg, попробовал сейчас и вот не понравилось что перехожу к 5 фрагменту, а бот еще накинул какое то уведомление техническое типо это ваш 5 фрагмент, и тем самым совсем сбил меня от чтения. Неожиданный поворот, при том что ты пишешь никаких уведомлений без моего желания.

Плюс не мог понять как начать читать книгу. Кнопка "сл фр" ужасная), почему не "дальше" или "читать" и тд?!

Ну и использовать кнопки клавиатуры по моему моветон. Инлайн лучше подходят, плюс уже есть и меню для шапки.

В общем проект интересный, можно сделать красоту! Но пользоваться я не буду)

  Развернуть 1 комментарий

@vasyaivanovpv, про уровни на 5 фрагменте (там ещё будет и на 10м и на 25 и каком то еще, потом все реже и реже, логика в похвале юзера, что мол молодец хотя бы 5 прочитал) - согласен, спасибо что ткнули носом. Реально мой косяк, сделаю что уровни уведомления об уровнях надо включать, а по умолчанию выключены.

Сл фр было сначала, как то осталось, просто привык, но тоже спасибо за мнение. Я проведу у себя на канале голосовалку и юзеры выберут как переименовать кнопку.

Кнопки клавиатуры сознательно используются, я пол года юзаю наоборот удобнее что кнопка далее на одном месте. Думаю это дело каждого, но я себе завел тикет сделать настройку клавиатуры, чтобы те кому по душе инлайн сделали инлайн.

Спасибо за то что потратили время, протестили и ещё написали все это.

  Развернуть 1 комментарий

@agapserg, обожаю тестить новые небольшие проекты.

  Развернуть 1 комментарий

A у бота будет публичный репозиторий?

Понимаю, что может быть не до этого, да и стыдно возможно за код. Но это у всех так, зато можно будет быстро мелкие огрехи поправить.

  Развернуть 1 комментарий

@m0rtyn, я думал об этом и пока прошел к тому что полностью публичным наверное нет, но если есть желающие покопаться в говнокоде, то могу дать шару.

Надо только почистить код от совсем лажи.

  Развернуть 1 комментарий
Агапов Сергей Предприниматель автор 17 февраля в 11:46

😱 Комментарий удален его автором...

  Развернуть 1 комментарий

Бот крутой. Я попробую его использовать, потому что он удобен в сочетании с остальными форматами книг (бумажные, электронные, аудио и прочие)

Кстати похожий проект от соклубовца
https://vas3k.club/project/11002/

  Развернуть 1 комментарий

@m0rtyn, вэлкам, спасибо за добрые слова.

Нифига получается 3й бот подобной тематики))) это очень круто.

У меня уже реализованы автоприсылания - называется режим блога и в нем же реализованы таймзоны, так же реализована возможность настроить кастомнык времена присвлания, хоть каждые 15 минут.

Вообще все фичи, что внедряю я выкладываю на канал https://t.me/ReadStreakBlog

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб