Google Диск
Документы компании · издатель buff · версия 1.1.0
Документы, таблицы и презентации Google как контекст для ответов и вопросы прямо в комментариях. Отчёт исследования — документом в ту же папку.
Ответ в Buff опирается на таблицу с Google Диска — с названием таблицы и раздела. Форма настройки: адреса сервиса, папки и файлы, способ входа. Вместо сервисного аккаунта можно войти своей учётной записью: после сохранения появится кнопка «Войти». Подключение работает: семь инструментов, из них пять только читают (зелёные). Проверка связи называет, от чьего имени работает подключение, и сколько отмеченных папок ему доступно. Что интеграция получит, написано в её карточке в каталоге коннектора.
Нажмите на снимок, чтобы открыть его целиком. Все снимки — с работающей установки.
Обзор
На Диске у команды лежит то, чего нет ни в задаче, ни в коде: спецификация в документе, план в таблице, решения в презентации. Интеграция даёт Buff читать отмеченные папки, когда это нужно для ответа, принимает вопросы прямо в комментариях к документу, таблице или презентации и умеет оставить результат документом: отчёт исследования появляется в той же папке, где спросили. Войти можно сервисным аккаунтом — для команды — или своей учётной записью, если Диск личный.
Сценарии
Ситуации, ради которых его ставят.
Маркетолог проверяет текст по позиционированию
Документ «Как мы говорим о продукте» лежит на Диске: что говорим, чего не говорим, какие слова запрещены. Каждый новый текст сверяют с ним вручную — или не сверяют.
Результат. ИИ-агент находит документ по словам вопроса — Диск ищет по содержимому, интеграция сверяет словоформы, — и отвечает, что в тексте расходится с документом, с цитатами из него.
Бюджет, в котором всё записано
Бюджет финансисты ведут таблицей Google: лист на квартал, строки — статьи, столбцы — план и факт. В вопросе «что стоит в строке «Обучение» и почему» никто эту таблицу не пересказывает.
Результат. ИИ-агент читает таблицу лист за листом — каждый как таблицу — или ровно нужный диапазон и отвечает по строкам, ничего не обрезая.
Вопрос прямо в документе
Кто-то читает спецификацию и не понимает, как она применяется к его случаю. Идти в другой инструмент ради вопроса — лишний шаг, который обычно не делают.
Результат. Он пишет боту в комментарии к документу. Ответ приходит в ту же ветку и остаётся рядом с абзацем, о котором спрашивали.
Личный Диск — от своего имени
Один человек хочет подключить свой Диск: без сервисных аккаунтов, без администратора Google Workspace — «я быстро вошёл один раз, и всё».
Результат. Свой OAuth-клиент, кнопка «Войти», согласие в браузере — и коннектор дальше обновляет доступ сам. Бот читает всё, что видите вы, и отвечает от вашего имени.
Примеры
Что написать и что придёт в ответ. Обращение к боту задаётся в настройках подключения — здесь это «@buff».
+buff-bot@проект.iam.gserviceaccount.com как у нас называется схема миграций?
комментарий в любом документе отмеченной папки
инструмент:
search_files + get_fileВнутреннее имя схемы миграций — «Верхотурье»: номер собирается как ГГ.ММ.N. Источник: документ «Регламент выпуска релизов», раздел «Схема миграций».
@buff какие задачи в работе по экспорту?
вопрос в приложении Buff или комментарий в таблице
инструмент:
get_sheetНа листе «Задачи» две строки про экспорт; в работе одна — «Экспорт в CSV», оценка 3. Вторая, «Кодировка выгрузки», уже готова. Ссылка на таблицу — ниже.
/research почему выгрузка ломается на кириллице
комментарий в документе с регламентом
инструмент:
get_file + create_documentСлово после обращения выбирает работу: без него — короткий ответ, «research» — исследование, «task» — черновик задачи. Отчёт исследования появится новым документом в этой папке, рядом — PDF; в ветку придёт ссылка.
@buff что в этой папке есть про резервные копии?
вопрос в приложении с ссылкой на папку
инструмент:
list_folder + search_filesВ папке шесть файлов; про резервные копии — два: документ «Резервное копирование» (расписание, срок хранения) и таблица «Восстановление» (порядок и кто утверждает). Оба — по ссылкам.
Что умеет
Читает то, что нужно, и тогда, когда нужно
search_files ищет по названиям и по содержимому силами самого Диска, а найденное ранжирует, читая текст, — словоформы вопроса и документа встречаются. get_file отдаёт документ как markdown, таблицу — всеми листами, презентацию — текстом, папку — списком; get_sheet — один лист или диапазон. Модель вызывает их сама, когда вопрос этого требует: ничего не копируется к нам заранее и не индексируется, а платите вы за то, что реально прочитано.
Документ приходит как markdown, таблица — таблицами
Документ Google экспортируется одним вызовом в markdown — заголовки, списки, таблицы, код, ссылки; интеграция ничего не дополняет и не обрезает. Таблица читается лист за листом, каждый — markdown-таблицей с заголовком из первой строки; лист на тысячу строк остаётся листом на тысячу строк.
Отвечает там, где спросили — и документом, когда это отчёт
Упоминание бота (адресом, именем или псевдонимом) или команда через слэш в комментарии запускает вопрос, исследование или черновик задачи; ответ приходит в ту же ветку. Отчёт исследования — новый документ в папке того, где спросили, с текстом; рядом — PDF; в ветку приходит ссылка.
Корни — это область
В подключении перечисляются папки и файлы; бот работает в них и во всём вложенном, читает и пишет только там, общие диски — в поле зрения всегда. Пустой список означает «всё, что открыто учётной записи» — эту границу уже провёл сам Google, когда вы делились папками.
Два способа войти — и токены выпускает коннектор
Сервисный аккаунт: JSON-ключ, папками делятся с его адресом, бот пишет от своего имени. Своя учётная запись: свой OAuth-клиент, вход один раз через браузер с возвратом на страницу коннектора. В обоих случаях Google выдаёт токены на час, и обновляет их коннектор — ключ и refresh-токен лежат на вашей машине, интеграция их не видит.
Опрос вместо вебхука
У Диска нет ленты комментариев, а push-уведомления требуют проверенный домен. Интеграция обходит документы области по кругу и спрашивает у каждого комментарии, изменённые после начала чтения, — по умолчанию раз в 5 секунд, интервал меняется в настройках. Лимиты Google интеграция уважает: 429 и 403 «rate limit» выжидаются так, как просит Google.
Как пользоваться
Всё происходит на машине, где стоит коннектор. Открывать доступ к вашей сети снаружи не нужно ни на одном шаге.
Шаг 1
Установка занимает одно нажатие
Откройте раздел «Маркетплейс» на локальной странице коннектора. До установки видно, что интеграция получит: адреса, по которым она сможет ходить, какие учётные данные попросит и сколько инструментов увидит модель. Коннектор скачивает подписанный бандл из нашего реестра и проверяет подпись до того, как что-то запишет на диск.
Коннектор← прокрутите кадр →
Границы доступа написаны в карточке каталога. Шаг 2
Для команды — сервисный аккаунт
В консоли Google Cloud включите Drive API и Sheets API, создайте сервисный аккаунт и скачайте его JSON-ключ. Поделитесь нужными папками с адресом аккаунта — как с коллегой. В форме выберите «сервисный аккаунт» и вставьте содержимое ключа.
Коннектор← прокрутите кадр →
Поля формы — свои у каждой интеграции. Шаг 3
Для себя — своя учётная запись
Создайте OAuth-клиент типа «Компьютерное приложение» в своём проекте Google Cloud, вставьте client ID и client secret, сохраните подключение и нажмите «Войти». Google вернёт браузер на страницу коннектора; если браузер на другой машине — вставьте адрес возврата в поле рядом.
Коннектор← прокрутите кадр →
Вход выполняется один раз; дальше коннектор обновляет доступ сам. Шаг 4
Настройка — корни, псевдоним и интервал
Адреса подставлены. Назовите корни — ссылки или идентификаторы папок и файлов, через запятую (пусто — всё, что открыто учётной записи), короткое имя бота, например `buff`, и при желании интервал опроса.
Шаг 5
То же самое из командной строки
Установка без графики равноправна, а не запасной вариант: `connector install google-drive`, затем `connector instance set --plugin google-drive --version 1.0.0 --set roots=https://drive.google.com/drive/folders/… --poll 5`, ключ — `connector instance secret … --secret api --kind service_account`; для своей учётной записи — `--kind oauth2` и `connector instance signin`.
Коннектор← прокрутите кадр →
У каждого подключения — свой набор инструментов и свой разрешённый адрес.
Границы доступа
То же самое коннектор показывает на вашей машине до установки. Список берётся из подписанного каталога, а не написан здесь руками.
Ходит наружу
только по адресам из полей drive_apisheets_api
Учётные данные
api — значения остаются в коннекторе, интеграция их не видит
Вебхуки
не принимает
| Инструмент | Что делает | Доступ |
|---|---|---|
| search_files | Найти документы, таблицы, презентации и папки по словам в названии и в тексте — когда ответ может быть уже записан на Диске | только чтение |
| get_file | Прочитать документ целиком (markdown), таблицу (все листы), презентацию (текст) или папку (содержимое) — вместе с обсуждением | только чтение |
| list_folder | Перечислить содержимое папки — когда ответ собирается из нескольких файлов одного раздела | только чтение |
| get_sheet | Прочитать один лист или диапазон таблицы — когда нужна конкретная часть большой таблицы | только чтение |
| get_comments | Обсуждения файла — ветки комментариев с ответами, кто и когда писал | только чтение |
| add_comment | Написать комментарий к файлу или ответить в ветке обсуждения | пишет |
| create_document | Создать документ Google из markdown в одной из подключённых папок | пишет |
Интеграция работает отдельным процессом под собственным пользователем операционной системы: она не видит ключа коннектора, не читает файлы других подключений и не может выйти в сеть мимо коннектора. Подробнее — в разделе о безопасности.
Требования
- Проект Google Cloud с включёнными Google Drive API и Google Sheets API — свой, любого плана; Google Workspace не обязателен.
- Сервисный аккаунт с JSON-ключом, которому поделили папки, — или свой OAuth-клиент типа «Компьютерное приложение» для входа своей учётной записью.
- Коннектор версии 0.10 или новее: учётные данные, которые коннектор выпускает сам (сервисный аккаунт, OAuth), появились в нём; старый коннектор откажется ставить интеграцию и назовёт обе версии.
- Сетевой доступ от машины с коннектором до www.googleapis.com, sheets.googleapis.com, oauth2.googleapis.com и accounts.google.com — наружу из вашей сети ничего открывать не нужно.
- Коннектор, запущенный с правом заводить отдельного пользователя ОС для интеграции (root или CAP_SETUID).
Вопросы
- Бот сможет что-то изменить в документах?
- Нет. Он читает документы, таблицы и презентации, пишет комментарии и создаёт новые документы внутри области; существующие не редактирует — такого инструмента у интеграции нет вовсе.
- Чем сервисный аккаунт отличается от своей учётной записи?
- Сервисный аккаунт — отдельный робот: видит только то, чем с ним поделились, и пишет от своего имени; это вариант для команды. Своя учётная запись — вы сами: бот видит весь ваш Диск и отвечает как вы; это вариант для личного Диска. Документ, который сервисный аккаунт создаёт в чужой папке «Моего диска», принадлежит ему; на общем диске этого нет.
- Google пишет «Приложение не проверено» — это нормально?
- Да, для своего OAuth-клиента в режиме тестирования. Это ваш собственный клиент в вашем проекте Google Cloud; добавьте себя в тестовые пользователи и нажмите «Продолжить».
- Как ограничить, что он видит?
- Двумя способами сразу: тем, чем поделились с учётной записью в Google, и списком папок в настройке подключения. Список работает в обе стороны, а пустой список означает «всё, что открыто учётной записи».
- Большой документ — это большой счёт?
- Документ читается целиком и не обрезается: обрезанный регламент — это тихо потерянное требование. Но читается он только тогда, когда модель за ним пошла, и в ответе видно, какие файлы были прочитаны.
Дальше
Подключить Google Диск
Поставьте коннектор в своей сети, откройте его локальную страницу и установите интеграцию из каталога. Пересобирать ничего не нужно.
Юрлицам и ИП — оплата переводом по реквизитам и закрывающие документы