Привет Habr!

TL:DR

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

От прошлого не убежишь

С самого детства, я любил систематизировать получаемую информацию, записывать, складывать её и использовать. Книги и энциклопедии, после прочтения, походили на поле боя с выпирающими из разных сторон закладками (Автор осуждает порчу любых книг, пользуйтесь карандашом!). С появлением Интернета, поток информации в одну отдельную голову, увеличился в десятки раз, на текущее время с соц.сетями и мессенджерами, вероятно уже в сотни раз. Но желание сохранять полезную и нужную информацию никуда не пропало.

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

Еще давно в поисках способов организации своих папок заметок, мне попалась информация, о таком человеке, как Никлас Луман, который предложил и успешно использовал свой метод для систематизации и хранения своих заметок. Она же картотека Лумана, Zettelkasten и etc.

В сети она разлетелась уже давно и по несколько раз в год возникает в ленте, обещая новому поколению: Второй мозг, Продуктивность Илона Маска и лечение от всех болезней.
На одном только Habr 3 страницы поиска по ключевому слову (тык).

Попыток построения такой картотеки у меня было уже несколько. Сначала в старом добром Evernote, потом Notion, после всем известный Obsidian. С костылями, множественными «но», это работало, время жизни каждой картотеки было разное, от нескольких месяцев, до 2 лет, но в конечном итоге умирало и больше пользоваться этим было невозможно.

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

Метод Лумана действительно мощный инструмент, но требует за это плату в виде сильной самоорганизации и следования инструкциям. Но хоть и человек стремится к самосовершенствованию, у нас есть пороки, в том числе, банальная лень. А вот у ботов и скриптов их нет :)

Итого, что имеем:

  1. Желание — сохранять заметки по заветам дядюшки Лумана.

  2. Проблему — Сложно делать это самому.

  3. Четкие инструкции — которые легко оборачиваются в команды для скриптов.

  4. Лень — писать этих ботов самому.

Четвертый пункт, это продолжение прошлой мысли, если у нас нет времени/ желания, проставить тег на заметке, то откуда появится желание вспоминать ЯП и мучаться с написанием кода, особенно в 2024 году, когда на каждом углу кричат, что скоро всех разработчиков заменит ИИ. Отличная проверка возможностей ИИ, да и возможность потыкать его в разных интересных местах.

Из чего состоит наш двигатель:

  1. Telegram — так как всегда под рукой, нативно приложения имеют возможность отправлять через «Поделиться», большое количество внутренних каналов, независимость от платформы или даже наличия постоянного интернет соединения.

  2. Notion — как БД, для хранения и отображения, можно использовать и Obsidian, или любой другой инструмент, что имеет API для взаимодействия. Notion выбран, потому что это мой основной инструмент для организации, и удобнее иметь все в рамках «одного окна».

  3. ChatGPT(OpenAPI) — на сегодняшний день, самый продвинутый и дешевый генеративный ИИ.

  4. VPS\Сервер — виртуалка, или любая другая ЭВМ на которой будет крутиться наш бот.

Боты пишут ботов

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

Оригинальную схему не выкладываю, так как стыдно :)
Оригинальную схему не выкладываю, так как стыдно :)

Дальше, заходим в ChatGPT, описываем ему весь контекст, что нужно сделать, как идут потоки данных, какие кнопки отображать в боте, какие поля есть в нашей таблице Notion и так далее. Чем больше и точнее будет описание и чем точнее будет представление, как оно должно работать, тем быстрее получится результат.

Наш ИИ помощник сразу начнет формировать пошаговые инструкции, если что-то покажется непонятным, всегда можно попросить его разделить на подпункты, вплоть до действий в какую кнопку ткнуть. Выглядит это примерно так:

Показательный пример раскрытия пункта на подпункты с явными действиями. Иногда он понимает слишком буквально, и углубляется вплоть до банального nano :)
Показательный пример раскрытия пункта на подпункты с явными действиями. Иногда он понимает слишком буквально, и углубляется вплоть до банального nano:)

По сути дальше всё превращается в следование по шагам, и затирание клавиш CTR+C CTRL+V, борьбе с некоторыми заскоками разных моделей chatGPT и недопониманию ИИ, что ты от него хочешь получить. Промт-инженеры вероятно страдают кошмарами ночами

Дальше уже только фантазия, что хотим еще добавить. Для текущего примера, возьмем базовый функционал бота:

  1. Анализировать текст отправленный в него.

  2. Придумывать теги на основе анализа текста.

  3. Получать список тегов из Notion для ручного заполнения.

Выглядит это примерно так:

Использование ботов Telegram позволяет перейти на кнопочное меню, что значительно ускоряет процесс добавления заметки
Использование ботов Telegram позволяет перейти на кнопочное меню, что значительно ускоряет процесс добавления заметки
Формирование тегов происходит по определенно заданному промту для GPT
Формирование тегов происходит по определенно заданному промту для GPT
Созданная заметка в Notion
Созданная заметка в Notion

Расширение функционала, в том числе, анализ любой другой информации для других полей, создание связей, например объединенных одним тегов, и другие любые идеи, так же реализуются по описанному алгоритму. Выбор архитектуры бота, остается только за Вами, будет это монструозный один скрипт на все функции или отдельные скрипты для каждого поля\функции и ядро использующее эти функции.

А теперь о проблемах и именно поэтому статья носит завлекающую надпись Low‑code, а не Zero‑code, и этот момент хочется отдельно отметить ниже.

Помоги себе сам

ChatGPT, как и другие генеративные ИИ тренируются на определенном объеме данных, конечно эти объемы гигантские, но к сожалению, не бесконечные, к тому же ограничены по времени, когда берётся срез данных для обучения. Это приводит к проблемам, что разные модели обладают разными знаниями о том что им известно. И если в рамках понятий, как приготовить торт, это абсолютно не важно, то с точки зрения развивающихся или технических сегментов нашего мира, то отставание в недели уже могут критично сказаться на релевантности формируемого ответа или написаного кода.

Так и произошло и с текущем примером, а именно с пониманием ИИ о API Notion,Telegram, OpenAI. ChatGPT3.5 — использует старые библиотеки Python для API Telegram, ChatGPT4 — уже умеет в актуальные TG и Notion, но не знает, что OpenAI поменял свои методы в библиотеке.

Попытки подсунуть ему актуальное описание из документации, пока носят лишь негативный результат, если и запоминает, то на одну‑две итерации, потом все забывает и делает по старому. Поэтому логичное расширение функционала бота, например на возможность чтения текста с фото, и его анализу, будет наталкиваться на борьбу с мельницами, а точнее убеждениями, что знает ИИ.

Приходилось часто закатывать рукава и самому переписывать модули или править явные ошибки в коде, явные даже тому, кто последний раз IDE открывал 10 лет назад.

Логичный вывод, что ИИ не заменит сейчас человека во многих сферах, в том числе и в разработке, и эта мысль, конечно же звучит в первом же комментарии, про очередного ИИ «убийце%профессия%». Но предлагаю посмотреть на это под другим углом, зачем делать себе врага, думая что он отберёт твой хлеб, а тебе в жарких спорах, доказывать и находить десятки доводов, против этого ИИ. Вероятно правда кроется в середине, и эта середина — синергия ИИ и человека, и кажется это единственный верный путь.

Основная мысль этой статьи, дать пинок, на своём примере, что сейчас идёт расцвет ИИ, и даже на текущий момент, опуская некоторые «но», ИИ позволяет решать, автоматизировать, и облегчать жизнь для конкретного человека — Вас.

* Одевая розовые очки:*

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

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

Комментарии (10)


  1. chemtech
    31.07.2024 09:33

    Когда планируете делать J.A.R.V.I.S. ?


    1. ChesSpb Автор
      31.07.2024 09:33
      +1

      Уже кстати шаги к этому есть, если не лень поднимать VPN то вот:
      https://www.linkedin.com/feed/update/urn:li:activity:7193977610681401345/
      Сотрудник Samsung показал на видео, как он печатает модели на 3D принтере без единого прикосновения к клавиатуре или мышки - управляя только голосом, какую именно фигуру создать. Насколько он рассказывает, то там связка Voice to text GPT, сверху инструкции для GPT для оборачивание их в Python для взаимодействия с Bambu Studio и отправкой на печать.
      И да, GPT у него запущен на планшете который держит рука манипулятор :)


  1. ABy
    31.07.2024 09:33
    +1

    Думаю что статья бы сильно выиграла, если бы в ней хотя бы в двух строках описывалась суть метода Лумана. Понимаю что для человека в теме это кажется излишним. В статье даже целый абзац о том, какая это банальщина. Но черт возьми, о чем вообще речь идёт?! :)


    1. ChesSpb Автор
      31.07.2024 09:33

      Не хотелось повторяться, поэтому приводил ссылки, чтобы удобнее было "провалиться" в недры хабра. Например вот статья: https://habr.com/ru/articles/508672/
      Но замечание верное. Если прямо в две строчки:
      Придуманный Луманом метод- способ хранения заметок с помощью группировок, и связывания их друг с другом. Делается для того, чтобы потом продуктивно с ними работать - генерировать идеи, искать неожиданные связи из разных сфер и etc.
      Всё гениально - просто :)


      1. ABy
        31.07.2024 09:33
        +1

        По вашей ссылке стена текста. Что-то на уровне: "Моя легенда берет начало c XII века. Хотите услышать мою легенду?"

        Я так понял из статьи что заметки связыавются с помощю тегов, а ЧатГПТ должен генерировать эти теги? А разве в мозгу и так что-то похожее само собой не происходит?


        1. ChesSpb Автор
          31.07.2024 09:33

          Да, в данном примере так. Есть возможность их выбрать руками и сгенерировать с помощью GPT.
          Мозг не всегда настроен на генерацию, может на коротких дистанциях, заставлять себя эти теги проставлять, но при отсутствии строжайшей самодисциплины, все обычно скатывается до привычки использовать 3-4 тега: Важное, остальное, интересное, идея :)
          Я конечно утрирую, но не думаю, что только у меня, в закладках лежит очень много отложенных статей в одной большой куче "На потом". Намного проще нажать одну кнопку и не переживать, поставил ли ты тег, правильно ли его соотнёс. Ну и так же гибкость никто не убирал, всегда можно их задать и вручную, или дополнить сверху автосгенерированных.


  1. le_den
    31.07.2024 09:33

    отличная статья. можно примеры кода бота? или ссылку на репозиторий


  1. Ivstrek
    31.07.2024 09:33

    А зачем эти боты делать?


  1. Sntsdg
    31.07.2024 09:33
    +1

    Идея интересная, возьму на заметку. От себя добавлю, что есть 2 категории людей ведущих заметки: человек который архивирует, человек который пишет, иными словами где хранить или как ее получить.

    Если вы все таки хотите натыкаться на них случайно, нежели искать, то при именовании тега, лучше спрашивать себя: при каких обстоятельствах я хочу наткнуться на нее случайно. Например, вместо ПРОГРАММИРОВАНИЕ, можно написать #методы_сортировки_двумерного_массива


  1. baslie
    31.07.2024 09:33

    Доброго времени! А можно взглянуть на код? Стало интересно :)