Сценарий, ради которого люди ставят локального ассистента, звучит так: показать ему папку с рабочими документами и спрашивать по ним. Сценарий рабочий, но у него есть граница, о которой обычно не предупреждают, и проходит она не там, где ожидается. Ломается не «понимание», а чтение: значительная часть того, что вы называете документами, для инструмента чтения файлов не является текстом.
Ниже — что читается как есть, что требует подготовки, что не читается никак, и какие обходные пути реально работают.
#Что понадобится
- Разрешённая папка. Ассистент работает не с диском целиком, а с рабочей директорией, за пределы которой путь не разрешается. Модель угроз и порядок выдачи прав разобраны в статье про настройку агента с доступом к файлам.
- Понимание, где физически лежат файлы. Если Persona развёрнута в контейнере или на сервере, ассистент видит файлы той машины, а не вашего ноутбука. Это самая частая путаница в этом сценарии.
- Готовность конвертировать часть архива. Без этого шага половина документов останется недоступной.
#Шаг 1. Разберитесь, что именно умеет читаться
Инструмент чтения файла делает буквально следующее: берёт путь внутри разрешённой директории, проверяет, что это файл, что он меньше жёсткого потолка, и читает его как текст в кодировке UTF-8, заменяя нечитаемые байты. Никакого разбора форматов на этом пути нет.
Отсюда честная таблица пригодности.
| Тип файла | Читается | Что происходит на деле |
|---|---|---|
.md, .txt, .csv, .json, .py и прочий текст |
✓ | содержимое как есть |
.docx, .xlsx, .pptx |
✗ | это zip-архивы, придёт мусор |
.pdf — и текстовый, и скан |
✗ | бинарный поток, придёт мусор |
.rtf, .odt |
✗ | разметка забьёт содержимое |
| Изображения, скриншоты | ✗ | для них нужен другой маршрут, см. ниже |
Смотреть в таблице надо на вторую колонку и не искать полутонов: библиотеки разбора офисных форматов и PDF в проекте нет вовсе, поэтому «частично работает» тут не бывает. Практический вывод: ваш архив делится на две части, и вторая требует шага конвертации, а не настройки.
Второе жёсткое ограничение — размер. Файл больше примерно полумегабайта не открывается совсем: инструмент возвращает отказ с указанием размера. Это не про качество ответа, а про отказ на входе. Просмотр содержимого директории тоже ограничен — показывается не больше двух сотен записей, дальше строка «и ещё столько-то».
#Шаг 2. Приведите архив к читаемому виду
Работающий порядок — не «научить ассистента читать PDF», а один раз получить текстовые копии.
- Выгрузите текст пакетно. Офисные документы сохраняются в Markdown или обычный текст штатными средствами; для PDF нужен внешний конвертер. Держите текстовые копии рядом с оригиналами, в отдельной подпапке.
- Режьте длинное. Договор на сотню страниц не пройдёт по размеру, а если бы прошёл — не поместился бы в контекст модели. Делите по разделам с осмысленными именами файлов: имя файла — это то, по чему ассистент выбирает, что открыть. Почему нарезка влияет на качество ответа сильнее, чем кажется, разобрано в статье про стратегии чанкинга.
- Оставьте оригиналы на месте. Текстовая копия нужна для чтения; подписи, печати и вёрстка живут в оригинале, и подменять его копией нельзя.
#Шаг 3. Выберите маршрут для того, что не конвертируется
Три случая, где конвертация не спасает, и что делать с каждым.
Сканы и фотографии документов. Текста в файле нет физически. Нужен либо внешний инструмент распознавания, либо модель, которая работает с изображениями напрямую — что для этого требуется от железа, разобрано в материале про vision-модели локально.
Сложные таблицы. Даже когда текст извлекается, структура теряется: объединённые ячейки, многоуровневые шапки и сноски превращаются в поток слов, и модель начинает соотносить не те числа с не теми строками. Это самая опасная ошибка в этом сценарии, потому что ответ выглядит уверенно. Рабочее решение — выгружать таблицы в CSV и спрашивать по CSV.
Документы, которые вы читаете, а не храните. Если содержимое нужно ассистенту один раз, конвертировать его незачем: то, что было на экране, попадает в память через захват и распознавание текста. У этого маршрута свои особенности — распознанный с экрана текст рваный, с ошибками в редких словах и без структуры документа; чего от него ждать, описано в статье про особенности поиска по OCR-тексту.
#Проверка результата
Три проверки, каждая занимает минуту.
- Попросите показать содержимое рабочей папки. Пути в ответе должны совпадать с тем, что вы видите в проводнике. Если список пуст или незнаком — вы смотрите на другую машину.
- Попросите процитировать первую строку конкретного файла. Не пересказать, а процитировать. Совпало — чтение работает; пришли символы вперемешку — вы дали неконвертированный формат.
- Задайте вопрос, ответ на который есть ровно в одном документе. Если ассистент отвечает правильно, но не называет файл, — он ответил из общих знаний, а не из вашего документа. Требуйте ссылку на источник в каждом ответе по архиву.
#Что может пойти не так
- Ответ по документу, которого ассистент не открывал. Самый частый и самый неприятный случай: модель отвечает правдоподобно из общих знаний. Лечится требованием цитаты и имени файла.
- Отказ по размеру, принятый за отказ по правам. Сообщение про размер и сообщение про выход за пределы разрешённой папки — разные вещи; читайте текст отказа, а не додумывайте.
- Мусор вместо текста. Признак того, что файл бинарный. Никакая переформулировка запроса это не исправит — нужна конвертация.
- Инструкция внутри документа. Текст, который ассистент читает, может содержать указание, адресованное самому ассистенту. Это не гипотетика, а известный класс проблемы, и защита от него — не доверие к модели, а узкие права. Общая рамка — в статье про ИИ, который создаёт файлы на вашем компьютере.
- Содержимое ушло провайдеру. Файл с диска не отправляется никуда сам по себе, но текст, который ассистент прочитал и вставил в запрос, уходит той модели, которую вы подключили: остаётся на вашем железе при локальной Ollama и уходит выбранному провайдеру при облачном ключе. Для документов под соглашением о неразглашении это решающая деталь.
#Частые вопросы
#Почему нельзя просто добавить поддержку PDF?
Технически можно, и это обычная библиотека. Сегодня её в проекте нет, поэтому обещать разбор PDF было бы неправдой. Пока так, честный ответ на вопрос «ассистент читает PDF» — нет, и обходной путь описан выше.
#Ассистент ищет по всей папке или только по файлу, который я назвал?
Он может перечислить содержимое директории и открыть конкретные файлы, выбирая их по именам. Это не полнотекстовый поиск по архиву: если нужное слово лежит в файле с неинформативным именем, ассистент до него не доберётся. Имена файлов в этом сценарии — не украшение, а рабочий индекс.
#Что происходит с файлом больше полумегабайта?
Он не открывается вовсе, инструмент возвращает отказ с указанием фактического размера. Обход один — разделить файл на части. Автоматической постраничной подкачки длинного документа в этом маршруте нет.
#Доступна ли работа с файлами участнику общей копии?
Инструменты чтения и записи работают в пределах рабочей директории конкретного пользователя, и вырваться из неё путь не может. Но разграничение между пользователями — это список разрешённых путей на кодовой базе, начинавшейся однопользовательской, а не усиленная мульти-тенантная граница. На копии, где зарегистрированы посторонние, давать доступ к чувствительным документам не стоит.
#Можно ли дать доступ только на чтение?
Разделение прав на чтение и запись — базовая часть разумной настройки: читать разрешают шире, чем писать. Как собрать матрицу прав целиком, разобрано в статье про настройку агента с доступом к файлам.
#Что быстрее — конвертировать архив или спрашивать по захвату экрана?
Зависит от того, возвращаетесь ли вы к документам. Разовое чтение дешевле оставить захвату: вы всё равно откроете документ глазами. Архив, к которому вы обращаетесь регулярно, дешевле один раз конвертировать — тогда ответы будут по полному тексту, а не по тому куску, который попал на экран.
#Вывод
Ассистент на вашем диске читает текст и не читает форматы. Это скучная, но определяющая граница: .md и .csv работают сразу, офисные документы и PDF требуют конвертации, сканы и сложные таблицы требуют отдельного маршрута, а всё длиннее полумегабайта не откроется вовсе. Если ваш архив уже текстовый — сценарий заработает в тот же вечер. Если это папка отсканированных договоров — сначала честно оцените стоимость конвертации, и только потом решайте. Как работа с документами встраивается в общую систему памяти о вашем контексте, разобрано в разборе второго мозга на ИИ.