Articles

«Свой» уходит в опенсорс: вайб-темы, RAG поверх шифра и объектив, который знает контекст

Ассистент «Свой» перешёл в опенсорс: бэкенд на Go, фронтенд на Vue, PostgreSQL с pgvector — всё под локальным управлением через Ollama.

· 2 мин чтения · · AI и LLM

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

FAQ

С чего начать?

Смотрите раздел «Разбор» и блок «Выводы».

Обсудить проект в Telegram