Obsidian и нейросети

Иван Никитин и партнерыНовостиObsidianObsidian и нейросети

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

Возможности Obsidian значительно увеличиваются при его интеграции с нейросетями. Фактически, мы подключаем к нашему «второму мозгу» умного и исполнительного помощника с широкими возможностями.

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

В данной цикле заметок будет рассмотрен плагин Obsidian Copilot, который на текущий момент имеет более 200 тысяч скачиваний.

Как можно понять из названия, Copilot — это помощник и ваш второй пилот при работе с заметками. Он может многое: создавать заметки, корректировать их, исправлять ошибки, помогать со вставкой блоков, формул, графиков и многого другого, генерировать идеи, отвечать на вопросы на основании заметок. Мы рассмотрим некоторые возможности в отдельной статье Сценарии использования Obsidian Copilot, а настройку плагина можно найти в статье Настройка Copilot в Obsidian.

Работа с Copilot в Obsidian

Copilot может функционировать в трех режимах:

  • Chat
  • Long Note QA
  • Vault QA

Переключение режимов осуществляется в панели Copilot.

Переключение режимов Copilot

Ниже подробно рассмотрены каждый из режимов.

Chat — режим чата

В режиме чата происходит диалог с нейросетью.

Нейросеть способна запоминать контекст, то есть предыдущую введенную информацию или свои ответы. Например, вопрос «Какая столица Франции?» приведет к ответу «Париж«. Следующий вопрос «А России?» также даст правильный ответ, даже если мы не уточнили, что именно имеем в виду.

Запоминаемый контекст зависит от выбранной модели и может быть довольно большим — до десятков тысяч токенов (одно слово — это примерно 2 токена).

Чтобы сбросить контекст и начать диалог с чистого листа, нажмите кнопку с круглыми стрелочками.

Новый чат в Copilot

Важно! В зависимости от настроек плагина чаты МОГУТ НЕ СОХРАНЯТЬСЯ автоматически, поэтому лучше сначала сохранить чат, если он вам важен, а затем уже сбрасывать контекст.

Сохранение чата в виде заметки Obsidian

В качестве контекста Copilot может передать нейросети любую заметку. Откройте ее и нажмите кнопку со стрелкой вверх.

Загрузка текущей заметки в качестве контекста запроса нейросети

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

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

Подсказка 1: Старайтесь всегда указывать нейросети ее роль, например, «Действуй как опытный маркетолог.» Это значительно повышает качество ответов.

Подсказка 2: Старайтесь всегда предоставлять максимум информации и при необходимости указывать формат ответа, например: «Ответ напиши в формате markdown со следующей структурой… (напишите или укажите приемлемый для вас шаблон заметки)».

Подсказка 3: У Copilot есть возможность заранее сохранить промпты и вызывать их горячей клавишей или командой. См. видео с примерами на странице плагина.

Режимы QA — вопросы и ответы

Как было сказано выше, режимы QA (Question-Answer — вопрос-ответ) отличаются от обычного чата тем, как формируется контекст диалога. В режиме чата контекст включает ваш промпт, уточнения и ответы нейросети, а также загруженную заметку. В режиме QA в контекст загружается НЕ ВСЯ ЗАМЕТКА, а только наиболее важные части из текущей заметки или любых заметок в хранилище.

Выбор этих частей осуществляет Copilot. Происходит это следующим образом:

Сначала Copilot индексирует все хранилище, считывая все заметки в Obsidian, разбивая их на части (чанки) и вычисляя так называемый вектор для каждого чанка.

Чанк — это перекрывающиеся фрагменты текста (у Copilot длина чанка составляет около 1000 токенов, 400-500 слов). Например, текст «Мама мыла раму» может быть разбит на чанки «Мама мыла» и «мыла раму«.

Вектор — это числовое представление чанка. Чанк преобразуется в набор чисел (фактически координаты некой точки в n-мерном пространстве). Считается, что вектор начинается с нуля и заканчивается указанными координатами. Грубо говоря, это просто набор n чисел, где n — размерность пространства расчетов. Каждая координата представляет собой некую предметную область, например: «Насколько этот текст рассказывает о людях?», «Насколько этот текст о погоде?» и т.п. Таких координат сотни и тысячи, и вектор — это просто набор сотен и тысяч чисел, характеризующий данный фрагмент текста.

Для чего это нужно: чтобы быстро находить семантически схожие чанки (фрагменты текста) по запросу. Семантическая схожесть — это схожесть по смыслу. Для ее поиска используется алгоритм RAG (Retrieval-Augmented Generation). В векторе запроса выбираются подходящие по смыслу фрагменты текста из вашего хранилища.

Например, если мы задаем вопрос «Что мыла мама?«, считается вектор этого запроса, и выбираются вектора, находящиеся рядом, и мы получаем два вектора чанков «мама мыла» и «мыла раму» . Важно! Это еще НЕ ОТВЕТ! Это лишь подготовка к запросу.

Чанки и вектора называются эмбеддингами. Понятно, что эти расчеты необходимо где-то выполнять и где-то хранить результаты. Для расчета эмбеддингов используются специальные модели, а рассчитанные вектора хранятся локально в специальной базе данных, созданной Copilot. Более подробно настройку эмбеддингов и их индексацию мы рассмотрим в статье «Настройка Copilot в Obsidian«.

Таким образом, при запросе в режиме QA Copilot извлекает из базы наиболее близкие чанки (фрагменты текста) и формирует контекст запроса. Например, вы спрашиваете в режиме QA: «Что мыла мама?«. Copilot отправляет нейросети запрос:

Есть информация:
— мама мыла
— мыла раму
Ответь, что именно мыла мама?

И нейросеть отвечает! При этом ваши заметки НЕ ЗАГРУЖАЮТСЯ в нейросеть! Загружаются только несколько чанков, выбранных алгоритмом RAG. Такой подход позволяет работать с огромным набором заметок (всё хранилище Obsidian!), не загружая его в нейросеть. Режимы QA это и реализуют.

Режимы QA отличаются лишь тем, какие заметки используются при расчете близости векторов и выборе чанков:

  • Long Text QA использует вектора и чанки только текущей заметки.
  • Vault QA — вектора и чанки всех заметок в хранилище.

Режимы QA позволяют работать с информацией любого объема, имеющейся в хранилище, достаточно экономно расходуя входящие токены: по грубым оценкам, Copilot загружает 2-4 чанка в контекст, то есть на входе 2-4 тысячи токенов при запросе нейросети, что очень экономно и быстро.

Следует отметить, что качество работы режимов QA напрямую зависит от качества заметок в вашем хранилище Obsidian. Чем более у вас подробные и полные заметки, тем качественнее будет отбор векторов и чанков, а значит, и лучше ответы. Важно отметить, что связи (ссылки в заметке), вставки dataView и запросы tasks НЕ УЧИТЫВАЮТСЯ и рассматриваются просто как текст.

Но в целом, общее качество работы режимов QA оставляет желать лучшего. Общие вопросы, такие как «Придумай мне тему реферата по предмету такому-то«, обрабатываются отлично, а вот вопросы типа «Какие задачи я не сделал вчера?» могут давать неполные или вообще нерелевантные ответы. Очень важно помнить, что в режимах QA в нейросеть загружается ограниченное число фрагментов текста. То есть, если вы спросите «Перечисли даты всех моих поездок в такой-то город«, и у вас нет одной полной заметки с ответом, то ответа вы не получите, потому что Copilot не загрузит в нейросеть ВСЕ ВАШИ ЗАМЕТКИ!

Подсказка 1: В режимах QA старайтесь в запросе максимально подробно описывать общий смысл вопроса, а не только ключевые слова. Это позволит Copilot точнее выбрать чанки для контекста.

Подсказка 2: Если на вопрос в режиме QA модель ответила откровенной чушью, просто переформулируйте запрос другими словами.

Подсказка 3: Время от времени нажимайте на кнопку с изображением пазла или выполняйте команду «Copilot: Index (refresh) vault for QA», чтобы добавить новые или измененные заметки в хранилище векторов.

Обновление векторного хранилища в Copilot

Также развенчаем несколько популярных мифов.

Миф 1. Работать с ChatGPT и другими нейросетями в России невозможно без VPN!

Нет, это не так. Существует как минимум три способа обойти необходимость использования VPN в России. В статье Настройка Copilot в Obsidian рассматривается один из них.

Миф 2. Работа с ChatGPT и особенно с современными моделями — это очень дорого!

Нет, это не так. Всё, конечно, зависит от выбранной модели, что также подробно рассматривается в статье Настройка Copilot в Obsidian. Например, автор этой статьи, не особо заботясь об экономии, за шесть месяцев активной, каждодневной работы с различными нейросетями потратил около 8 (восьми) долларов США, что составляет (с учётом всех комиссий и переводов) около одной тысячи рублей. Еще раз: это цена полгода активной, каждодневной работы. Более того, если экономить, можно использовать только бесплатные модели, которые ничуть не уступают большим и известным аналогам.

Миф 3. А что с безопасностью?

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

Добавить комментарий