Pull to refresh

Comments 39

Интересная статья, попробую применить на практике, спасибо!

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

Из маленьких моделек ещё хороша Qwen3 4B 2507, до неё использовал Phi-4 (обе не рассуждающие)

Спасибо за рекомендацию. Qwen3 4B 2507 ещё не пробовал, Phi-4 рассматривал, но надо потестировать. Хочется найти что-то достаточно быстрое, пусть и не самое умное, потому что иногда именно скорость важнее. Думаю, под разные задачи действительно могут лучше подходить разные модели.

Не понял, что за проблема с индексацией заметок. Любую заметку же нужно только при создании/обновлении индексировать.

Т.е. один раз хранилище проиндексировали целиком, а после этого - только изменения. Это даже на CPU быстро происходит.

Да, так и есть, достаточно один раз проиндексировать базу, а дальше обновлять изменения. У меня же проблема была в том, что эмбеддинги через Ollama (пробовал nomic-embed-text, bge-m3 и другие) даже на небольшой базе считались очень долго и иногда зависали, плюс в Copilot возникали ошибки при индексации.

Ollama режет скорость генерации же, по сравнению с llama.cpp примерно в 1.5 раза на одной и той же модели. Это прям непозволительное расточительство в условиях запуска локальной модели.

именно, а ещё есть форки с турбоквантом, и не знаю как там с выбором квантования моделей в олламе, но в llama.cpp просто скачиваю модели с нужным квантованием, чаще всего q4_k_m они заметно меньше весят и качество приемлемое, у меня qwen3.5 9b c 256к контекста занимает 10gb vram на вин 11

В ollama как раз q4_k_m по умолчанию используется в большинстве случаев.

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

Я в основном использовал Ollama как удобный интерфейс, в llama.cpp не углублялся.

Правильно ли понимаю, что вы имеете в виду запуск llama.cpp в режиме сервера с OpenAI-compatible API?. В Infio Copilot можно указать кастомный base URL, так что теоретически это должно подключиться. Если да, то интересно попробовать как более быстрый вариант.

Думаю имеется в виду либо использование оригинального ./server от llama.cpp, который вроде как, надо собрать самостоятельно, либо использование llama-cpp-python из Python.

Спасибо, попробую.

так он в офф репозитории собранный сразу, но пока ещё без поддержки турбокванта который есть в форках, да пришлось собирать самому и даже куда тулкит для этого нужен, но с нейронками это не сложно, хотя думаю можно и вулкан версию собрать

А чем объясняться такое поведение? Что за баг такой?

Я собирал комп больше для работы. Поэтому стоит хороший проц с озу. Но видюха почти затычка.

Поэтояму для начала стал использовать gpt4all. Модели там все работают на процессоре. Саму модель подбираю под задачу. Очень удобно в самой проге индексировать файлы. Работает ожидаемо медленно.

В будущем хочу попробовать связку из lm studio с mcp протоколом. Что бы он мог помогать мне в написании самих заметок.

Либо полностью что бы мог заметки писать, но уже не для себя

Спасибо за интересный комментарий. Про GPT4All и LM Studio не углублялся, возьму на заметку, попробую.

Да, согласен, следующий шаг вперед – он уже в сторону агентного поведения или более сложных задач. В моём случае, текущий стек скорее как базовый уровень. Это работа с заметками через rag, но без полной автоматизации.

Хороший задел для создания методологии по обработке личной базы знаний. Я тоже несколько раз начинал с obsidian. Ваша статья показала новые перспективы. Сейчас пишу систему из базы в md файлов и телеграм бота для запросов к нему.

Спасибо за отзыв. Да, это как раз то направление, которое сам хотел попробовать в дальнейшем. Хочу попробовать сделать AI-агента, которому можно ставить задачи через мессенджер.

Техника и модели, конечно, интересны. Спасибо и за наводку на Infio Copilot. Но можно ли еще вопросы позадавать?

Как вы со всем этим работаете? Как собираете данные?

Например: "С помощью Obsidian Clipper сохранил кусочек в Vault/Clippings; накидал какую то идею кратенько в режиме потока сознания. Потом запустил команду, ИИ сам понял, о чем там речь, переформатировал, структурировал идею, перенес эти сырые заметки в нужные папки".

Может есть какие-то хитрости по frontmatter. Заметки clipping уже метаданные содержат, может просите ИИ их добавлять и к собственным "сырым". Теги какие-нибудь...Может разделение по доменам (Дом/Работа), чтобы потом искать только в части базы.

Насчет "есть куча чатов с ИИ" - это правда, хотелось бы некоторые сохранять. Попросить прямо в чате сделать выжимку в формате markdown, чтобы именно ее переложить в Obsidian можно, конечно. Но иногда хочется сохранить прямо вот всю историю чата, с логами, которые ему скармливал. Пример: разбирался, почему у меня в WSL2 nvidia-smi норм показывает, но запущенные процессы ее аппаратное ускорение не используют. Полечилось установкой переменных окружения, но попутно еще кучу команд для диагностки узнал :)

Ваш Infio Copilot может упорядочивать заметки? Или только чатиться по ним?

Скажем. Copilot Logan Yang, что вы тоже упоминали, в бесплатной версии только отвечает и предлагает скопировать свой текст в заметкку. Агентный режим вроде только в платной версии есть.

Поэтому "Scan all files in raw/, classify them by content, move them to the appropriate wiki/ subdirectory, and apply light formatting where needed...." в qwen code (claude code, что угодно).

Я вижу, что Infio может редактировать in-place, но насчет пройтись по вложенным папкам и переместить по правилам - не уверен.

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

Если честно, у меня пока всё довольно просто. В основном чаты с ИИ сокращаю в формате markdown в виде контекста переписки и сохраняю. Вручную пишу часть новых заметок. До сценария, где ИИ сам всё разбирает и раскладывает по папкам, я пока не дошёл. Плагины, описанные в статье, сами не создают структуру папок и не раскладывают заметки по ним. По-крайней мере, я о таком функционале у них не слышал, но может где-то в них есть.

С чатами отдельная история. Важно и то, что писал сам, и то, что отвечала модель. Сейчас сохраняю в основном выжимки, но в начале сохраняли и полностью диалоги "вопрос-ответ".
Возможно, потом напишу про это в отдельной статье.

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

Infio Copilot, насколько я понял, больше про чат и редактирование заметок, а не про автоматическую сортировку всей базы. То, что вы описываете с разбором raw и раскладкой по wiki, это уже следующий шаг, ближе к агентам и более мощным инструментам.

Стек, описанный в статье – это не “второй мозг на автомате”, а просто первый рабочий уровень, где уже можно нормально пробовать "разговаривать" со своей базой. И как минимум начать собирать датасет и контексты. А также понять для себя, какой функционал и зачем мне нужен в платных решениях.

У меня база пока небольшая: около 150 заметок разной длины, суммарно примерно 70 МБ markdown-файлов.

Это примерно 512кб на заметку? 512кб - это примерно 250-300 страниц A4. На полноценный роман тянет.

Скорее всего много изображений и может быть даже видеофайлов.

Да, тут я немного некорректно сформулировал. 70 МБ — это размер всего хранилища с raw-материалами (статьи, вложения, дубли, исходники и т.д.), а не только чистых заметок.

Если брать именно обработанные контексты/markdown-заметки, то там около 4 МБ. И в среднем заметка совсем небольшая — это не «роман», а скорее короткие фрагменты, выдержки и структурированные мысли.

В настройках для rag добавлял raw файлы переписок и материалов в exclude, чтобы индексация шла быстрее и не засорялась база.

Я думаю это с картинками, про которые автор упоминал, но они не умеют в этих моделях индексации, то есть бесполезный балласт, выходит?…

Можно еще на папку с файлами obsidian натравить claude\opencode с локальной моделью. Удобно структурировать заметки.

Да, у меня тоже на каком-то этапе появилось желание, чтобы ии структурировал папки, дописывал что-то в заметки, расставлял теги. Это уже агентное поведение и следующий шаг.

И да, к сожалению, в более-менее удобном и стабильном виде это сейчас чаще всего упирается либо в платные решения, либо через платное подключение через API.

Вообще, теоретически, раз вы с векторизацией справились, то и расстановка тэгов должна быть где то поблизости

Мне понравилось использовать плагин Gemini Scribe и Gemini Flash Lite последней версии через API, работает быстро и хорошо. Правда в моем случае это Paid Tier 1, поэтому небесплатно.

Тоже пробовал подключать Gemini через Google API. Но видимо, не заработало нормально из-за ограничений на аккаунт/регион (с РФ-аккаунтами видимо api google не работает).

Зато через OpenRouter пробовал подключить gemini через бесплатный tier. И там да, по скорости прямо летает и качестве ответов очень высокое. Но это уже облачное решение, не локально. Ну и в основном платно.

Спасибо за статью, возможно получиться наконец все запустить. Как раз в поиске такого решения.

Рад, что материал пригодился.

Спасибо за актуальную информацию. Если есть опыт испольщования ИИ именно в строительной сфере - было бы тоже интересно почииать. Хочу внедрять в ПТОшной работе

Есть несколько идей по этому поводу. В целом, любой RAG, в который вы сможете вставить файлы нормативной базы и данных о проекте - уже может облегчить работу ПТО отдела или отдельного инженера. Но если говорить уже не только о получении ответов на текстовые запросы, но и об анализе чертежей, генерации таблиц – тут уже нужен не только RAG, но и взаимодействие между модулями вашей системы. Я думаю, отдельные части этой системы уже можно построить для себя - опять же могут подсказать клод, гпт и другие. Можно пробовать делать прототипы сначала для решения небольших задач, а потом пробовать их интегрировать друг в друга. Но это путь разработки инструментов для себя – это сложно, когда параллельно есть реальная работа на производстве.

Одно из главных вопросов по статье — это можно ли задавать общие вопросы по всей базе? Можно ли спрашивать и задавать вопросы по картинкам? А зная, что есть плагины типа омнисерч, что с помощью OCR добавляет грубый поиск по картинкам, от сюда выходит,что и из картинок теории можно вытащить эмбендинги, а дальше их добавить в RAG-систему

Не страшновато такое ставить и пользоваться?

Этот плагин может внезапно начать отправлять в Китай все ваши собранные в Obsidian данные, которые вы по какой-то причине, - не решились доверить публичным чатам в облаках. Причем, его даже обновлять не придется, так как он уже подкачиает свежий код WASM при загрузке, в котором чуть позже может оказаться все что угодно.

Результаты поверхностного ревью:

В плагин встроена телеметрия, которая сообщает о событиях взаимодействия с пользователем на https://hubs.infio.app/api/event, в том числе: когда плагин загружается, когда происходит отправка в чат onEnt('chat-submit'), когда запускается встроенное редактирование-отправка onEnt('inline-edit-submit') и когда пользователь переключает вкладки onEnt(switch_tab/${tab}в пользовательском интерфейсе, и т.п. Причем это хардкод, не выключить в настройках или переменной.

const handleSubmit = async () => {
		setIsSubmitting(true);
		try {
			const { activeFile, editor, selection } = await getActiveContext();
			onEnt('inline-edit-submit')
			if (!activeFile || !editor || !selection) {
				console.error(t("inlineEdit.noActiveContext"));
				setIsSubmitting(false);
				return;
			}
...


При старте плагин также заходит на свою базу https://infio.dev и грузит скорее всего совсем не OpenSource WASM. Даже если сейчас он скачивает не опасный код и данные, то потом кто его знает....


const loadPGliteResources = async (): Promise<{
	fsBundle: Blob
	wasmModule: WebAssembly.Module
	vectorExtensionBundlePath: URL
}> => {
		const [wasmRes, dataRes, vectorRes] = await Promise.all([
			fetch('https://infio.dev/postgres.wasm', { cache: 'no-store' }),
			fetch('https://infio.dev/postgres.data', { cache: 'no-store' }),
			fetch('https://infio.dev/vector.tar.gz', { cache: 'no-store' }),
		])
...

И так как сайты Infio за Cloudflare CDN - не сразу разберетесь, что блокировать, куда бежать, если потекут ваши личные данные. И даже не всякие супер файрволы разберутся в утечке, так как вы их будете долго-долго варить как лягушку, на вашем трафике - привыкнут к телеметрии и обновлениям wasm при каждом рестарте. Хотя, если анонимный хозяин Infio захочет использовать ваш Obsidian как часть своего botnet, то хорошие файрволы скорее увидят много новых fetch из wasm.

Спасибо за комментарий, хорошее замечание. Добавил апдейт в конце статьи про безопасность и обозначил эти моменты.

Сейчас плагин можно и переписать с помощью ИИ

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

Sign up to leave a comment.

Articles