[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"guide-how-to-stop-an-ai-assistant-leaking-documents-people-cannot-open::ru":3,"guide-related-how-to-stop-an-ai-assistant-leaking-documents-people-cannot-open::ru":18},{"slug":4,"title":5,"excerpt":6,"body":7,"meta_title":8,"meta_description":9,"keywords":10,"category":16,"published_at":17,"updated_at":17},"how-to-stop-an-ai-assistant-leaking-documents-people-cannot-open","Как не дать ИИ-ассистенту выдавать документы, которые человеку недоступны","Индекс собирал сервисный аккаунт, которому было видно всё, поэтому ассистент способен процитировать что угодно. Ничего не падает, никого не оповещают, а утечку находят, когда кто-то читает ответ, не предназначенный ему.","\u003Ch2>Сбой, который не порождает ошибки\u003C\u002Fh2>\n\u003Cp>Внутреннего ассистента обычно строят одинаково: натравить обходчик на вики, диск, систему тикетов и репозитории, векторизовать всё найденное и поставить перед этим окно чата. Обходчик работает под сервисным аккаунтом с широкими правами на чтение, потому что иначе до всех источников не добраться без недели возни с доступами. Это единственное удобство и определяет уровень защищённости всей системы.\u003C\u002Fp>\n\u003Cp>Опасность в том, что о себе такой сбой не объявляет. Ни один запрос не падает, ни один алерт не срабатывает, ассистент отвечает бегло и по делу. Проблема всплывает, когда кто-то читает ответ с зарплатными вилками, необъявленной реорганизацией или юридическим спором и понимает, что это не для него, — а к этому моменту тот же ответ, скорее всего, уже получили и другие, которые промолчали.\u003C\u002Fp>\n\u003Ch2>Почему индекс забывает, кому что было видно\u003C\u002Fh2>\n\u003Cp>Права живут на документах. У эмбеддингов документов нет — есть векторы, а вектор это позиция в пространстве, где из всех отношений уцелела только близость. Когда контент режут на фрагменты и векторизуют, всё, что исходная система знала о владельце, шаринге и членстве в группах, выбрасывается, если вы намеренно это не перенесли.\u003C\u002Fp>\n\u003Cp>Поэтому шаг поиска отвечает на вопрос «какие пассажи ближе всего к запросу», а у близости нет мнения о том, имел ли спрашивающий право их читать. Дальше модель делает ровно то, для чего создана: пишет хороший ответ по переданному ей материалу.\u003C\u002Fp>\n\u003Ch2>Переносите метки доступа в индекс\u003C\u002Fh2>\n\u003Cp>Починка начинается на индексации. Каждый фрагмент нужно сохранять вместе с метаданными доступа исходного документа — группы, роли, идентификатор арендатора или идентификатор документа, управляющие оригиналом, — как фильтруемые поля рядом с вектором. Если ваше векторное хранилище не умеет эффективно фильтровать по метаданным, это повод сменить хранилище, а не повод отказаться от контроля.\u003C\u002Fp>\n\u003Cp>Прикрепляйте и классификацию, если она есть. Уровень, помечающий запись как данные ограниченного доступа, позволяет применять правила, которые иначе не применимы: вовсе не пускать самое чувствительное в индекс или разрешать его находить, но никогда не отправлять во внешнюю модель.\u003C\u002Fp>\n\u003Ch2>Фильтруйте на запросе, а не после ранжирования\u003C\u002Fh2>\n\u003Cp>Запрос должен нести личность спрашивающего, а фильтр применяться до ранжирования. Фильтровать потом — распространённое упрощение, и оно неверно дважды: информация утекает через количество найденного и через время ответа, а результат молча усыхает, так что пользователь с узкими правами получает не лучшие доступные ему фрагменты, а меньше и хуже. В итоге качество ответов падает именно у тех, кто вероятнее всего на это пожалуется.\u003C\u002Fp>\n\u003Ch2>Не давайте меткам протухать\u003C\u002Fh2>\n\u003Cp>Индекс — это копия, а права меняются постоянно: доступ отозвали, роль сменили, человек уволился. Переиндексировать на каждое изменение прав непрактично, поэтому работающие системы перепроверяют права в исходной системе в момент ответа, но только для тех нескольких документов, которые реально используются. Это по карману именно потому, что их единицы, и так закрывается окно между отзывом доступа и следующим обходом.\u003C\u002Fp>\n\u003Ch2>Мультиарендным продуктам нужна более жёсткая линия\u003C\u002Fh2>\n\u003Cp>Если вы встраиваете это в продукт, а не строите для одной компании, ошибка фильтра пересекает границу клиента, а не внутреннюю. Раздельные индексы или жёсткое разделение по арендаторам стоят дополнительной эксплуатационной тяжести: один пропущенный фильтр в общем индексе — это раскрытие данных между клиентами, а вскрывший его запрос может быть совершенно невинным.\u003C\u002Fp>\n\u003Ch2>Тестируйте это как систему прав, а не как поиск\u003C\u002Fh2>\n\u003Cp>Заведите небольшой набор пробных учёток с намеренно разным доступом и фиксированный список вопросов, ответы на которые зависят от документов, доступных лишь части из них. Прогоняйте его на каждое изменение конфигурации поиска и относитесь к утёкшему пассажу как к упавшему тесту, а не как к вопросу качества.\u003C\u002Fp>\n\u003Cp>Логируйте и идентификаторы документов, стоящих за каждым ответом. Именно логи поиска позволяют потом установить, кому что было показано, — а если восстановить это по логам нельзя, вы не сможете очертить границы инцидента и вынуждены будете исходить из максимально широкой утечки.\u003C\u002Fp>","Как не дать ИИ-ассистенту выдавать закрытые документы","Индекс наследует права обходчика, а не читателя. Как перенести права доступа в индекс и применять их в момент запроса, а не после ранжирования.",[11,12,13,14,15],"поиск с учётом прав","безопасность rag","внутренний ии-ассистент","контроль доступа","классификация данных","privacy-security","2026-08-24T03:30:02+00:00",[19,24,28,32,37,41],{"slug":20,"title":21,"excerpt":22,"updated_at":23},"ai-tool-pricing-models-seat-vs-usage-vs-credits","Модели ценообразования AI-инструментов: за место, за использование и по кредитам","Три распространённых способа тарификации AI-инструментов — за место, за использование и по кредитам — и как понять, какой из них окажется дешевле именно для того, как работает ваша команда.","2026-08-05T14:32:26+00:00",{"slug":25,"title":26,"excerpt":27,"updated_at":23},"how-ai-image-generators-differ-diffusion-vs-the-rest","Чем различаются ИИ-генераторы изображений: диффузия и всё остальное, простыми словами","Нетехническое объяснение того, как работают ИИ-генераторы изображений, почему диффузионный подход стал доминирующим и каких практических различий стоит ждать от разных инструментов.",{"slug":29,"title":30,"excerpt":31,"updated_at":23},"how-to-automate-your-workflow-without-code","Как автоматизировать процесс без кода","Практическая последовательность для автоматизаций, которые выживают: выбрать подходящий процесс, описать его до того, как открывать инструмент, и предусмотреть сбои, ломающие большинство первых попыток.",{"slug":33,"title":34,"excerpt":35,"updated_at":36},"how-to-build-a-chatbot-without-coding","Как собрать чат-бота без программирования","Практический путь к работающему чат-боту на no-code инструментах: определить границы, подключить свой контент, обработать вопросы без ответа и понять реальную стоимость.","2026-08-05T14:32:27+00:00",{"slug":38,"title":39,"excerpt":40,"updated_at":17},"how-to-change-a-prompt-without-breaking-production","Как менять промпт, не ломая прод","Промпты правят в текстовом поле и выкатывают за секунды — поэтому они ломают вещи тихо: ни компилятора, ни стектрейса, ни очевидного момента сбоя. Дайте им релизную дисциплину кода.",{"slug":42,"title":43,"excerpt":44,"updated_at":23},"how-to-choose-an-ai-writing-assistant","Как выбрать ИИ-ассистента для письма","Практическая схема выбора инструмента ИИ для письма — как соотнести его с той работой, которую вы реально пишете, проверить возможности редактирования и не попасть на инструменты, выдающие уверенный, но обезличенный текст."]