Как подключить GPT к Google Sheets

Три способа интеграции GPT с Google Sheets: от простых расширений до кастомных функций через Apps Script.

Как подключить GPT к Google Sheets

Google Sheets — один из самых массовых рабочих инструментов: по данным Google, таблицами пользуются более 3 миллиардов человек. Подключение GPT к Sheets превращает таблицу в инструмент обработки текста: классификация данных, генерация описаний, перевод, извлечение сущностей — всё это можно сделать формулой в ячейке. Рассмотрим три способа интеграции.

Способ 1: Расширение GPT for Sheets

Самый быстрый старт — расширение GPT for Sheets and Docs от Talarian. Установка из Google Workspace Marketplace занимает минуту. После установки введите API-ключ OpenAI в настройках расширения и получите доступ к функциям прямо в ячейках.

Основные функции:

=GPT("Переведи на английский: " & A2)
=GPT_CLASSIFY(A2, "позитивный, негативный, нейтральный")
=GPT_EXTRACT(A2, "email")
=GPT_SUMMARIZE(A2)
=GPT_TAG(A2, "технологии, финансы, здоровье, спорт")

Расширение обрабатывает ячейки по одной, поэтому на больших таблицах (1000+ строк) работает медленно. Для пакетной обработки используйте функцию GPT_TABLE, которая отправляет данные группами.

Способ 2: Кастомные функции через Apps Script

Google Apps Script позволяет создать собственные функции для Google Sheets, которые вызывают API напрямую. Этот способ гибче расширения и не требует подписки на сторонний сервис.

Откройте «Расширения → Apps Script» и вставьте код:

const OPENAI_KEY = PropertiesService.getScriptProperties().getProperty('OPENAI_KEY');

function GPT(prompt, model = "gpt-4o-mini") {
  const url = "https://api.openai.com/v1/chat/completions";
  const payload = {
    model: model,
    messages: [{role: "user", content: prompt}],
    max_tokens: 256,
    temperature: 0.3
  };
  
  const options = {
    method: "post",
    headers: {
      "Authorization": "Bearer " + OPENAI_KEY,
      "Content-Type": "application/json"
    },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };
  
  const response = UrlFetchApp.fetch(url, options);
  const json = JSON.parse(response.getContentText());
  return json.choices[0].message.content.trim();
}

function CLASSIFY(text, categories) {
  return GPT(`Классифицируй текст в одну из категорий: ${categories}.\nТекст: ${text}\nКатегория:`);
}

function EXTRACT_DATA(text, field) {
  return GPT(`Извлеки ${field} из текста. Верни только значение.\nТекст: ${text}`);
}

Сохраните API-ключ в свойствах скрипта: «Настройки проекта → Свойства скрипта → OPENAI_KEY». После этого функции доступны как обычные формулы: =GPT("Переведи: " & A2).

Способ 3: Python-скрипт с gspread

Для массовой обработки данных эффективнее забрать данные из Google Sheets через API, обработать локально и записать результат обратно. Библиотека gspread делает это просто:

import gspread
from openai import OpenAI

# Авторизация через сервисный аккаунт
gc = gspread.service_account(filename="credentials.json")
sh = gc.open("Данные для обработки")
ws = sh.sheet1

client = OpenAI()
rows = ws.get_all_records()

for i, row in enumerate(rows, start=2):
    if row.get("Результат"):  # Пропускаем обработанные
        continue
    
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": f"Кратко опиши продукт: {row['Название']}"}],
        max_tokens=100
    )
    result = response.choices[0].message.content
    ws.update_cell(i, 4, result)  # Записываем в колонку D

Этот подход обрабатывает тысячи строк быстрее, чем формулы в таблице, и позволяет использовать локальные модели вместо облачного API.

Практические кейсы

Обработка отзывов. Загрузите отзывы клиентов в колонку A. В колонке B формула классифицирует тональность, в колонке C — извлекает ключевые жалобы, в колонке D — генерирует шаблон ответа. Один API-запрос стоит доли цента, обработка 500 отзывов обойдётся в $1–2.

Генерация SEO-описаний. Для интернет-магазина: колонка A — название товара, B — характеристики, C — формула =GPT("Напиши SEO-описание товара в 2 предложения: " & A2 & ". Характеристики: " & B2). За час — описания для сотен позиций.

Парсинг неструктурированных данных. Адреса, телефоны, имена из свободного текста. Формула =EXTRACT_DATA(A2, "номер телефона") вытаскивает нужное поле из произвольного текста с точностью 90–95%.

Контроль расходов

Каждый вызов функции — это API-запрос. На таблице из 10 000 строк расходы могут быстро вырасти. Рекомендации:

Используйте gpt-4o-mini вместо gpt-4o — разница в цене 15x при сопоставимом качестве для задач классификации и извлечения. Ограничьте max_tokens — для классификации достаточно 10–20 токенов. Кэшируйте результаты — копируйте столбец с формулами в значения после обработки, чтобы не вызывать API повторно при каждом пересчёте таблицы.

Подробнее о выборе модели под задачу — в нашем руководстве по выбору LLM.

Ограничения

Apps Script имеет лимит в 6 минут на выполнение скрипта и 20 000 вызовов UrlFetch в сутки. Для больших объёмов используйте Python-скрипт или триггеры с распределением нагрузки. Не отправляйте в API персональные данные (ФИО, паспортные данные, медицинские записи) — это нарушает политику обработки данных большинства провайдеров.

GPT + Google Sheets: сценарии автоматизации

Интеграция ChatGPT/Claude с Google Sheets открывает мощные возможности: массовая обработка данных, генерация текстов для каждой строки, категоризация, перевод, SEO-оптимизация без ручного труда. Три основных способа подключения: Apps Script, Zapier/Make, прямой API через формулу.

Способ 1: Google Apps Script + OpenAI API

Самый гибкий способ — написать скрипт в Apps Script (JavaScript) который вызывает OpenAI API: Tools → Apps Script → вставить код → запустить. Скрипт может обрабатывать весь столбец за раз.

function callGPT(prompt) {
  const apiKey = 'sk-...';
  const payload = {
    model: 'gpt-4o-mini',
    messages: [{role: 'user', content: prompt}],
    max_tokens: 500
  };
  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: {'Authorization': 'Bearer ' + apiKey},
    payload: JSON.stringify(payload)
  };
  const response = UrlFetchApp.fetch('https://api.openai.com/v1/chat/completions', options);
  const data = JSON.parse(response.getContentText());
  return data.choices[0].message.content;
}

// Обработка всего столбца A -> результат в столбец B
function processColumn() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const data = sheet.getRange('A2:A100').getValues();
  data.forEach((row, i) => {
    if (row[0]) {
      const result = callGPT('Категоризируй: ' + row[0]);
      sheet.getRange(i + 2, 2).setValue(result);
      Utilities.sleep(500); // rate limit
    }
  });
}

Способ 2: GPT for Sheets (надстройка)

Надстройка GPT for Sheets and Docs добавляет формулу =GPT(prompt, cell) прямо в таблицу. Установка: Extensions → Add-ons → Get add-ons → поиск 'GPT for Sheets'. Бесплатный план: 100 вызовов/день. Удобно для нетехнических пользователей без кода.

Практические применения

ЗадачаПромптРезультат
Мета-описание для SEO'Напиши meta description 160 знаков для: ' + A2Готовый тег
Категоризация товаров'Определи категорию: ' + A2 + '. Только одно слово.'Категория
Тональность отзывов'Тональность (positiv/negativ/neutral): ' + A2Метка
Перевод'Переведи на русский: ' + A2Перевод
Извлечение email из текста'Найди email в тексте. Только email: ' + A2Email или пусто

Стоимость и оптимизация

GPT-4o mini — оптимальный выбор для таблиц: $0.15/1M входящих токенов. 1 000 строк с кратким промптом = ~$0.05–0.15. Для больших объёмов используйте Batch API OpenAI: 50% скидка, асинхронная обработка до 10 000 строк одним запросом.


Читайте также