AI в Google Таблицах через AI Gateway: функция =AI() на Apps Script
Как добавить в Google Таблицы формулу =AI(): скрипт Apps Script вызывает OpenAI-совместимый API AI Gateway, ключ хранится в свойствах скрипта. Массовая обработка ячеек прямо в таблице.
В Google Таблицах можно завести собственную формулу =AI("…"), которая обращается к модели и возвращает ответ прямо в ячейку. Делается это через Apps Script — встроенный скриптовый движок Google. Так удобно массово переводить, классифицировать, суммировать или размечать данные строками таблицы. Модели берём из каталога AI Gateway.
Подготовка
Нужен ключ AI Gateway sk-aigate-… и базовый URL https://ai-gatewey.ru/v1. Ключ храним не в коде, а в свойствах скрипта (Script Properties) — они не видны тем, у кого есть доступ только к таблице.
Реализация
- Откройте редактор Apps Script
В таблице меню Расширения → Apps Script. Откроется редактор, привязанный к этому документу, — весь код ниже вставляем туда.
- Сохраните ключ в свойствах скрипта
Запустите один раз функцию-установщик (или задайте свойство вручную в настройках проекта) — ключ окажется в защищённом хранилище, а не в тексте формулы:
jsjsfunction setup() {PropertiesService.getScriptProperties().setProperty('AIGATE_API_KEY', 'sk-aigate-ваш_ключ');} - Функция =AI()
Пользовательская функция шлёт промпт на AI Gateway через
UrlFetchAppи возвращает текст ответа — его можно вызывать как обычную формулу:jsjs/*** Запрос к модели AI Gateway.* @param {string} prompt Текст запроса.* @param {string} model Код модели (необязательно).* @return Ответ модели.* @customfunction*/function AI(prompt, model) {var key = PropertiesService.getScriptProperties().getProperty('AIGATE_API_KEY');var res = UrlFetchApp.fetch('https://ai-gatewey.ru/v1/chat/completions', {method: 'post',contentType: 'application/json',headers: { Authorization: 'Bearer ' + key },payload: JSON.stringify({model: model || 'deepseek/deepseek-v4-flash',messages: [{ role: 'user', content: prompt }],}),});var data = JSON.parse(res.getContentText());return data.choices[0].message.content;} - Используйте формулу в ячейках
Теперь
=AI()работает как встроенная функция и ссылается на другие ячейки — например, перевод из столбца A:texttext=AI("Переведи на английский: " & A2)
Какие модели подойдут
Обработка строк таблицы — это множество однотипных запросов, поэтому берут быструю недорогую модель:
Частые вопросы
Почему формула иногда показывает ошибку лимита?
При протягивании на сотни строк таблица шлёт запросы пачками и упирается либо в RPM-лимит ключа (429), либо в его потолок расхода или баланс аккаунта (402), либо в собственные ограничения Apps Script на вызовы UrlFetchApp. Обрабатывайте данные частями и поднимите лимит ключа при необходимости.
Пересчитывается ли =AI() при каждом открытии?
Пользовательские функции пересчитываются при изменении аргументов. Чтобы не тратить токены на повторные вызовы, после получения результата скопируйте ячейки и вставьте как значения (Специальная вставка).
Можно ли выбрать модель прямо в формуле?
Да, вторым аргументом: =AI("…"; "qwen/qwen3.7-flash"). Без него берётся модель по умолчанию из кода. Коды смотрите в каталоге.