TGViewer
Гриненко про ИИ, бизнес и образование Гриненко про ИИ, бизнес и образование @devspotting · 3.12K subscribers
Post #62 645
В поисках замены LLM-чату

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

Вот бы всё автоматически превращалось в локальные markdown-файлы, накапливалось в базе знаний с нормальной таксономией на тегах и чтобы с накопленной базой можно было общаться!

А еще вечность назад Серега @veged подкинул идею — интерфейс для общения с LLM должен быть в виде дерева вместо линейного диалога, чтобы можно было исследовать большую тему с разных сторон и не повторять нейронке все вводные, но при этом и не перегружать контекст нерелевантными вопросами. Да и самому в этом потом как-то ориентироваться.

Вам тоже уже захотелось срочно такое навайбкодить?

Этот пост — для самураев, я расскажу про Путь. Про результат — во второй части.

Путь

Первая мысль была использовать какой-нибудь mindmap в качестве UI. Но от этой идеи я отказался еще на этапе выбора библиотеки — работать в таком формате с большими текстами неудобно.

Далее подход к снаряду сделали стажеры на AI-хакатоне в Яндексе. Ребята целый день вайбкодили все с нуля, к демо даже получили рабочий прототип, но он был скорее иллюстрацией идеи, чем готовым продуктом.

Второй подход я уже делал сам. Для UI сразу взял react-flow, в качестве хранилища использовал файловую систему — каждый узел представлен 2 файлами: markdown для контента и json для метаданных (здесь в том числе хранятся связи, а сами файлы лежат плоско в папке проекта).

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

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

Часа за три разговоров с Claude эта схема заработала, но с кучей ограничений и шероховатостей. В частности была захардкожена пара конкретных LLM-провайдеров, доступ к API которых у меня был оплачен (разумеется, даже у этой пары был разный контракт).

В третий раз я вернулся к идее, когда познакомился с @mariozechner/pi-ai — пакетом, который предоставляет абстракцию над парой десятков провайдеров, сотней моделей и их режимов.

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

Так что проект снова на какое-то время встал на паузу.

Продолжение в следующем посте.

@devspotting
  • 👍 10
  • ❤ 2
  • 👏 1
More from @devspotting
  1. Sep 22, 2026Обсуждаем Jev в седьмом выпуске «ИИ — не новостей» с Сергеем @veged_and_code Бережным Кром…
  2. Sep 17, 2026#ГриненкоПро №25 с Анастасией Бианко, руководителем отдела подбора персонала в Циан https:…
  3. Sep 17, 2026Аркадий, а что мы ускорили? Помните Аркадия, которого мы просили убрать руки с клавиатуры?…
  4. Sep 16, 2026На OpenRouter очередная бесплатная стелс-модель — Union Alpha. UPD: лавочка закрылась, мод…
  5. Sep 15, 2026Шестой выпуск «ИИ — не новостей» уже на Ютубе (или на ваших любимых стримингах). На этот р…
  6. Sep 15, 2026But I'm likely human after all I'm likely human after all Don't put your blame on me Don't…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →