Telegram x ChatGpt x Notion = Картотека Лумана [Low-code]
Привет Habr!
TL: DR
Цель данной статьи, в очередной раз, убедить тебя, читатель, что использование генеративных ИИ в реализации твоих идей уже наступившее настоящее (почти). И это один из простых примеров, показывающих, что не требуется сильных технических навыков, чтобы улучшить свою жизнь и это доступно каждому.
От прошлого не убежишь
С самого детства, я любил систематизировать получаемую информацию, записывать, складывать её и использовать. Книги и энциклопедии, после прочтения, походили на поле боя с выпирающими из разных сторон закладками (Автор осуждает порчу любых книг, пользуйтесь карандашом! ). С появлением Интернета, поток информации в одну отдельную голову, увеличился в десятки раз, на текущее время с соц.сетями и мессенджерами, вероятно уже в сотни раз. Но желание сохранять полезную и нужную информацию никуда не пропало.
Как говорят умные люди создающие продукты, чтобы появилась идея, ей должна предшествовать проблема или проще говоря боль. Моя боль, обусловлена человеческой ленью. А лень — двигатель прогресса, поэтому предлагаю заглянуть под капот.
Еще давно в поисках способов организации своих папок заметок, мне попалась информация, о таком человеке, как Никлас Луман, который предложил и успешно использовал свой метод для систематизации и хранения своих заметок. Она же картотека Лумана, Zettelkasten и etc.
В сети она разлетелась уже давно и по несколько раз в год возникает в ленте, обещая новому поколению: Второй мозг, Продуктивность Илона Маска и лечение от всех болезней.
На одном только Habr 3 страницы поиска по ключевому слову (тык).
Попыток построения такой картотеки у меня было уже несколько. Сначала в старом добром Evernote, потом Notion, после всем известный Obsidian. С костылями, множественными «но», это работало, время жизни каждой картотеки было разное, от нескольких месяцев, до 2 лет, но в конечном итоге умирало и больше пользоваться этим было невозможно.
Причина проста, человек не сидит изолированный в капсуле депривации с хорошей статьей, из которой методично может выписать заметку, просмотреть ворох других заметок, связать их, протегировать, отнести к разным разделам, чаще бывает что на одной ноге выходя из вагона метро, проталкивая своё тело после работы, ты натыкаешься на интересную мысль, которую бы хотел запомнить, и тут точно не до того, чтобы понять, а относится ли статья про осьминога, к тегу биологические компьютеры или микросервисная архитектура.
Метод Лумана действительно мощный инструмент, но требует за это плату в виде сильной самоорганизации и следования инструкциям. Но хоть и человек стремится к самосовершенствованию, у нас есть пороки, в том числе, банальная лень. А вот у ботов и скриптов их нет :)
Итого, что имеем:
Желание — сохранять заметки по заветам дядюшки Лумана.
Проблему — Сложно делать это самому.
Четкие инструкции — которые легко оборачиваются в команды для скриптов.
Лень — писать этих ботов самому.
Четвертый пункт, это продолжение прошлой мысли, если у нас нет времени/ желания, проставить тег на заметке, то откуда появится желание вспоминать ЯП и мучаться с написанием кода, особенно в 2024 году, когда на каждом углу кричат, что скоро всех разработчиков заменит ИИ. Отличная проверка возможностей ИИ, да и возможность потыкать его в разных интересных местах.
Из чего состоит наш двигатель:
Telegram — так как всегда под рукой, нативно приложения имеют возможность отправлять через «Поделиться», большое количество внутренних каналов, независимость от платформы или даже наличия постоянного интернет соединения.
Notion — как БД, для хранения и отображения, можно использовать и Obsidian, или любой другой инструмент, что имеет API для взаимодействия. Notion выбран, потому что это мой основной инструмент для организации, и удобнее иметь все в рамках «одного окна».
ChatGPT (OpenAPI) — на сегодняшний день, самый продвинутый и дешевый генеративный ИИ.
VPS\Сервер — виртуалка, или любая другая ЭВМ на которой будет крутиться наш бот.
Боты пишут ботов
Для начала, берём обычный листик и рисуем схему, как представляем себе нашу идею уже воплощенную в жизнь, для текущего примера, это выглядит так:
Оригинальную схему не выкладываю, так как стыдно :)
Дальше, заходим в ChatGPT, описываем ему весь контекст, что нужно сделать, как идут потоки данных, какие кнопки отображать в боте, какие поля есть в нашей таблице Notion и так далее. Чем больше и точнее будет описание и чем точнее будет представление, как оно должно работать, тем быстрее получится результат.
Наш ИИ помощник сразу начнет формировать пошаговые инструкции, если что-то покажется непонятным, всегда можно попросить его разделить на подпункты, вплоть до действий в какую кнопку ткнуть. Выглядит это примерно так:
Показательный пример раскрытия пункта на подпункты с явными действиями. Иногда он понимает слишком буквально, и углубляется вплоть до банального nano:)
По сути дальше всё превращается в следование по шагам, и затирание клавиш CTR+C CTRL+V, борьбе с некоторыми заскоками разных моделей chatGPT и недопониманию ИИ, что ты от него хочешь получить. Промт-инженеры вероятно страдают кошмарами ночами
Дальше уже только фантазия, что хотим еще добавить. Для текущего примера, возьмем базовый функционал бота:
Анализировать текст отправленный в него.
Придумывать теги на основе анализа текста.
Получать список тегов из Notion для ручного заполнения.
Выглядит это примерно так:
Использование ботов Telegram позволяет перейти на кнопочное меню, что значительно ускоряет процесс добавления заметки
Формирование тегов происходит по определенно заданному промту для GPT
Созданная заметка в Notion
Расширение функционала, в том числе, анализ любой другой информации для других полей, создание связей, например объединенных одним тегов, и другие любые идеи, так же реализуются по описанному алгоритму. Выбор архитектуры бота, остается только за Вами, будет это монструозный один скрипт на все функции или отдельные скрипты для каждого поля\функции и ядро использующее эти функции.
А теперь о проблемах и именно поэтому статья носит завлекающую надпись Low‑code, а не Zero‑code, и этот момент хочется отдельно отметить ниже.
Помоги себе сам
ChatGPT, как и другие генеративные ИИ тренируются на определенном объеме данных, конечно эти объемы гигантские, но к сожалению, не бесконечные, к тому же ограничены по времени, когда берётся срез данных для обучения. Это приводит к проблемам, что разные модели обладают разными знаниями о том что им известно. И если в рамках понятий, как приготовить торт, это абсолютно не важно, то с точки зрения развивающихся или технических сегментов нашего мира, то отставание в недели уже могут критично сказаться на релевантности формируемого ответа или написаного кода.
Так и произошло и с текущем примером, а именно с пониманием ИИ о API Notion, Telegram, OpenAI. ChatGPT3.5 — использует старые библиотеки Python для API Telegram, ChatGPT4 — уже умеет в актуальные TG и Notion, но не знает, что OpenAI поменял свои методы в библиотеке.
Попытки подсунуть ему актуальное описание из документации, пока носят лишь негативный результат, если и запоминает, то на одну‑две итерации, потом все забывает и делает по старому. Поэтому логичное расширение функционала бота, например на возможность чтения текста с фото, и его анализу, будет наталкиваться на борьбу с мельницами, а точнее убеждениями, что знает ИИ.
Приходилось часто закатывать рукава и самому переписывать модули или править явные ошибки в коде, явные даже тому, кто последний раз IDE открывал 10 лет назад.
Логичный вывод, что ИИ не заменит сейчас человека во многих сферах, в том числе и в разработке, и эта мысль, конечно же звучит в первом же комментарии, про очередного ИИ «убийце%профессия%». Но предлагаю посмотреть на это под другим углом, зачем делать себе врага, думая что он отберёт твой хлеб, а тебе в жарких спорах, доказывать и находить десятки доводов, против этого ИИ. Вероятно правда кроется в середине, и эта середина — синергия ИИ и человека, и кажется это единственный верный путь.
Основная мысль этой статьи, дать пинок, на своём примере, что сейчас идёт расцвет ИИ, и даже на текущий момент, опуская некоторые «но», ИИ позволяет решать, автоматизировать, и облегчать жизнь для конкретного человека — Вас.
* Одевая розовые очки:*
С нетерпением жду того времени, чтобы условная домохозяйка создавала себе ботов для формирования списка продуктов, условный директор завода систематизировал получение ОС от работников, условный школьник развлекал себя не залипанием в ленту, а воплощая идеи из воображения.
Поэтому призываю Вас пользоваться, учиться, развиваться и использовать ИИ помощников, ну и так же жду в комментариях, для обсуждения Ваших мыслей. Мир, любовь, ИИ!