О концепции LLM-Wiki я впервые прочитал на X (Twitter). Чтобы позже ознакомится детальнее, я заложил в закладки и... так там эта заметка до сих пор лежит непрочитанной 😅
Но чуть позже на DOU я прочитал не еще раз про эту концепцию, а уже про ее конкретную реализацию от Андрея Богдановича (некий чиновник одной из госинспекций) с ссылкой на GitHub - а этот материал уже можно было брать за основу 💡
В виде голой концепции LLM-Wiki сразу решала вопрос с потерей информации из непрочитанных материалов. Так как тут LLM читает и анализирует абсолютно все - т.е. даже если у человека мало времени на знакомство с текстом, концепции из этого материала больше не пропадают, а аккуратно выделяются и логически связываются с другими ранее зафиксированными сущностями. Другими словами - вместо чтения статей десяти статей разных авторов на одну тему, вы в своей базе знаний получаете единую статью-компиляцию на заданную тему, в которой упоминаются мнения этих десяти авторов со ссылками на оригиналы.
Но тратить время на выгрузку всех статей в читаемом виде в inbox не хотелось и потому первым моим улучшением концепции стало добавление служебного \inbox\urls.txt , в который можно было закидывать пачки ссылок и они далее самостоятельно выгружались в базу в виде документов. На днях еще улучшил механизм - добавил склеивание результатов нескольких ссылок в единый документ для многостраничных статей, а для X добавил механизм выгрузки связанных твиттов для постов-тредов.
Мне понравилась идея у Богдановича, что входящие материалы могут быть на разных языках, но главным у него оставался украинский. Я сразу сделал себе дефолтными для ведения базы русский, а для поисковых тегов добавил украинский и английский. Но это все остается настраиваемо! Если есть желание добавить теги на польском, румынском и турецком, а саму базу знаний вести на казахском, то это правка буквально двух строчек в конфиге.
Как только я начал наполнять свою базу, то сразу отметил насколько разные материалы различаются по техническому уровню и квалификации авторов - очевидно что мнение индуса-нонейма не нужно обрабатывать с теми же приоритетами, что официальные материалы от вендоров (а сообщения из прес-релизов всегда тщательно перепроверять). Поэтому я добавил настраиваемую классификацию (т.е. предопределенные категории, которые можно отключать или наоборот еще сильнее расширять) и добавил в конфиг для каждой категории указания насколько можно доверять материалам, можно ли из материала пополнять глоссарий или просто записать как есть без обработки. Для ссылок это выглядит как предопределенные теги перед ссылкой, а для файлов автоматически создаются требуемые подкаталоги для загрузок.
В реализации от Богдановича оригинальные материалы из inbox/ в raw/ переносились самим ИИ на этапе импорта. Но мне это показалось странным - недетерминированное поведение самого агента плюс трата токенов. Поэтому у меня перед импортом добавлен этап подготовки, где Python скрипт скачивает статьи по ссылкам, вытаскивает содержимое мультимодальных файлов и так далее, а потом сам все размещает в raw/. В результате, для ИИ остается только проанализировать новое и записать в базу.
Поскольку я хотел иметь доступ к своей базе с различных устройств и поэтому разместил ее на своем Google Drive, то одной из первых задач стало отделение ПК-зависимых скриптов, библиотек и кешей (которые занимали очень много места) от самой базы знаний (база Obsidian).
Поскольку проект LLM-Wiki перестал быть просто коротким набором скриптов и скилов для ИИ и определенная база знаний уже набралась (которую было бы жать потерять), поэтому возникла необходимость в инструменте обновления. К проекту был добавлен файл манифеста с указанием всех служебных файлов и их хеши, чтобы при обновлении все файловые операции были максимально прогнозируемыми и безопасными (у скрипта обновления даже предусмотрен холостой запуск для предварительного просмотра плана обновления). Теперь обновление максимально простое - из каталога проекта запустить скрипт scripts\update.bat на вход которого подать путь к zip-архиву нужной версии с Github
====
Даже не знаю, что мне во всем этом больше принесло удовольствия - создание и развитие собственного ИИ-агента для ведения базы знаний, или что я наконец-то стал разгребать свои залежи ссылок и наконец-то закрыл большую часть закладок в своей браузере 😂
Если интересно ознакомится с результатом:
https://github.com/DementorAK/llm-wiki/
Post #400
147
- 👍 3
- 🔥 3