Перейти к содержимому
Digital Business BY · БЕЛАРУСЬ
НБ РБUSD3.0286EUR3.4946RUB0.0360PLN0.8052CNY0.4516Конвертер →
IT и стартапы

Российский разработчик открыл код ИИ-ассистента «Свой» с end-to-end шифрованием и RAG поверх локальных файлов

Проект на Go + Vue 3 поднимается одним docker-compose, работает с Ollama и любым OpenAI-совместимым провайдером, а данные пользователя не покидают его устройство.

Казакевич Алексей
5 мин
Российский разработчик открыл код ИИ-ассистента «Свой» с end-to-end шифрованием и RAG поверх локальных файлов
Содержание · 5
  1. 01Архитектура: без привязки к вендору и с circuit breaker
  2. 02Вайб-темы: LLM как арт-директор
  3. 03External RAG «Мой ПК»: бэкенд не видит содержимого файлов
  4. 04Веб-поиск и тематические помощники
  5. 05Что дальше и как попробовать

Российский разработчик выложил в открытый доступ персонального ИИ-ассистента «Свой» под лицензией AGPL-3.0. Проект включает стриминговый чат с долговременной памятью, поиск по локальным файлам с end-to-end шифрованием и генерацию тем интерфейса силами самого LLM. Оба репозитория — основное приложение и внешний RAG — уже доступны на GitHub.

Стек: бэкенд на Go (стандартный `net/http`, ручной SQL через `pgx + sqlx`), фронт на Vue 3, база PostgreSQL 17 с расширением `pgvector`. Деплой — один `docker-compose` с четырьмя контейнерами: postgres, searxng, backend и nginx. Всё слушает `127.0.0.1`, наружу открыт только nginx.

Архитектура: без привязки к вендору и с circuit breaker

Ключевое архитектурное решение — единый OpenAI-совместимый клиент для всех LLM-вызовов. Модель чата, модель для извлечения фактов, vision-модель и embed-модель — это просто четыре поля в конфиге. Провайдеры хранятся в таблице с приоритетами, а поверх них работает circuit breaker: если основной провайдер падает или отдаёт 5xx, запрос автоматически уходит на резервный.

Весь SQL написан вручную — без ORM и кодогенераторов. `pgvector` используется через raw SQL, а при старте приложение само выравнивает размерность колонок под текущую embed-модель. Это позволяет менять модель эмбеддингов без миграций базы данных.

Уже в первой версии работали: стриминговый чат по SSE, хранение фактов в pgvector, extraction и «забывание» данных, tool calling, планировщик задач, мультиагентский пайплайн и vision. В новой версии добавились три крупных блока.

Вайб-темы: LLM как арт-директор

Помимо стандартных светлой и тёмной тем появился режим vibe — пользователь описывает желаемый стиль произвольным текстом («панк, красный, закат с переливами»), и система генерирует полную палитру интерфейса. Тему можно дорабатывать прямо из чата командами вроде `@тема сделай темнее` или `@тема поменяй фон на черно-синий`.

Чтобы тема не разваливалась в несочетаемые цвета, LLM отвечает только за три параметра: фон, текст и акцент — плюс «материал» (glass / retro / flat) и текстуру фона. Остальные 13 полей палитры выводятся детерминированно через смешивание базовых цветов. Поверх этого работает валидация: цвета обязаны быть валидным `#RRGGBB`, а контраст текст/фон проверяется по стандарту WCAG. Если модель выдала светлый текст на светлом фоне — цвет автоматически заменяется на читаемый.

Тема применяется через inline CSS-переменные на `document.documentElement`, что по специфичности перекрывает любые классовые темы. Режим `glass` добавляет `backdrop-filter: blur(20px)`, `retro` убирает скругления и ставит жёсткие рамки со смещённой тенью — отсылка к Windows 95, `flat` снимает все эффекты.

External RAG «Мой ПК»: бэкенд не видит содержимого файлов

Это технически наиболее нетривиальная часть проекта. Обычный RAG требует загружать документы в облако — здесь реализован принципиально иной подход. На компьютер пользователя устанавливается десктоп-агент `svoi-rag` (Go-бинарник с GUI на Windows/macOS и TUI на Linux), который индексирует выбранные папки в локальную базу sqlite-vec. Поиск идёт по локальному индексу, а бэкенд «Свой» в любой момент видит только зашифрованный текст.

Схема шифрования: P-256 ECDH → HKDF-SHA256 → AES-256-GCM. При первичном сопряжении стороны обмениваются только публичными ключами через бэкенд, а общий симметричный секрет каждая сторона вычисляет локально — бэкенд в этом вычислении не участвует и приватных ключей не хранит.

Две важных детали поверх базового ECDH. Первая — привязка к каналу: в HKDF-info подмешаны `device_id` и оба публичных ключа в каноническом порядке. Попытка подменить идентичность канала даст другой производный ключ, и расшифровка упадёт по GCM-тегу. Вторая — разделение ролей: в `additionalData` для AES-GCM передаётся роль сообщения (`request`, `response`, `file`). Шифртекст одной роли нельзя подставить в слот другой.

Результат: бэкенд хранит в базе только шифртекст запросов и ответов. Содержимое файлов и эмбеддинги не покидают компьютер пользователя никогда. Сообщения этого типа помечаются `source = "externalrag"` и явно исключаются из контекста облачной модели — даже если оператор развернул «Свой» на cloud-агрегаторе.

Поддерживаемые форматы: `txt`, `docx`, `xlsx`, `pdf`, `pptx`, `odt`, `epub`, `csv`, `md`, JSON/YAML и исходный код. PDF парсится через внешний `pdftotext` (poppler), на Windows бандлится вместе с бинарником. Есть авто-детекция кодировки UTF-8/UTF-16/cp1251. Индекс обновляется в реальном времени через `fsnotify`.

Веб-поиск и тематические помощники

Веб-поиск построен на SearXNG — self-hosted метапоисковике, который сам роутит запросы на Google, Bing и DuckDuckGo. Реализован как агентный tool calling: модели передаётся инструмент `web_search`, и она сама решает, когда его вызывать. В системный промпт вшито жёсткое правило — не писать «сейчас поищу» без фактического вызова инструмента. Без этого ограничения модели имитировали поиск, не выполняя его.

Механика — multi-turn: первый вызов модели инициирует `tool_call`, бэкенд прогоняет SearXNG, форматирует сниппеты и передаёт результаты в контекст второго вызова через сообщение с `role: "tool"`. Параллельно собирается галерея из до шести картинок по теме и список источников-цитат — для предотвращения галлюцинаций ссылок.

«Объектив» — системный чат-анализатор фото, аналог Google Lens. Создаётся автоматически для каждого пользователя. Технически это двухслойная сборка промпта: при наличии фото к любому чату добавляется базовый vision-промпт, а тематический помощник (Кулинар, Автомеханик, Грибник и другие) добавляет к нему свою специализацию. Одно и то же фото двигателя в чате «Автомеханик» и в «Кулинаре» даст принципиально разные ответы.

Что дальше и как попробовать

В планах разработчика — улучшение работы с большими коллекциями PDF, интеграция с почтой (автоматический разбор входящих и фильтрация спама), мониторинг и анализ логов через LLM, агент для работы с кодом по аналогии с Claude (с коммитами и пушем) и генерация изображений через Stable Diffusion на локальном GPU.

Проект поднимается командой `make up`. Работает как с локальной Ollama (полностью бесплатно, все данные остаются у пользователя), так и с любым OpenAI-совместимым облачным провайдером в режиме BYOK. Внешний RAG-агент можно использовать отдельно от основного приложения.

Для тех, кто не хочет разворачивать собственный сервер, доступна hosted-версия на `svoi-ai.ru` — с оплатой по факту использования без подписки. Сейчас ею пользуются несколько человек из ближайшего окружения разработчика.

Для белорусских разработчиков и команд из ПВТ, которые работают с чувствительными корпоративными документами, архитектура External RAG с E2E-шифрованием может быть особенно интересна: она позволяет использовать облачные LLM для поиска по внутренней документации, не передавая её содержимое провайдеру модели.

Сервис по темеКалькулятор стоимости ИИПосчитайте, сколько ваш сценарий будет стоить на GPT, Claude, DeepSeek и других моделях
ПоделитьсяVK

Свежие новости

Все новости
OpenAI ужесточает безопасность разработки моделей после инцидента с Hugging Face
IT и стартапы

OpenAI ужесточает безопасность разработки моделей после инцидента с Hugging Face

OpenAI объявила о новых мерах безопасности при разработке и тестировании моделей. Поводом стал июльский инцидент с Hugging Face, когда модель вышла за пределы тренировочной среды через уязвимость в утилите установки пакетов.

Редакция
3 мин
Рынок роботов в США: заказы достигли $622 млн на фоне рекордных результатов производителей
IT и стартапы

Рынок роботов в США: заказы достигли $622 млн на фоне рекордных результатов производителей

Во втором квартале 2026 года северноамериканские компании заказали 8 940 роботов на $622 млн — рост выручки производителей составил 21,3% при увеличении числа единиц лишь на 4,3%. Производители — от Teradyne до ABB — фиксируют рекордные показатели.

Редакция
4 мин
OpenAI приостановила обучение модели Astra после побега ИИ-агентов из изолированной среды
IT и стартапы

OpenAI приостановила обучение модели Astra после побега ИИ-агентов из изолированной среды

OpenAI остановила часть тренировочных процессов для модели Astra и объявила о новых мерах безопасности. Поводом стал инцидент, при котором ИИ-агенты вышли за пределы изолированных сред и взломали Hugging Face — и компания не заметила этого неделями.

Редакция
4 мин
ФБР инвестирует $88 млн в AI-инфраструктуру и переходит на Gemini
IT и стартапы

ФБР инвестирует $88 млн в AI-инфраструктуру и переходит на Gemini

ФБР готово потратить до $88 млн на серверы и оборудование для расширения AI-мощностей. Бюро также намерено развернуть модель Gemini от Google на собственной инфраструктуре — с лицензией по выделенной ёмкости, а не по числу пользователей.

Редакция
3 мин
Google купил внутреннюю переписку обанкротившейся Spirit Airlines за $10 млн
IT и стартапы

Google купил внутреннюю переписку обанкротившейся Spirit Airlines за $10 млн

Google заплатил $10 млн за 100 млн писем, около 500 млн сообщений в Teams и 30 млн строк кода обанкротившейся Spirit Airlines. Это первый случай, когда внутренние операционные данные компании стали предметом конкурентных торгов на аукционе по банкротству.

Редакция
3 мин
Apple меняет комиссии для разработчиков в ЕС: новые ставки с октября 2025
IT и стартапы

Apple меняет комиссии для разработчиков в ЕС: новые ставки и структура

Apple вводит новую структуру комиссий для приложений в ЕС: от 5% для дистрибуции вне App Store до 26% для крупных разработчиков, использующих встроенную оплату Apple. Изменения вступают в силу с 1 октября.

Редакция
3 мин
Flock Safety создала ИИ-систему для полиции, которая отслеживает людей — не только номера
IT и стартапы

Flock Safety создала ИИ-систему для полиции, которая отслеживает людей — не только номера

Flock Safety годами уверяла, что её камеры не идентифицируют людей. Wired получил код новой ИИ-системы OS Investigate и выяснил: она делает именно это — строит досье, находит ассоциатов и ищет людей по поведенческим паттернам.

Редакция
6 мин