Вызывайте нейросеть прямо в ячейках через кастомную функцию =GPT(). Несколько строк Apps Script на UrlFetchApp обращаются к OpenAI-совместимому API GROWMI — оплата в рублях, без VPN.
Тональность отзыва, категория обращения, спам / не спам — метка прямо в соседней колонке.
Описания товаров, заголовки, короткие тексты по данным из строки таблицы.
Перевод ячеек, приведение к единому формату, исправление регистра и опечаток.
Достать из произвольного текста телефон, город или сумму и разложить по колонкам.
Таблица не ходит в модель напрямую. Между ними — Apps Script: кастомная функция получает текст из ячейки, через UrlFetchApp вызывает AI API и возвращает результат обратно в ячейку.
Вводите =GPT(A2) — Google Sheets передаёт значение ячейки в кастомную функцию.
Функция берёт ключ из Script Properties и формирует HTTP-запрос через UrlFetchApp.
Запрос уходит на российский эндпоинт с base_url и ключом — ответ модели в рублях.
Функция возвращает текст ответа, и он появляется в той же ячейке таблицы.
Помните про кэширование и квоты: Google Sheets пересчитывает кастомные функции при изменениях листа, а у Apps Script есть лимит времени выполнения и квота на число вызовов UrlFetch в сутки.
Откройте Расширения → Apps Script, вставьте код и сохраните ключ в свойствах проекта. Меняете base_url и ключ — остальное стандартное.
/** * Вызывает AI API GROWMI прямо из ячейки. * @customfunction */ function GPT(prompt) { const key = PropertiesService.getScriptProperties() .getProperty("GROWMI_KEY"); const cache = CacheService.getScriptCache(); const hit = cache.get(prompt); if (hit) return hit; // не дёргаем API на каждый пересчёт const res = UrlFetchApp.fetch("https://api.growmi.ru/v1/chat/completions", { method: "post", contentType: "application/json", headers: { Authorization: "Bearer " + key }, payload: JSON.stringify({ model: "gpt", max_tokens: 120, // потолок ответа = контроль расхода messages: [{ role: "user", content: String(prompt) }] }) }); const out = JSON.parse(res.getContentText()) .choices[0].message.content.trim(); cache.put(prompt, out, 21600); // кэш на 6 часов return out; }
# классификация значения из ячейки A2 =GPT("классифицируй тональность одним словом: "&A2) # перевод ячейки B2 на английский =GPT("переведи на английский: "&B2) # генерация заголовка по описанию из C2 =GPT("короткий заголовок для товара: "&C2)
// Настройки проекта → Свойства скрипта → Script Properties // Property: GROWMI_KEY Value: wp-... // Ключ не хранится в коде и не утекает при копировании таблицы. // Или задать один раз из редактора: function setKey() { PropertiesService.getScriptProperties() .setProperty("GROWMI_KEY", "wp-..."); }
Месячный потолок расхода в кабинете. Дошли до лимита — запросы останавливаются, таблица не уходит в минус.
Через CacheService по тексту запроса. Пересчёт листа не дёргает API повторно — берётся готовый ответ из кэша.
Ограничьте длину ответа и обрабатывайте строки пачками, а не весь столбец разом — короче и дешевле каждый запрос.
CacheServicemax_tokens и число строк за один проходНет. Apps Script обращается к российскому эндпоинту GROWMI, поэтому VPN не нужен ни в браузере, ни на серверах Google.
В Script Properties (Свойства проекта), а не в коде функции. Так ключ не утечёт при копировании таблицы или экспорте скрипта.
Google Sheets пересчитывает кастомные функции при любом изменении листа. Кэшируйте результат через CacheService по тексту запроса и фиксируйте значение как текст, когда оно получено.
Да. Оплата идёт в рублях через российский кабинет GROWMI — без иностранных карт и зарубежных платёжных систем.
Не протягивайте формулу на весь столбец разом. Обрабатывайте строки пачками, кэшируйте повторяющиеся запросы и держитесь в пределах квоты UrlFetch и лимита времени выполнения Apps Script.
Оставьте email — пришлём ключ, тестовый баланс и готовый шаблон Apps Script с функцией =GPT().