Продуктивность

Obsidian и локальный ИИ: как связать заметки с моделью

Связка Obsidian с локальной моделью собирается за вечер, но ломается в трёх предсказуемых местах. Разбираем настройку по шагам, типовую ошибку с origins, и отдельно — что делать с плагинами, которые отправляют хранилище в облако.

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

Разберём по порядку. В конце — отдельный сюжет: как поток идёт в обратную сторону, из системы с автоматической памятью в хранилище Obsidian.

#Что понадобится

  • Obsidian и хранилище с заметками. Версия не критична, критично то, что заметки лежат файлами: именно поэтому связка вообще возможна.
  • Ollama на той же машине либо на машине в вашей сети — установленная и с хотя бы одной скачанной моделью.
  • Модель, которая влезает в вашу память. Для работы с заметками — суммаризации, переформулирования, поиска по смыслу — компактная модель обычно достаточна; тяжёлая нужна для рассуждений, а не для текстовых операций.
  • Готовность прочитать, куда плагин отправляет запросы. Это не паранойя, а половина смысла упражнения.

#Шаг 1. Проверьте, что Ollama отвечает

До установки любого плагина убедитесь, что сервер работает:

curl http://localhost:11434/api/tags

Ответ со списком моделей означает, что сервер жив. Пустой список означает, что модели не скачаны:

ollama pull qwen2.5:3b

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

#Шаг 2. Разрешите Obsidian обращаться к Ollama

Это то самое место, где связка ломается у большинства, и симптом выглядит обманчиво: плагин показывает ошибку соединения, хотя curl из терминала работает.

Причина в том, что Obsidian — приложение на Electron, и его запросы приходят с origin вида app://obsidian.md. Ollama по умолчанию отклоняет запросы с посторонних origin. Лечится переменной окружения:

OLLAMA_ORIGINS=app://obsidian.md

На Windows её задают в системных переменных пользователя, на macOS и Linux — в окружении сервиса. После изменения Ollama нужно перезапустить — переменная читается при старте. Конкретный вид значения зависит от версии Ollama и версии Obsidian, поэтому если не заработало — посмотрите в журнал Ollama, какой именно origin был отклонён, и подставьте его.

#Шаг 3. Выберите плагин, понимая, чем платите

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

Плагин Что делает Куда идут данные Лицензия
Smart Connections связи между заметками, поиск по смыслу зависит от выбранной модели эмбеддингов требует проверки
Copilot for Obsidian чат по хранилищу зависит от настроенного провайдера требует проверки
Text Generator генерация текста по шаблонам зависит от настроенного провайдера требует проверки
Local GPT операции над выделенным текстом локальный сервер требует проверки
Ollama-интеграции прямой мост к локальному серверу локальный сервер требует проверки

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

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

#Шаг 4. Настройте endpoint и модель

В плагине укажите:

  • адрес: http://localhost:11434 (или адрес машины с Ollama);
  • имя модели ровно так, как её показывает ollama list — вместе с тегом, qwen2.5:3b, а не qwen2.5;
  • для функций поиска по смыслу — отдельную модель эмбеддингов, например nomic-embed-text, и её нужно скачать так же, через ollama pull.

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

#Шаг 5. Обратное направление: память в хранилище

Отдельный сценарий, который стоит знать: не «модель читает заметки», а «система с автоматической памятью пишет в хранилище».

Persona умеет выгружать день в хранилище Obsidian: один файл разметки на календарный день, в подпапке Persona внутри хранилища. Внутри — сводка дня, часовые карточки с приложениями и ключевыми словами, самостоятельные заметки за этот день и закреплённые кадры. Имена людей и проектов, которые система распознала и которые реально встречаются в тексте, оформляются как двойные квадратные скобки — то есть становятся обычными ссылками Obsidian и попадают в его граф.

Две вещи, которые надо понимать про эту выгрузку:

  • Она односторонняя. Persona пишет в хранилище и никогда не читает оттуда. Ваши правки в файле не вернутся в память и не будут ей учтены; при следующей выгрузке файл может быть перезаписан.
  • Она идемпотентная. Файл переписывается, только если содержимое изменилось — сравнивается контрольная сумма. День без активности не трогается вовсе, а не «обновляется» с новой датой изменения.

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

#Проверка результата

  1. Запрос из плагина возвращает ответ. Спросите что-нибудь тривиальное. Если ошибка соединения — вернитесь к шагу 2, это почти всегда origins.
  2. Ответ строится по вашей заметке, а не по общим знаниям. Проверка: спросите про факт, который есть только в вашем хранилище. Общий ответ означает, что содержимое заметки в запрос не попало.
  3. Сеть молчит. При включённой локальной модели задайте вопрос и посмотрите на сетевую активность приложения. Исходящий трафик к внешнему адресу означает, что какая-то часть связки — скорее всего эмбеддинги — работает через облако.
  4. Для выгрузки: файл дня появился и содержит ссылки. Откройте граф Obsidian и убедитесь, что имена из карточек стали узлами.

Третий пункт — единственная надёжная проверка приватности этой связки. Настройка в интерфейсе не доказательство.

#Что может пойти не так

  • Плагин работает, но отвечает медленно и невпопад. Обычно это слишком маленькая модель для длинного контекста заметки. Проверьте, какой объём контекста вы отдаёте, и уменьшите его до раздела вместо файла целиком.
  • Поиск по смыслу «не находит очевидного». Проверьте, что индекс эмбеддингов вообще построен и что модель эмбеддингов скачана. Плагины часто индексируют в фоне и молчат об этом.
  • Хранилище раздулось. Файлы индекса и кэша эмбеддингов лежат внутри хранилища и попадают в синхронизацию. Внесите их в исключения.
  • Ссылки из выгрузки создали пустые узлы. Это нормальное поведение Obsidian: ссылка на несуществующую заметку рисуется как узел без содержимого. Если мешает — отключите оформление сущностей ссылками.
  • Плагин сменил условия после обновления. Отсюда требование раз в несколько месяцев перепроверять, что именно установлено; сравнение подхода «плагины поверх хранилища» с отдельной системой памяти — в статье Persona против плагинов Obsidian.

#Частые вопросы

#Обязательно ли держать модель на том же компьютере?

Нет, Ollama может работать на другой машине в вашей сети — на домашнем сервере или на десктопе, к которому ноутбук подключается. Тогда вместо localhost указывается её адрес, и на стороне Ollama нужно разрешить сетевые подключения; порядок описан в статье про настройку Ollama по сети.

#Что делать, если плагин требует ключ облачного провайдера и не поддерживает локальный сервер?

Проверить, принимает ли он произвольный адрес, совместимый с OpenAI API: многие плагины умеют это, даже когда в интерфейсе написано только про облако. Если не принимает — плагин для этой задачи не подходит, и переубеждать его настройками бессмысленно.

#Заменяет ли эта связка систему с автоматической памятью?

Не заменяет, потому что решает другую задачу. Плагин работает с тем, что вы уже записали руками. Автоматическая память работает с тем, что вы записать не успели. Точка отказа классических систем заметок лежит как раз на записи — подробнее в разборе второго мозга на ИИ.

#Можно ли просить модель проставлять связи между заметками?

Можно, и это работает — с оговоркой, что машинная связь означает «похоже», а не «следует из». Что теряется при такой замене и где ручная связь остаётся нужна, разобрано в статье про Zettelkasten и ИИ.

#Не испортит ли модель мои файлы?

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

#Как подключить локальную модель к самой Persona?

Отдельная процедура, она проще: адрес Ollama указывается в настройках, и переписка не уходит наружу, пока подключена локальная модель. Порядок — в гайде подключаем Ollama к Persona.

#Вывод

Связка Obsidian с локальной моделью собирается за вечер и держится на трёх вещах: Ollama должна принимать запросы от Electron-приложения, модель эмбеддингов должна быть скачана отдельно от модели чата, а плагин надо проверить не по описанию, а по исходящему трафику. Если вам нужна работа с уже записанными заметками — этого достаточно. Если вы обнаружили, что записывать не успеваете, то связка не поможет: она усиливает то, что вы внесли, и ничего не знает о том, чего вы не внесли.

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт