Статья

Google Диск в Schai GPT: как найти файл, название которого забыл

Google Диск в Schai GPT: как найти файл, название которого забыл

ProfileProfile·9 ч назад·
14
··0·
Если коротко: Schai GPT ищет на вашем Google Диске не только по названию файла, но и по тому, что внутри него написано. Просьба «найди, где у меня было про подрядчика из Твери» превращается в запрос к Диску вида «имя содержит эту фразу ИЛИ полный текст содержит эту фразу» — и файл находится, даже если он называется «Смета_итог_v3». Дальше ИИ читает найденное целиком: весь текст документа, все строки таблицы. И тем же сообщением может отдать прочитанное в создание нового файла — так из документа, который вы даже не открывали, получается готовый Excel.
Это Profile. Я разбираю здесь, как наши инструменты устроены внутри, поэтому дальше — по коду Schai GPT, а не по рекламному описанию: какой именно запрос уходит в Google, что ИИ видит в файле, где чтение обрывается и чего он не умеет в принципе. Ограничения буду называть там же, где возможности, — иначе в таком разборе нет смысла.

Почему поиск по названию перестаёт работать через год

Имя файлу дают один раз — в первые тридцать секунд его жизни, когда ещё непонятно, чем он станет. Дальше документ живёт: обрастает правками, копиями, версиями «финал», «финал2», «правки от Лены». Через год в голове не остаётся ни одного из этих имён. Остаётся содержание: «там был пункт про пени», «там была та самая таблица с тверским подрядчиком».
Обычный поиск на это отвечает пустотой — он ищет по обложке, а помните вы начинку. Дальше человек листает папки руками, и это самая дорогая операция на Диске: тратится не клик, а внимание.
В Schai GPT для файлов на Диске есть два разных инструмента поиска, и вся разница между ними ровно здесь. find_documents ищет слово в названии. search_drive ищет и в названии, и в тексте внутри файлов. Второй появился именно как ответ на фразу «не помню, как назвал».

Что именно уходит в Google

Механика простая и от этого надёжная. search_drive собирает для Диска условие вида «name contains 'X' or fullText contains 'X'» и всегда добавляет «trashed = false» — корзина в выдачу не попадает. В документации Drive API fullText описан как совпадение по имени, описанию, свойству indexableText и по тексту в содержимом или метаданных файла. То есть одно и то же слово проверяется сразу и по обложке, и по начинке — за один запрос.
Результаты приходят отсортированными по дате последнего изменения, по умолчанию пятнадцать штук (максимум пятьдесят), и в каждом — название, тип, дата и прямая ссылка. Поиск можно сузить типом: только документы, только таблицы, только презентации, только PDF.
Важная оговорка: это поиск по вхождению строки, а не по смыслу в математическом значении слова. Google ищет именно ту фразу, которую вы назвали, а не синонимы к ней. Отсюда следует вполне конкретный совет — он ниже, в разделе про формулировки.

Три способа добраться до файла — и когда какой работает

ИИ выбирает инструмент сам, по тому, как построена ваша фраза. Понимание этого выбора меняет качество ответа сильнее, чем любые настройки.
find_documents — когда вы помните название или его кусок. «Какие у меня есть таблицы по расходам», «покажи договоры», «найди всё про тендеры». Инструмент умеет ограничиться только документами или только таблицами, а если слово не задавать вовсе — просто покажет последние файлы. Он возвращает список и ничего не открывает и не меняет.
search_drive — когда вы помните только смысл. «Где у меня файл про X, не помню, как назывался», «в каком документе было про Y», «найди, где я писал про Z». Здесь и работает fullText: файл с именем «Копия документа без названия» находится по фразе из его третьего абзаца. На выходе — список кандидатов со ссылками, а не один «единственно верный» файл: выбирать вам или следующему шагу.
open_document — когда файл конкретный. Точное название или просто ссылка docs.google.com, вставленная в чат. Это уже не поиск, а работа: файл открывается в диалоге, дальше по нему можно задавать вопросы и вносить правки.
Разница между первым и вторым — то место, где промахиваются чаще всего. «Найди документ Смета» отправит ИИ искать слово «Смета» в названиях. «Найди документ, где была смета по Твери» отправит его искать по тексту. Формулировка буквально переключает механизм.
Четыре инструмента работы с файлами на Диске и запрос, который уходит в Google при поиске по содержимому

Нашёл → прочитал → сделал новое

Это главное, ради чего всё затевалось, и одновременно самая недооценённая часть.
Поиск возвращает только карточки файлов: имя, тип, дата, ссылка. Данных внутри там нет. Чтобы добраться до содержимого, есть отдельный инструмент — read_drive_file. Он читает ОДИН файл целиком: весь текст Google Документа, все строки Google Таблицы по всем её листам, текст презентации, содержимое обычного txt, csv, markdown или json. Не первые строки и не аннотацию — сам текст.
В чате при этом показывается короткий предпросмотр, около девятисот знаков, чтобы не заваливать переписку простынёй. Модель получает полный текст. Это не одно и то же — и именно поэтому ИИ отвечает на вопрос по середине двадцатистраничного документа, хотя на экране вы видите только первый абзац.

Плейсхолдер, который соединяет шаги

Дальше — та самая деталь, о которой почти никто не знает. Результат чтения не запирается внутри шага: его можно передать в следующий инструмент, подставив в его аргумент плейсхолдер {{prev}}. На месте плейсхолдера окажется весь прочитанный текст.
Что это значит на практике. Просьба «сделай мне эксель с данными из того файла, где была смета по Твери» выполняется тремя шагами без единого уточняющего вопроса: search_drive находит файл по содержимому → read_drive_file читает его целиком → create_office_file получает в своём задании {{prev}}, то есть полный текст сметы, и отдаёт готовый xlsx.
Принимающих шагов несколько: новый Google Документ или Таблица, файл для скачивания (Excel, Word, PDF), правка уже открытого документа. Причём файл для скачивания делается вообще без обращения к Google — Google нужен только на входе, чтобы прочитать источник.
Особняком стоит запись в уже существующую Google Таблицу: туда данные попадают только через явно поставленный {{prev}} внутри корректной матрицы значений. Там, где остальные инструменты принимают текст «как есть», таблица требует строгой структуры, иначе запись не проходит вовсе. Это ограничение стоит в коде сознательно — после того как приклеенный к матрице текст ломал разбор данных.

Что ИИ читает внутри файла — и где чтение обрывается

Теперь неприятная половина, без которой разбор был бы враньём.
Чтение ограничено бюджетом — порядка двадцати тысяч знаков за раз. Это много: средний договор или отчёт помещается целиком. Но длинный файл будет обрезан, и ассистент об этом сообщает признаком «текст усечён», а не делает вид, что прочитал всё до конца.
Таблица читается не более чем по пяти листам и превращается в простой построчный текст со столбцами через табуляцию. Для расчётов этого достаточно; для сохранения формул и оформления — нет: формулы приходят уже посчитанными значениями.
Из Google Документа извлекается текст абзацев. Таблица, вставленная внутрь документа, в этот текст не попадает — она лежит в другой структуре и при чтении пропускается. Если вся суть вашего договора в табличке с суммами, держите её отдельной Google Таблицей: тогда она прочитается полностью.
И совсем глухой случай: скан в PDF, фотография, картинка, видео. Такие файлы поиском находятся — по имени и по тому тексту, который Google сам сумел из них извлечь, — но прочитать их содержимое ассистент не может и не притворяется: возвращается явная ошибка «формат нечитаемый», и в чате вы видите прямую фразу, что текст из этого файла не извлекается. Своего распознавания сканов у нас нет, а выдумывать содержимое вместо него — худшее, что может сделать ассистент.
Что с этим делать. Сам Google Диск умеет преобразовать PDF или фотографию в текст, если открыть файл через Google Документы: поддерживаются PDF, JPEG, PNG и GIF размером до 2 МБ, текст должен быть ровно ориентирован, а списки и таблицы, предупреждает Google, скорее всего не распознаются. Получившийся документ ассистент уже прочитает как обычный.
Цепочка «найти → прочитать → создать» и границы чтения: что извлекается из файла целиком, а что не извлекается вовсе

Доступы: что вы разрешаете и как это отозвать

Работа с Диском включается одним действием — подключением Google-аккаунта в личном помощнике. Технически это обычный OAuth: вас перебрасывает на страницу согласия Google, вы видите список запрашиваемых прав и подтверждаете его. Смысл протокола OAuth 2.0 в том, что стороннее приложение получает ограниченный доступ к сервису, не получая ваших учётных данных: наружу выдаётся токен, а не пароль. Пароль от Google мы не видим ни в каком виде — его вводят только на странице самого Google.
Дальше то, о чём принято молчать, а надо говорить прямо. Чтобы искать по содержимому и читать файлы любого типа, приложение запрашивает у Google разрешение drive. В классификации разрешений Drive API это restricted-доступ с формулировкой «просмотр и управление всеми файлами на Диске» — самый широкий из возможных. Более узкое разрешение, только к файлам, открытым через само приложение, поиска по всему Диску не даёт в принципе: искать можно лишь там, куда есть доступ.
Право широкое — а набор действий узкий, и определяется он не правом, а списком инструментов. Для Диска их в Schai GPT четыре типа: поиск, чтение, создание нового файла и правка того файла, с которым вы работаете. Инструмента, который удаляет что-либо на Диске, в коде не существует. Управления доступом, приглашений в документ, переноса между папками — тоже нет.
Токены хранятся на нашей стороне зашифрованными и привязаны к вашему аккаунту: каждый запрос к Диску сначала проверяет, что это действительно вы, и только потом идёт в Google. Открыть через свой чат чужой Диск нельзя.
Отзывается доступ по двум независимым адресам. В Schai GPT — кнопкой отключения Google в помощнике: мы при этом сами обращаемся к точке отзыва Google и гасим токен, а не просто забываем его. Второй путь не зависит от нас вовсе — страница сторонних приложений в вашем Google-аккаунте, где видно, какой доступ у приложения есть, и стоит кнопка «Закрыть доступ». После отзыва Диск для ассистента становится невидим: ни поиска, ни чтения.

Как спрашивать, чтобы нашлось

Раз поиск идёт по вхождению строки, формулировка решает почти всё.
Называйте слова, которые физически есть в файле. Не тему («что-то по логистике»), а фразу, которая в документе написана: фамилию контрагента, название города, номер договора, специфический термин. Одно редкое слово работает лучше трёх обычных.
Точная фраза сильнее темы. «Пени за просрочку поставки» найдёт документ, где эта строка стоит. «Документ про штрафы» — скорее всего нет, потому что слова «штрафы» в тексте может не быть вовсе.
Не стесняйтесь не помнить название. Так и пишите: «не помню, как назвал». Эта формулировка прямо описана в правилах выбора инструмента и переключает ассистента с поиска по именам на поиск по содержимому.
Сужайте типом, если знаете его. «Найди таблицу, где…» — и поиск ограничится таблицами. Меньше кандидатов, точнее попадание.
Просите сразу результат, а не файл. «Найди файл, где была смета по Твери, и сделай из него эксель со сроками и суммами» — одна реплика и три шага. Если сначала попросить найти, а потом отдельным сообщением «а теперь сделай таблицу», итог будет тот же, но дольше.
Не нашлось с первого раза — меняйте слово, а не переспрашивайте. Пустая выдача почти всегда означает, что названной строки в файле нет. Вспомните другую, более редкую.

Честные границы

Чтобы не оставлять ложных ожиданий, соберу в одном месте то, чего Schai GPT с Диском не делает. Он не наводит порядок: не переименовывает файлы, не раскладывает их по папкам, не чистит дубликаты. Он не удаляет файлы. Он не меняет права доступа и никого не приглашает в документ. Он не редактирует файл вместе с вами в реальном времени — правка идёт отдельным действием по вашей просьбе. Он не ищет в корзине. Он не распознаёт текст на картинках и сканах. И он не видит файлы, к которым нет доступа у вашего собственного Google-аккаунта: ассистент ходит на Диск ровно с вашими правами, не шире.
Всё остальное — поиск по содержимому, чтение целиком и сборка нового файла из найденных данных — работает и стоит того, чтобы один раз попробовать на настоящей задаче: той самой, где вы уже минут десять листаете папки руками.

Коротко

find_documents ищет по названию, search_drive — по названию и по тексту внутри файлов; фраза «не помню, как назвал» переключает на второй. — Запрос к Google выглядит как «имя содержит X или полный текст содержит X», корзина из поиска исключена. — read_drive_file читает один файл целиком: весь документ, все строки таблицы по пяти листам, около 20 000 знаков за раз. — Прочитанное передаётся дальше плейсхолдером {{prev}} — так из найденного документа за одну реплику получается Excel, Word, PDF или новая Google Таблица. — Скан в PDF, фото и видео не читаются: это честная ошибка, а не молчаливая выдумка. Лечится штатным распознаванием самого Диска. — Доступ выдаётся по OAuth и отзывается двумя способами: кнопкой в Schai GPT и на странице сторонних приложений Google. — Удаления файлов, смены прав и наведения порядка на Диске в инструментах нет — их нет и в коде.
0

Пока нет комментариев

Поиск файла на Google Диске по содержимому