Настройка Copilot в Obsidian
Как было показано в статье Obsidian и нейросети, плагин Copilot является одним из самых распространенных решений для подключения искусственного интеллекта к Obsidian. В этой статье подробно рассказывается, как быстро настроить плагин Copilot в Obsidian для комфортной работы с практически любыми нейросетями без использования VPN.
В данной статье мы рассмотрим:
- Подключение к OpenRouter.ai;
- Установку Ollama для локальных моделей;
- Настройку модели для расчета эмбеддингов.
Предполагается, что плагин Obsidian Copilot уже установлен в вашем Obsidian. Если это не так, самое время сделать это и только после этого продолжить чтение.
Подключение к OpenRouter.ai
Как известно, компания OpenAI (разработчики моделей ChatGPT) блокирует доступ из России. Однако, помимо великолепных моделей ChatGPT, существуют не менее эффективные модели от других поставщиков. Поэтому для работы Copilot мы будем использовать не прямое подключение к OpenAI, а некоторые прокси-службы. Наиболее популярными сейчас являются:
У первых — огромная коллекция моделей, а вторые принимают оплату в рублях. Мы будем использовать OpenRouter.
- Зайдите на сайт https://openrouter.ai/ и зарегистрируйтесь. Желательно сразу оплатить небольшую сумму, например, $5, но начать работу можно и без оплаты. Мы не рассматриваем здесь серые способы оплаты зарубежных сервисов, но если возникнут сложности, можете обратиться к автору статьи.
- После регистрации перейдите в раздел Keys и сгенерируйте новый ключ. Название ключа может быть любым, например, «Obsidian Copilot». Обязательно сохраните полученное значение, так как оно больше не будет отображаться!
- Перейдите в настройки плагина Copilot и укажите значение ключа в разделе API Settings → OpenRouter Settings.
Обязательно после изменения настроек поднимитесь в самый верх страницы настроек плагина и нажмите кнопку Save and Reload.
- Выберите и установите желаемую модель для работы.
Несколько слов о моделях нейросети
Моделей много, и каждая из них хороша по-своему. При выборе модели следует учитывать следующие факторы:
- Размер контекстного окна — сколько токенов модель принимает для работы. Это тот самый контекст, то есть ваш промпт, загруженные данные, ответ модели, уточнения и т. п. Чем он больше, тем лучше. Например, context 128K обозначает размер 128 тысяч токенов (примерно 60-100 тысяч слов).
- Цена за входные и выходные данные. Обычно указывается за миллион токенов. Вот пример модели с достаточно высокой ценой — $3 за каждый миллион токенов на входе и $3 за каждый миллион сгенерированных токенов.
Рекомендуем начать с одной из следующих моделей:
openai/gpt-4o-mini
— очень быстрая, недорогая и качественная модель. К сожалению, с ноября 2024 года требует VPN для своей работы.google/gemini-flash-1.5
— очень быстрая, очень недорогая и качественная модель от Google.anthropic/claude-3.5-sonnet
— очень качественная и мощная модель. Но дорогая: $3 за миллион входящих токенов и $15 за миллион сгенерированных токенов. Это дороговато для повседневного использования.
Настоятельно рекомендуем начать работу и далее использовать модель google/gemini-flash-1.5
Чтобы добавить модель, необходимо перейти в раздел настроек Copilot General Settings и в нем выбрать Add Custom Model. Введите название модели (в точности как в списке выше) и в качестве поставщика выберите OpenRouter. Остальные поля можно не заполнять.
Нажмите кнопку Add Model и обязательно после изменения настроек поднимитесь в самый верх страницы настроек плагина и нажмите кнопку Save and Reload.
После этого установите галочку Default напротив добавленной модели и еще раз сделайте Save and Reload.
Собственно, всё! Теперь вы можете пользоваться чатом. Закройте настройки Copilot и откройте окно чата в правой панели Obsidian. Если его там нет, нажмите Ctrl + P
и введите команду «Toggle Copilot Chat Window», окно чата появится.
Попробуйте чат с вашей моделью:
Установка Ollama для работы с локальными моделями
Текущие настройки позволяют Copilot работать в режиме чата, но если мы хотим использовать режимы QA (см. Использование режимов QA в Obsidian Copilot), нам необходимо установить и настроить модель для расчета эмбеддингов. В принципе, они есть и облачные, но важно понимать, что эмбеддинги — это всё содержимое вашего Obsidian (все заметки!), поэтому загрузка и расчет их в облаке будет небезопасным и недешевым. Поэтому мы будем использовать локальные модели на своем компьютере.
Важно отметить, что работа любых локальных моделей требует ресурсов достаточно современных процессоров и памяти вашего компьютера. Если у вас есть современные видеокарты с GPU, это ускорит работу. Без GPU расчет будет выполняться на CPU, и это может занять некоторое время. В общем, если у вас старый компьютер и мало памяти, можете не выполнять следующие шаги.
Для запуска локальных моделей мы будем использовать Ollama.
Перед началом необходимо выполнить подготовительный шаг: установить требуемую переменную окружения операционной системы (environment variables) со значением OLLAMA_ORIGINS="app://obsidian.md*"
. Это нужно, чтобы Copilot мог нормально открывать ссылки на ваши заметки, полученные в ответе нейросети. Для Windows 11 это делается так: в проводнике правой кнопкой по «Мой Компьютер» → «Свойства» → «Дополнительные параметры системы» → «Переменные среды». Далее создайте переменную для пользователя.
Название: OLLAMA_ORIGINS
Значение: app://obsidian.md*
Далее установите приложение с сайта https://ollama.com/ и запустите его. Сигналом успешного запуска будет овечка (лама) в трее Windows. Она должна работать всегда.
Когда Ollama запущена, необходимо добавить в нее модель для эмбеддингов. Их тоже достаточно много, но здесь мы рекомендуем использовать модель bge-m3
. Для ее добавления откройте командную строку Windows или PowerShell и введите команду:
ollama pull bge-m3
Дождитесь ее скачивания, модель занимает около 1.2 гигабайт.
Когда модель будет скачана, откройте настройки Copilot и в разделе QA Settings выберите Add Custom Model. Введите название модели bge-m3
и поставщика Ollama. Нажмите Add Model и не забудьте подняться вверх и нажать Save and Reload.
Индексация заметок для наполнения векторного хранилища
Чтобы Copilot мог работать в режимах QA, нужно один раз проиндексировать все заметки в вашем хранилище и далее регулярно индексировать изменения. Это не быстрый процесс, он может занять 3-5 часов и более. Поэтому, если вы используете ноутбук, сначала подключите его к зарядному устройству.
Откройте панель команд Obsidian Ctrl + P
и введите команду «Force re-index vault for QA». Сигналом нормальной работы будет счетчик проиндексированных заметок, который увеличивается. Терпеливо дождитесь окончания процесса.
В дальнейшем достаточно регулярно выполнять команду «Index (refresh) vault for QA», она индексирует только новые и измененные заметки, поэтому много времени не тратится.
Собственно, всё! Давайте проверим работу в режиме QA:
Впечатляет, правда?
И вот, ваш Copilot готов к работе!
Не работает.
Ошибка интеграции Ollama bge-m3 с Obsidian Copilot
Текущая конфигурация:
— Установлен и запущен локальный сервер Ollama
— Успешно загружена модель bge-m3 через команду `ollama pull bge-m3`
— Установлена переменная окружения OLLAMA_ORIGINS=»app://obsidian.md*»
— Модель добавлена в настройках Obsidian Copilot (QA Settings -> Add Custom Model)
Проблема:
При попытке использования модели возникает ошибка:
«Error: Model request failed: ‘bge-m3’ does not support chat»
Ожидаемое поведение:
Модель должна корректно работать для создания эмбеддингов и обеспечивать функционал QA в Obsidian Copilot.
Дополнительный контекст:
— Все шаги установки выполнены согласно официальной инструкции
— Сервер Ollama запущен на нестандартном порту
Максим, судя по ошибке «Error: Model request failed: ‘bge-m3’ does not support chat» вы пытаетесь с моделью bge-m3 вести чат. Она не поддерживает чаты, только расчет эмбеддингов.
Проверьте и убедитесь:
1. Эту модель Вы добавили именно как модель эмбеддингов в разделе Embedding Models.
2. В разделе General Settings (это выше, почти в самом начале) у вас добавлена любая модель, например google/gemini-flash-1.5 через OpenRouter, НО НЕ bge-m3! И она выбрана как основная (default).
Работу расчета эмбеддингов легко проверить так: После того, как вы указали модель эмюеддингов и ОБЯЗАТЕЛЬНО перегрузили плагин (вверху кнопка Save And Reload), выполните команду через Ctrl+P «Copilot: Force re-index vault for QA». Через небольшое время появится черное окошко справа сверху, там будут цифры проиндексированных заметок увеличиваться. Можно еще открыть консоль разработчика и убедиться, что ошибок нет.
Но еще раз, Ваша ошибка в том, что вы поставили модель bge-m3 как основную, в General Settings.
«В разделе General Settings (это выше, почти в самом начале) у вас добавлена любая модель, например google/gemini-flash-1.5 через OpenRouter». Эта модель просит API, которого к сожалению у меня нет.
Роман, любая модель будет просить ключ OpenRouter.
Вам необходимо:
вы упомянули в статье сайт proxyapi.ru его как-то можно задействовать??
Я знаю о нем, но ни разу не использовал
с openrouter.ai у меня пишет ошибку
Error: Model request failed: Provider returned error
я оплатил им $5
Да, эту ошибку я тоже наблюдаю последние два дня. Судя по всему, она связана с Google. Попробуйте другие модели, например, anthropic/claude-3-5-haiku или infermatic/mn-inferor-12b
Дополнение. Нет, похоже это ошибка Copilot. На Github уже открыт Issue:
https://github.com/logancyang/obsidian-copilot/issues/672
Подскажите, а https://bothub.chat/ можно использовать вместо openrouter? По идее, главное, чтобы была возможность подключить? Чтобы не возиться с серыми методами оплаты.
С другой стороны, оплата за рубеж всё равно иногда нужна. Как к Вам можно обратиться по этому вопросу?
Добрый день, Виктор!
Не могу сказать, не пробовал. Но думаю что можно.
По поводу оплат зарубежных сервисов написал Вам в почту.
Copilot вместо ответа на поставленный вопрос выдает 402
У меня однажды была такая ситуация, я даже списался с автором на Github. Но ошибка не подтвердилась и решилась довольно простым действием: по совету автора плагина я просто заново ввёл все настройки в плагин, то есть, заново ввел ключ OpenRouter, удалил добавленные модели и заново их добавил. И всё заработало. Попробуйте.
Извините, я неправильно Вам выше ответил! Перепутал коды (статусы HTTP).
Код 402 — это Payment Required, то есть требуется оплата! У вас нет средств на OpenRouter!