Эмбеддинги в Obsidian Copilot для индекса заметок
Краткая справка: внешний провайдер эмбеддингов можно использовать вместе с плагином Copilot, чтобы настроить семантический поиск по базе заметок не только на стандартных моделях.
Когда заметок в Obsidian становится много, обычный поиск по словам начинает быстро упираться в формулировки: вы помните смысл, но не помните точную фразу. Индекс эмбеддингов помогает Copilot искать не только совпадения текста, а близкие по смыслу фрагменты внутри vault — и за счет этого отвечать по вашим собственным материалам заметно осмысленнее.
Эта заметка — короткая практическая инструкция по подключению OpenAI-compatible embedding API. Главная идея простая: аккуратно указать Base URL, модель и ключ, включить семантический поиск, а затем проверить, что Copilot действительно строит индекс заметок через выбранного провайдера.
1. Подготовка
Перед настройкой лучше сразу собрать три вещи. Так меньше шансов застрять на странной ошибке из-за одного лишнего суффикса в URL или неточного имени модели:
- API Key от вашего провайдера (например, от
polza.ai). - Точный Base URL провайдера без лишних хвостов вроде
/embeddings. - Название модели, которую провайдер поддерживает (например,
text-embedding-3-small).
2. Пошаговая настройка в Obsidian
Шаг 1: Откройте настройки плагина
Начинаем с того места, где Copilot хранит настройки моделей. Это важно: чат-модель и embedding-модель могут настраиваться отдельно, а индекс заметок зависит именно от блока эмбеддингов.
- Перейдите в Settings → Community Plugins → Copilot.
- В верхнем меню настроек выберите вкладку Model.
Шаг 2: Выбор провайдера Embedding-модели
Теперь нужно сказать Copilot, что эмбеддинги будут приходить не из встроенного варианта, а из совместимого API.
- Прокрутите вниз до секции Embedding Model.
- В выпадающем списке выберите OpenAI Format (это универсальный драйвер для всех совместимых API).
Шаг 3: Заполнение параметров (Смотри скриншот [2])
Нажмите на кнопку настройки (шестеренку или поле ввода) и заполните данные. Здесь лучше не «догадываться», а копировать значения из документации или кабинета провайдера: для индексации заметок даже маленькая неточность в адресе API ломает весь сценарий.
| Параметр | Значение | Важное примечание |
|---|---|---|
| Model Name | text-embedding-3-small | Должно точно совпадать с тем, что дает провайдер. |
| Provider | OpenAI Format | Не меняйте, если используете кастомный API. |
| Base URL | https://api.polza.ai/api/v1 | КРИТИЧНО: Не добавляйте в конце /embeddings! Плагин сам подставит нужный путь. |
| API Key | sk-....... | Ваш ключ доступа. |
Лайфхак: Если вы видите галочку CORS Bypass или Proxy Mode в расширенных настройках — попробуйте включить её, если возникают сетевые ошибки
Network ErrorилиCORS blocked.
Шаг 4: Активация семантического поиска (Смотри скриншот [1])
Подключить модель недостаточно: Copilot еще нужно явно разрешить использовать семантический индекс в режиме вопросов и ответов.
- Перейдите во вкладку QA (Questions & Answers).
- Найдите переключатель Enable Semantic Search.
- Переведите его в положение ВКЛ (ON).
3. Запуск индексации
После сохранения настроек база сама не обновится мгновенно. Copilot нужно заново пройтись по vault и построить индекс, иначе вы будете смотреть на правильные настройки, но получать ответы без новой семантической базы.
- Нажмите
Ctrl/Cmd + P(Command Palette). - Введите:
Copilot: Force Reindex Vault(илиRefresh Vault Index). - Нажмите Enter.
Следите за уведомлениями справа вверху. Если появится Index successfully updated — значит, Copilot смог обратиться к выбранному embedding API и обновить индекс заметок.
4. Решение частых проблем (Troubleshooting)
Большинство ошибок здесь связано не с самими заметками, а с маршрутом запроса: Obsidian, Copilot, провайдер и URL должны договориться, куда именно отправлять embeddings-запрос.
Ошибка: 404 Not Found или Cannot POST /.../embeddings/embeddings
Причина: Вы указали лишний путь в Base URL.
Решение: Уберите /embeddings из конца строки URL. Оставьте только .../v1.
Ошибка: Connection error или CORS policy blocked
Причина: API провайдера не разрешает запросы напрямую из браузера (Obsidian). Решение:
- Попробуйте включить локальную модель (Local) вместо внешней.
- Или используйте локальный прокси (например, LM Studio / Ollama), который пробрасывает запросы.
Ошибка: Semantic index database not found
Причина: Индекс поврежден из-за прерванной загрузки или проблемы с доступом. Решение:
- Перезапустите Obsidian.
- Запустите команду
Force Reindex Vault.