TL;DR
- Ассистент «Свой» перешёл в опенсорс: бэкенд на Go, фронтенд на Vue, PostgreSQL с pgvector — всё под локальным управлением через Ollama.
- Добавлены: вайб-темы (LLM генерит интерфейс под ваш вкус), внешний RAG с шифрованием файлов ПК, агентный веб-поиск на SearXNG и «объектив» для фото в контексте тематических помощников.
- Система сохраняет контекст между сессиями, планирует задачи и работает с документами и вебом — полностью локально.
Разбор
«Свой» — это open-source ассистент, который теперь доступен на GitHub. Ключевое изменение: бэкенд переписан на Go (был Python), что дало прирост производительности и упростило деплой. Фронтенд на Vue, база — PostgreSQL с pgvector для семантического поиска. Всё работает поверх локальной Ollama или любой LLM-модели, которую вы укажете.
Новые фичи:
- Вайб-темы: LLM анализирует ваши предпочтения (например, из истории диалогов или заданного стиля) и генерит CSS-переменные для интерфейса. Пример: запрос «сделай тёмную тему с акцентом на зелёный» — модель возвращает JSON с цветами, который фронт применяет на лету. Команда для кастомизации:
POST /api/themeс текстовым описанием. - Внешний RAG с шифрованием: ассистент индексирует файлы из указанных папок (PDF, DOCX, TXT), шифрует их на лету через AES-256 и хранит векторы в pgvector. Поиск идёт по локальным данным без утечки в облако. Пример настройки:
rag --path ~/documents --encrypt-key $(openssl rand -hex 32). - Агентный веб-поиск: через SearXNG — метапоисковик, который агрегирует результаты из Google, Bing и других, но без трекинга. Ассистент сам решает, когда нужен веб (например, при запросе «найди последние новости по Go 1.23»), и возвращает резюме с ссылками.
- «Объектив»: отдельный микросервис на Go, который принимает фото, распознаёт объекты (через YOLO или локальную модель) и передаёт контекст в тематического помощника. Например, загружаете снимок документа — ассистент извлекает текст и добавляет в RAG.
Контекст между разговорами сохраняется через сессионные ключи в PostgreSQL: каждый диалог имеет session_id, и при новом обращении ассистент подтягивает историю. Планирование реализовано через агентный цикл: LLM генерит план действий (поиск → анализ → ответ) и выполняет шаги последовательно.
Выводы
- «Свой» — зрелый инструмент для тех, кто хочет контролировать свои данные и не зависеть от облачных провайдеров. Go на бэкенде даёт лёгкость деплоя, а pgvector — быстрый семантический поиск.
- Вайб-темы и «объектив» — не хайп, а практичные фичи: первый упрощает UX, второй расширяет сценарии (работа с фото документов, скриншотов).
- Для внедрения достаточно локальной Ollama и базового понимания Docker (всё упаковано в compose-файл). Если нужно кастомизировать под свои задачи — код открыт.
Нужна такая автоматизация? Обсудить проект в Telegram: https://t.me/Cvister0