Нейросети для онлайн-таблиц. Как их подключить к популярным табличным редакторам

Таблицы - это повседневный инструмент любого SEO-специалиста, маркетолога, бухгалтера, фаундера или проджекта. В какой-то момент я понял, что трачу на эту рутину больше сил, чем на стратегию и аналитику. Но, учитывая то, что мы живём бок о бок с новым трендом, который называется “нейросеть” - я решил отдать все повторяющиеся задачи ИИ прямо внутри табличек.

Нейросети для онлайн-таблиц. Как их подключить к популярным табличным редакторам

Какие варианты есть у Google-таблиц?

Давайте коротко про то, зачем нам вообще нейросети в таблицах. Я использую их под любые задачи, где нужно много однотипного текста и логики: генерировать заголовки и описания по списку, очищать и размечать данные, группировать строки по смыслу, находить дубли, превращать длинные тексты в короткие выжимки, собирать черновые ТЗ, переводить и переформулировать записи, помогать с формулами и подсказками по структуре.

Вариант 1. Свой кастомный скрипт

Разберу на своём примере. Последние пару лет большую часть SEO‑рутины я делал через Google Таблицы + ChatGPT.Схема была такая:

  • в таблицу падала, допустим, семантика;
  • в Apps Script я вставлял код, который был навайбкоден мной в Chat GPT. По схеме - код обращался к API Chat GPT с заданным промтом и связкой с ячейкой под исходные данные через кастомную формулу в ячейке, где нужно вывести результат. Например, в ячейке A2 у нас ключевой запрос, а в ячейку B2 мы просим сгенерировать коммерческое описание с использованием данного ключа.
Скриншот 1. Пример кастомного скрипта Apps Script для интеграции API Chat GPT 
Скриншот 1. Пример кастомного скрипта Apps Script для интеграции API Chat GPT 
  • постепенно вокруг этого вырастали микросервисы, обёртки над API, отдельные боты.

Скриншот 2. И примерно так оно выглядело. Работаем непосредственно с Chat GPT. Любой промт, любая задача, но - это костыль. Разработка софта в софте, получается. 
Скриншот 2. И примерно так оно выглядело. Работаем непосредственно с Chat GPT. Любой промт, любая задача, но - это костыль. Разработка софта в софте, получается. 

Вариант 2. Готовые приложения

По сути, это тот же вариант 1, но уже кем-то разработан. Ориентируемся на показатели рейтинга и количества скачиванией. Полностью бесплатных вариантов нет и, скорее всего, вам предложат либо вставить свой API ключ от Open AI, либо купить местные лимиты.

Скриншот 3. Да, есть уже готовые приложения с интеграциями. Имеет место быть, но ниже я расскажу, почему от них отказался. 
Скриншот 3. Да, есть уже готовые приложения с интеграциями. Имеет место быть, но ниже я расскажу, почему от них отказался. 

Почему мне не зашли готовые приложения?

  1. Почти все аддоны живут на своём API: сначала “бесплатно до N запросов”, потом - покупка токенов, подписки, своя учётка, свой биллинг. И вот это меня побудило к тому, чтобы сделать приложуху под себя.
  2. Сегодня аддон работает, завтра автор поднял цены, сменил модель или просто забросил проект. Ты привязываешь рабочие процессы и десятки таблиц к коду, на который вообще не влияешь. Был у меня такой кейс. Просто снесли из магазина и всё тут.
  3. Чтобы коллеги могли воспроизвести твой процесс, каждому нужно установить аддон, выдать ему доступы, объяснить, где в интерфейсе искать нужные кнопки. Собственно, этот момент отлично решал Apps Script. Авторизовался в Гугл акке и всё.
  4. Часть аддонов шлёт данные не напрямую в модель, а через свои сервера. Для личных пет-проектов это терпимо, но таскать так клиентские отчёты, коммерческие данные и внутреннюю аналитику - не самая здравая идея.
  5. Обновился аддон, поменялся интерфейс, разработчик перешёл на другую модель - всё, твоя инструкция “нажми тут, потом тут” устарела.

Примечание: И вот это реально боль по пятому пункту. Пользовался прилажухой. Раньше, если нейросеть отдавала ответ в ячейку - он таким и оставался навсегда, пока сам не перегенеришь конкретно её. То после обновления, авторы ввели обновление функционала и результат нужно было биндить отдельной кнопкой. Иначе - обновил окошко с таблицей = отправил всё на перегенерацию заново. 20 000 ячеек, ребята. 20 000!

Как сделать своё приложение в Google-таблицах?

Давайте разложим это так, чтобы по статье можно было пройтись по шагам и реально поднять эту штуку с нуля.

Google Apps Script - это JS-движок, который крутится на стороне Google и умеет управлять их сервисами: Таблицами, Почтой, Диском и т.д.По сути это бэкенд для твоей гугл-таблицы: ты пишешь код, а он:

  • добавляет кастомные функции (=GPT(...)),
  • рисует боковые панели/меню,
  • ходит во внешние API (в нашем случае - OpenAI).

Твоё приложение - это как раз связка:

  • код в Apps Script (файл .gs),
  • HTML-файл для боковой панели,
  • и сама таблица, где всё вызывается формулами.

Логика работы

  1. Открываешь Таблицу → пишешь формулу =GPT("придумай тайтл по этим двум ключам"; A2; B2).
  2. Таблица вызывает функцию GPT в Apps Script.
  3. GPT:
  • берёт API-ключ из настроек,
  • собирает текст запроса,
  • шлёт его в ChatGPT через HTTP-запрос,
  • получает ответ,
  • записывает ответ в ячейку,
  • логирует, сколько токенов ушло.
  1. Боковая панель:
  • даёт ввести/сохранить ключ и лимит токенов,
  • показывает счётчик токенов и денег,
  • по кнопке «Сохранить как текст» пробегается по листу и заменяет =GPT(...) на уже готовый текст.

Итак, как сделать такую штуку?

Способ 1. Самостоятельно, с помощью Chat GPT. Примерно вот по такому промту:

Ты — эксперт по Google Apps Script и Google Sheets. Нужно сгенерировать полностью рабочий пример интеграции OpenAI Chat Completions API в Google Таблицы. Сделай один файл `Code.gs` и один файл `Sidebar.html`. Весь ответ — только код этих двух файлов + короткая инструкция по развёртыванию. ЛОГИКА РАБОТЫ (кратко): 1. **Пользовательская функция в Таблицах** - Добавь функцию `=GPT(prompt; cell1; cell2)` (учти, что разделитель может быть `;` или `,`). - Функция: - читает API-ключ и max tokens из `PropertiesService.getUserProperties()`; - если ключ не задан — выбрасывает понятную ошибку с текстом «Открой меню ChatGPT → Настройки и сохрани API-ключ»; - превращает `prompt`, `cell1`, `cell2` в один короткий текст-промпт (минимум служебных слов, просто склейка непустых частей с переводом строки); - делает POST-запрос к `https://api.openai.com/v1/chat/completions` в актуальном формате: `model`, `messages` (system+user), `max_tokens`, и т.п.; используй модель уровня GPT-4, например `gpt-4o`; - парсит ответ, возвращает `choices[0].message.content` как строку; - если есть `usage.total_tokens`, передаёт это число в учёт токенов. 2. **Учёт токенов и настройки (в `Code.gs`)** - Храни в `UserProperties`: - `CHATGPT_API_KEY` - `CHATGPT_MAX_TOKENS` - суммарные токены и суммарную стоимость. - Логика учёта токенов: - при каждом ответе добавляй `usage.total_tokens` к общему числу; - примерно считай стоимость по формуле: `cost = tokens / 1000 * 0.03` (0.03 USD за 1000 токенов; в комментарии напиши, что цену можно менять вручную); - сохраняй обновлённые значения в `UserProperties`; - сделай функцию, которая возвращает объект `{ tokensUsed: ..., cost: ... }`. - Логика настроек: - при чтении настроек, если `CHATGPT_MAX_TOKENS` не задано, используй значение по умолчанию 100; - сделай функцию сохранения настроек (API-ключ + max tokens) в `UserProperties`; - сделай функцию очистки счётчиков токенов и стоимости. 3. **Sidebar (`Sidebar.html`)** - Минимальный аккуратный интерфейс без внешних библиотек: - заголовок «ChatGPT API»; - поле ввода API-ключа; - поле ввода максимального числа токенов; - кнопка «Сохранить настройки» (вызывает `saveChatGPTSettings(apiKey, maxTokens)` через `google.script.run`); - кнопка «Сохранить как текст» (вызывает `convertFormulasToText`); - блок «Информация о токенах»: текстовые поля с количеством потраченных токенов и примерной стоимостью; - кнопка «Сбросить данные» (вызывает `clearTokenUsage`); - блок с краткой инструкцией и примером формулы `=GPT("Придумай коммерческий тайтл по этим двум ключам"; A2; B2)`. - В `<script>`: - при загрузке панели вызови `google.script.run.withSuccessHandler(...) .getTokenUsage()` и отобрази токены/стоимость; - по клику на «Сохранить настройки» вызывай `saveChatGPTSettings` и показывай alert/сообщение об успехе; - по клику на «Сохранить как текст» вызывай `convertFormulasToText`; - по клику на «Сбросить данные» вызывай `clearTokenUsage` и после успеха обновляй блок токенов; - сделай автообновление информации о токенах через `setInterval(...)` раз в несколько секунд. - Используй простой встроенный `<style>` (шрифт, отступы, кнопки). 4. **Интеграция с интерфейсом Таблиц (в `Code.gs`)** - При открытии файла (`onOpen`) добавь меню `ChatGPT` с пунктом `Настройки`, который вызывает `showSidebar()`. - `showSidebar()`: - создаёт `HtmlOutput` из `Sidebar.html`; - задаёт заголовок и ширину; - показывает через `SpreadsheetApp.getUi().showSidebar(html)`. - `convertFormulasToText()`: - берёт активный лист, `getDataRange()`; - читает формулы и значения; - если формула начинается с `=GPT` / `=GPT(` (без учёта регистра), заменяет её на текущее значение; - записывает обновлённый диапазон обратно (значения вместо формул). 5. **Структура ответа** - Сначала выведи полный код `Code.gs` (одним блоком). - Затем — полный код `Sidebar.html` (одним блоком). - В конце — короткую пошаговую инструкцию по развёртыванию: 1) открыть Таблицу → «Расширения» → «Apps Script»; 2) вставить код в `Code.gs`; 3) создать `Sidebar.html` и вставить HTML; 4) сохранить проект; 5) один раз запустить `onOpen` для выдачи прав; 6) обновить Таблицу, открыть меню `ChatGPT → Настройки`; 7) ввести API-ключ и max tokens, сохранить; 8) пример формулы `=GPT("Придумай коммерческий тайтл по этим двум ключам"; A2; B2)`; 9) кнопка «Сохранить как текст» заменяет формулы на текст; 10) коротко объясни, где взять API-ключ (https://platform.openai.com → API keys, secret key нельзя публиковать).

После чего некоторое время вайбкодить под себя.

Либо, способ 2. Просто скопировать и вставить.

Шаг 1. Создаешь проект в Apps Script

  1. Открываешь нужную Google Таблицу.
  2. Расширения → Apps Script.
  3. В открывшемся редакторе удаляешь шаблонную функцию myFunction().

Шаг 2. Вставляешь JS-код

В файл Code.gs (или как он там сейчас называется) вставляешь весь твой JS:

// Пользовательская функция для вызова ChatGPT через формулу function GPT(prompt, cell1, cell2) { const settings = getChatGPTSettings(); // Получаем настройки (API Key и токены) const apiKey = settings.apiKey; const maxTokens = parseInt(settings.maxTokens, 10); if (!apiKey) { throw new Error("API Key не установлен. Откройте боковую панель для настройки."); } // Формируем полный запрос const fullPrompt = `${prompt}: ${cell1} и ${cell2}`; const url = "https://api.openai.com/v1/chat/completions"; const payload = { model: "gpt-4", messages: [{ role: "user", content: fullPrompt }], max_tokens: maxTokens, }; const options = { method: "post", contentType: "application/json", headers: { Authorization: `Bearer ${apiKey}` }, payload: JSON.stringify(payload), }; const response = UrlFetchApp.fetch(url, options); const json = JSON.parse(response.getContentText()); if (json.usage && json.usage.total_tokens) { updateTokenUsage(json.usage.total_tokens); // Обновляем токены } else { Logger.log("Информация о токенах отсутствует в ответе API."); } return json.choices[0].message.content.trim(); } // Обновляем подсчёт токенов и стоимость function updateTokenUsage(tokensUsed) { const properties = PropertiesService.getUserProperties(); const previousTokens = parseInt(properties.getProperty("TOKENS_USED") || 0, 10); const totalTokens = previousTokens + tokensUsed; // Сохраняем общее количество токенов properties.setProperty("TOKENS_USED", totalTokens); // Стоимость: GPT-4 = $0.03 за 1000 токенов const cost = (totalTokens * 0.03) / 1000; properties.setProperty("COST_USED", cost.toFixed(2)); } // Получаем текущие токены и стоимость function getTokenUsage() { const properties = PropertiesService.getUserProperties(); return { tokensUsed: parseInt(properties.getProperty("TOKENS_USED") || 0), cost: parseFloat(properties.getProperty("COST_USED") || 0).toFixed(2), }; } // Получаем настройки function getChatGPTSettings() { const properties = PropertiesService.getUserProperties(); return { apiKey: properties.getProperty("CHATGPT_API_KEY"), maxTokens: properties.getProperty("CHATGPT_MAX_TOKENS") || 100, }; } // Сохраняем настройки function saveChatGPTSettings(apiKey, maxTokens) { const properties = PropertiesService.getUserProperties(); properties.setProperty("CHATGPT_API_KEY", apiKey); properties.setProperty("CHATGPT_MAX_TOKENS", maxTokens); } // Сбрасываем токены и стоимость function clearTokenUsage() { const properties = PropertiesService.getUserProperties(); properties.deleteProperty("TOKENS_USED"); properties.deleteProperty("COST_USED"); } // Показываем боковую панель function showSidebar() { const html = HtmlService.createHtmlOutputFromFile("Sidebar").setTitle("ChatGPT Settings").setWidth(300); SpreadsheetApp.getUi().showSidebar(html); } // Добавляем меню в Google Таблицы function onOpen() { const ui = SpreadsheetApp.getUi(); ui.createMenu("ChatGPT") .addItem("Настройки", "showSidebar") .addToUi(); } // Заменяет формулы GPT на текст в таблице function convertFormulasToText() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const range = sheet.getDataRange(); const formulas = range.getFormulas(); // Получаем формулы const values = range.getValues(); // Получаем текущие значения for (let i = 0; i < formulas.length; i++) { for (let j = 0; j < formulas[i].length; j++) { if (formulas[i][j].startsWith("=GPT")) { // Если формула содержит GPT, заменяем её на текст formulas[i][j] = values[i][j]; } } } range.setValues(values); // Устанавливаем значения вместо формул }

Шаг 3. Создаешь HTML для боковой панели

  1. В Apps Script: Файл → Создать → HTML.
  2. Называешь файл Sidebar (важно, чтобы имя совпадало с HtmlService.createHtmlOutputFromFile("Sidebar") в коде).
  3. Вставляешь туда весь твой HTML (разметка + <script>):
<!DOCTYPE html> <html> <head> <title>ChatGPT API</title> <style> body { font-family: Arial, sans-serif; padding: 10px; text-align: center; } img { max-width: 150px; /* Ограничиваем ширину логотипа */ height: auto; /* Сохраняем пропорции */ margin-bottom: 20px; /* Отступ снизу */ } input, button { margin-bottom: 10px; width: 100%; padding: 8px; } label { margin-bottom: 5px; display: block; } h3 { margin-top: 0; } .instructions { text-align: left; /* Выравниваем текст инструкции */ margin-top: 20px; /* Отступ сверху */ font-size: 14px; /* Размер шрифта инструкции */ } .examples { background-color: #f9f9f9; /* Светло-серый фон для примеров */ padding: 10px; border-radius: 5px; border: 1px solid #ddd; margin-top: 10px; } </style> </head> <body> <!-- Заголовок --> <h3>Настройки API</h3> <!-- Настройки API --> <label for="apiKey">API Key:</label> <input type="text" id="apiKey" placeholder="Введите API ключ"> <label for="maxTokens">Максимум токенов:</label> <input type="number" id="maxTokens" value="100"> <button onclick="saveSettings()">Сохранить настройки</button> <button onclick="saveResultsAsText()">Сохранить как текст</button> <hr> <!-- Информация о токенах --> <h4>Информация о токенах</h4> <div id="tokenInfo"> <p>Токены: загружается...</p> <p>Стоимость: загружается...</p> </div> <button onclick="clearUsage()">Сбросить данные</button> <!-- Инструкция --> <div class="instructions"> <h4>Как пользоваться:</h4> <p>Используйте функцию <b>=GPT</b> в Google Таблицах для отправки запросов в ChatGPT API. Примеры:</p> <div class="examples"> <p><b>=GPT("Что общего между"; A1; B1)</b><br>Сравнивает данные из ячеек A1 и B1.</p> <p><b>=GPT("Кто такой Пастернак")</b><br>Отправляет общий запрос без ссылок на ячейки.</p> </div> <h4>Как сохранить результаты как текст:</h4> <p>Нажмите кнопку <b>"Сохранить как текст"</b>, чтобы заменить формулы с GPT на их текущие результаты. Это полезно для предотвращения повторного запроса при обновлении таблицы.</p> <h4>Как сбросить данные:</h4> <p>Нажмите <b>"Сбросить данные"</b>, чтобы обнулить количество использованных токенов и стоимость запросов.</p> </div> <script> // Сохраняем настройки function saveSettings() { const apiKey = document.getElementById('apiKey').value; const maxTokens = document.getElementById('maxTokens').value; google.script.run.saveChatGPTSettings(apiKey, maxTokens); alert('Настройки сохранены!'); } // Сохраняем результаты как текст function saveResultsAsText() { google.script.run.convertFormulasToText(); alert('Все формулы GPT заменены на текст!'); } // Загружаем токены и стоимость при загрузке панели google.script.run.withSuccessHandler(updateTokenInfo).getTokenUsage(); function updateTokenInfo(usage) { document.getElementById('tokenInfo').innerHTML = ` <p>Токены: ${usage.tokensUsed}</p> <p>Стоимость: ${usage.cost}</p> `; } // Сбрасываем токены и стоимость function clearUsage() { google.script.run.clearTokenUsage(); document.getElementById('tokenInfo').innerHTML = ` <p>Токены: 0</p> <p>Стоимость: $0.00</p> `; alert('Данные сброшены!'); } // Автоматическое обновление токенов каждые 5 секунд setInterval(() => { google.script.run.withSuccessHandler(updateTokenInfo).getTokenUsage(); }, 5000); // Обновление каждые 5 секунд </script> </body> </html>
И получите что-то вот такое. 
И получите что-то вот такое. 

Далее:

  1. В редакторе Apps Script сверху выбираешь функцию onOpen и жмёшь Run / Выполнить.
  2. Google попросит разрешения: выбираешь свой аккаунт, подтверждаешь доступ к Таблицам и внешним запросам (UrlFetch).
  3. Возвращаешься в саму таблицу и обновляешь страницу (F5).

После этого в верхнем меню появится новый пункт “ChatGPT” с пунктом “Настройки” - он открывает твою боковую панель showSidebar().

Как получить API-ключ ChatGPT

  1. Заходишь на платформу: platform.openai.com.
  2. Регистрируешься или логинишься.
  3. В левом меню - раздел API Keys.
  4. Нажимаешь Create new secret key.
  5. Даёшь ключу понятное имя (например, sheets-gpt), сохраняешь показанную строку - больше она не появится.
  6. Этот ключ вставляешь в поле API Key в боковой панели в таблице.

И всё, дальше в нужную тебе ячейку вставляешь что-то типа: =GPT("Придумай коммерческий тайтл по этим двум ключам"; A2; B2)

Яндекс Таблицы, как альтернатива

Наше обязательное условие - чтобы всё работало привычным образом. Для своих задач я давно использую Google Таблицы, поэтому большинство примеров в статье показываю именно на этом редакторе.

Недавно я обратил внимание, что в редакторе Таблиц от Яндекс 360 уже есть встроенная ИИ-функция, которую можно вызывать прямо из формулы в ячейке. По логике работы сами таблицы во многом похожи на Google Таблицы, поэтому часть сценариев, которые раньше приходилось закрывать через скрипты и отдельные сервисы, можно перенести туда и упростить настройку.

Примечание: Если вы обратите внимание на “Скриншот 2”, то там мне пришлось выводить дополнительно еще и подсчет стоимости токенов во время работы, чтобы не сжечь все лимиты. Это дополнительный пункт, за которым приходится следить

Как выглядит правильный формат функции

По сути, ИИ в Таблицах - это обычная формула. Базовый шаблон такой:

=АЛИСАПРО("что нужно сделать"; A2)

У функции есть два типа аргументов:

  1. Промпт - первая часть, всегда в кавычках. Это текстовое задание для ИИ: что именно он должен сделать.
  2. Диапазон с данными - вторая часть (и дальше, если нужно), ссылка на ячейку или диапазон, с которым он работает: A2, A2:C10, $A$2:$A$100 и т. д.

Разделитель аргументов - ;

Ниже пример 10 практических сценариев.

Массово генерирую коммерческие тайтлы

Есть список запросов, тип страниц и регион. Нужно получить заголовки для мета‑title.

Формула:

=АЛИСАПРО("Сделай SEO-Title для коммерческой страницы под запрос " & A2 & " в регионе " & B2 & ". Требования: до 60 символов, деловой стиль, без кликбейта и капса."; A2:B2)
Скриншот 4. Пример - вставляем формулу в ячейку C2 и тянем вниз 
Скриншот 4. Пример - вставляем формулу в ячейку C2 и тянем вниз 
Скриншот 5. И получаем вот такой результат.
Скриншот 5. И получаем вот такой результат.

Массовая генерация коммерческих Description

По тем же полям генерирует SEO-description до ~150 символов.

Формула:

=АЛИСАПРО("Напиши SEO-Description для коммерческой страницы. Запрос: " & A2 & " в регионе " & B2 & ". Требования: до 150 символов, без прямых призывов, укажи выгоду и факт доверия, нейтральный тон."; A2:B2)

H1 и slug (ЧПУ)

Из названий категорий/товаров делает H1 и ЧПУ.

Формула H1:

=АЛИСАПРО("Придумай H1 для страницы каталога под запрос " & A2 & ". До 60 символов, деловой стиль, можно слегка перефразировать."; A2)

Формула slug:

=АЛИСАПРО("Сделай URL-slug для категории: " & A2 & ". Требования: транслитерация на латиницу, пробелы замени на дефис, только латинские буквы, цифры и дефисы, всё в нижнем регистре."; A2

Кластеризация запросов по разделам

Определяет, к какому разделу отнести запрос: услуги, блог, FAQ, отзывы и т. д.

Формула:

=АЛИСАПРО("Определи, к какому разделу сайта логичнее всего отнести запрос: " & A2 & ". Варианты разделов: курсы, блог, цены, FAQ, отзывы, о школе, контакты. Верни только одно слово - название раздела."; A2)

Определение интента

Ставит маркировку: коммерческий / информационный / навигационный.

Формула:

=АЛИСАПРО("Определи тип поискового интента запроса " & A2 & ". Варианты: коммерческий, информационный, навигационный. Верни только одно слово."; A2)

Чистка семантики

Классифицирует запросы: стоп-слова, брендовые, нормальные.

Формула:

=АЛИСАПРО("Классифицируй запрос " & A2 & ". Категории: СТОП - если это спам, шутка, нерелевантная тема; БРЕНД - если явно упомянут конкретный сервис каршеринга или компания; ОК - всё остальное. Верни только одно слово: СТОП, БРЕНД или ОК."; A2)

Поиск семантических дублей

Смотрит на все запросы и решает, является ли текущий по смыслу дублем других.

Формула:

=АЛИСАПРО("Проверь, есть ли в этом списке запросов семантические дубли для фразы: " & A2 & ". Под дублями понимаются запросы с тем же смыслом, но другими формулировками. Если есть хотя бы один такой запрос, верни 'ДУБЛЬ', если нет - 'ОК'."; A2; $A$2:$A$21)

Анализ структуры конкурента по URL

Извлекает первый каталог после домена (blog, catalog, sale и т. п.), главную возвращает пустой.

Формула:

=АЛИСАПРО("Извлеки из URL первый каталог после домена. Если это главная страница без каталога, верни пусто. Пример: из https://site.ru/blog/post верни blog."; A2)

Генерация ТЗ для копирайтера по кластерам

Берет кластер ключей и выдаёт структурированное ТЗ на текст.

Формула:

=АЛИСАПРО("Составь краткое техническое задание для копирайтера на SEO-текст для коммерческой страницы. Используй эти запросы как семантику: " & A2 & ". В ТЗ укажи цель текста, основной запрос, дополнительные запросы, примерную структуру (H1, H2), объём в знаках и требования к тону. Верни ответ структурированным списком."; A2)

Краткие выжимки из длинных текстов

Берет текст (отзыв, описание услуги, кусок статьи) и делает короткий деловой конспект.

Формула:

=АЛИСАПРО("Сделай краткое деловое описание этого текста объёмом 2–3 предложения. Это превью для сайта или сниппета, без кликбейта и призывов к действию."; A2)

Вместо выводов

По себе вижу: нейросети в табличных редакторах уже сэкономили мне десятки часов на рутине и однотипных операциях с текстом. Там, где раньше нужны были скрипты, отдельные сервисы и бесконечный копипаст, сейчас хватает одной формулы в ячейке. Поэтому любую новую задачу в таблице я сначала пробую решать через ИИ, а к ручной работе возвращаюсь только если совсем не получается. Очень надеюсь, что материал был для вас полезен.

Как встроить ИИ в рабочий процесс, крутые промпты и кейсы - подписывайтесь на мой ТГ-канал

3
3
1
Начать дискуссию
\n \n","lang":""}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"И получите что-то вот такое. ","image":{"type":"image","data":{"uuid":"fc05e55d-e234-5155-956b-f46c6e31f2d7","width":1051,"height":394,"size":96123,"type":"png","color":"f9f9f9","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAgMFCf/EAB4QAAEFAQADAQAAAAAAAAAAAAECAwQRIQAiJGGS/8QAFwEBAQEBAAAAAAAAAAAAAAAAAgMAAf/EABoRAAMAAwEAAAAAAAAAAAAAAAABEQIDIVH/2gAMAwEAAhEDEQA/ANKX5UlDzjTEFCkpNjzAv7vJpIKbY9MshIBaSDWixnc4KZeEafIfRMeCHnE0cpRFaOWzkhtfbQjLlWfZd/Z6VZSI/9k="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Далее:

"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["В редакторе Apps Script сверху выбираешь функцию onOpen и жмёшь Run / Выполнить.","Google попросит разрешения: выбираешь свой аккаунт, подтверждаешь доступ к Таблицам и внешним запросам (UrlFetch).","Возвращаешься в саму таблицу и обновляешь страницу (F5)."],"type":"OL"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

После этого в верхнем меню появится новый пункт “ChatGPT” с пунктом “Настройки” - он открывает твою боковую панель showSidebar().

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Как получить API-ключ ChatGPT"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["Заходишь на платформу: platform.openai.com.","Регистрируешься или логинишься.","В левом меню - раздел API Keys.","Нажимаешь Create new secret key.","Даёшь ключу понятное имя (например, sheets-gpt), сохраняешь показанную строку - больше она не появится.","Этот ключ вставляешь в поле API Key в боковой панели в таблице."],"type":"OL"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

И всё, дальше в нужную тебе ячейку вставляешь что-то типа: =GPT(\"Придумай коммерческий тайтл по этим двум ключам\"; A2; B2)

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Яндекс Таблицы, как альтернатива"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Наше обязательное условие - чтобы всё работало привычным образом. Для своих задач я давно использую Google Таблицы, поэтому большинство примеров в статье показываю именно на этом редакторе.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Недавно я обратил внимание, что в редакторе Таблиц от Яндекс 360 уже есть встроенная ИИ-функция, которую можно вызывать прямо из формулы в ячейке. По логике работы сами таблицы во многом похожи на Google Таблицы, поэтому часть сценариев, которые раньше приходилось закрывать через скрипты и отдельные сервисы, можно перенести туда и упростить настройку.

"}},{"type":"quote","cover":false,"hidden":false,"anchor":"","data":{"text":"

Примечание: Если вы обратите внимание на “Скриншот 2”, то там мне пришлось выводить дополнительно еще и подсчет стоимости токенов во время работы, чтобы не сжечь все лимиты. Это дополнительный пункт, за которым приходится следить

","subline1":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Как выглядит правильный формат функции"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

По сути, ИИ в Таблицах - это обычная формула. Базовый шаблон такой:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"что нужно сделать\"; A2)","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

У функции есть два типа аргументов:

"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["Промпт - первая часть, всегда в кавычках. Это текстовое задание для ИИ: что именно он должен сделать.","Диапазон с данными - вторая часть (и дальше, если нужно), ссылка на ячейку или диапазон, с которым он работает: A2, A2:C10, $A$2:$A$100 и т. д."],"type":"OL"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Разделитель аргументов - ;

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Ниже пример 10 практических сценариев.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Массово генерирую коммерческие тайтлы"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Есть список запросов, тип страниц и регион. Нужно получить заголовки для мета‑title.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Сделай SEO-Title для коммерческой страницы под запрос \" & A2 & \" в регионе \" & B2 & \". Требования: до 60 символов, деловой стиль, без кликбейта и капса.\"; A2:B2)","lang":""}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Скриншот 4. Пример - вставляем формулу в ячейку C2 и тянем вниз ","image":{"type":"image","data":{"uuid":"8a9028bb-04d5-51ef-a5b3-4a1fc3c4cf08","width":994,"height":365,"size":393554,"type":"png","color":"eee7dd","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAgQJ/8QAJRAAAAMECwAAAAAAAAAAAAAAAAERAgMFEgQTFSExQVFjccLS/8QAFwEAAwEAAAAAAAAAAAAAAAAAAQIEA//EABwRAAICAgMAAAAAAAAAAAAAAAABAlEEExUxQf/aAAwDAQACEQMRAD8A0WdUWOmtZHzPSVwnYTblRW8CC9HJGCutdU2j9Ab1Q3HwssYz4GCLpBPEB9jI/9k="}}}]}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Скриншот 5. И получаем вот такой результат.","image":{"type":"image","data":{"uuid":"d1e1ead1-7012-580a-bc47-3756a9901628","width":995,"height":536,"size":80956,"type":"png","color":"4b4f58","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABgcJ/8QAJhAAAQIFAAsAAAAAAAAAAAAAAQIDAAQFESEGFBYiMTJBUVaU4v/EABcBAAMBAAAAAAAAAAAAAAAAAAABAgP/xAAaEQEAAgMBAAAAAAAAAAAAAAAAAQIRE1Ex/9oADAMBAAIRAxEAPwDQeQerD9WEinSJtDLlglzVybkgY5+8GK8Z64KNm6t5Iv1/qDFeDXUToma6wDkBTdr9N0QoVX2VNHCGp//Z"}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Массовая генерация коммерческих Description"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

По тем же полям генерирует SEO-description до ~150 символов.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Напиши SEO-Description для коммерческой страницы. Запрос: \" & A2 & \" в регионе \" & B2 & \". Требования: до 150 символов, без прямых призывов, укажи выгоду и факт доверия, нейтральный тон.\"; A2:B2)","lang":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"H1 и slug (ЧПУ)"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Из названий категорий/товаров делает H1 и ЧПУ.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула H1:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Придумай H1 для страницы каталога под запрос \" & A2 & \". До 60 символов, деловой стиль, можно слегка перефразировать.\"; A2)","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула slug:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Сделай URL-slug для категории: \" & A2 & \". Требования: транслитерация на латиницу, пробелы замени на дефис, только латинские буквы, цифры и дефисы, всё в нижнем регистре.\"; A2","lang":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Кластеризация запросов по разделам"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Определяет, к какому разделу отнести запрос: услуги, блог, FAQ, отзывы и т. д.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Определи, к какому разделу сайта логичнее всего отнести запрос: \" & A2 & \". Варианты разделов: курсы, блог, цены, FAQ, отзывы, о школе, контакты. Верни только одно слово - название раздела.\"; A2)","lang":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Определение интента"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Ставит маркировку: коммерческий / информационный / навигационный.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Определи тип поискового интента запроса \" & A2 & \". Варианты: коммерческий, информационный, навигационный. Верни только одно слово.\"; A2)","lang":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Чистка семантики"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Классифицирует запросы: стоп-слова, брендовые, нормальные.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Классифицируй запрос \" & A2 & \". Категории: СТОП - если это спам, шутка, нерелевантная тема; БРЕНД - если явно упомянут конкретный сервис каршеринга или компания; ОК - всё остальное. Верни только одно слово: СТОП, БРЕНД или ОК.\"; A2)","lang":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Поиск семантических дублей"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Смотрит на все запросы и решает, является ли текущий по смыслу дублем других.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Проверь, есть ли в этом списке запросов семантические дубли для фразы: \" & A2 & \". Под дублями понимаются запросы с тем же смыслом, но другими формулировками. Если есть хотя бы один такой запрос, верни 'ДУБЛЬ', если нет - 'ОК'.\"; A2; $A$2:$A$21)","lang":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Анализ структуры конкурента по URL"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Извлекает первый каталог после домена (blog, catalog, sale и т. п.), главную возвращает пустой.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Извлеки из URL первый каталог после домена. Если это главная страница без каталога, верни пусто. Пример: из https://site.ru/blog/post верни blog.\"; A2)","lang":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Генерация ТЗ для копирайтера по кластерам"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Берет кластер ключей и выдаёт структурированное ТЗ на текст.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Составь краткое техническое задание для копирайтера на SEO-текст для коммерческой страницы. Используй эти запросы как семантику: \" & A2 & \". В ТЗ укажи цель текста, основной запрос, дополнительные запросы, примерную структуру (H1, H2), объём в знаках и требования к тону. Верни ответ структурированным списком.\"; A2)","lang":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Краткие выжимки из длинных текстов"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Берет текст (отзыв, описание услуги, кусок статьи) и делает короткий деловой конспект.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Формула:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"=АЛИСАПРО(\"Сделай краткое деловое описание этого текста объёмом 2–3 предложения. Это превью для сайта или сниппета, без кликбейта и призывов к действию.\"; A2)","lang":""}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Вместо выводов"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

По себе вижу: нейросети в табличных редакторах уже сэкономили мне десятки часов на рутине и однотипных операциях с текстом. Там, где раньше нужны были скрипты, отдельные сервисы и бесконечный копипаст, сейчас хватает одной формулы в ячейке. Поэтому любую новую задачу в таблице я сначала пробую решать через ИИ, а к ручной работе возвращаюсь только если совсем не получается. Очень надеюсь, что материал был для вас полезен.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Как встроить ИИ в рабочий процесс, крутые промпты и кейсы - подписывайтесь на мой ТГ-канал"}},{"type":"link","cover":false,"hidden":false,"anchor":"","data":{"link":{"type":"link","data":{"url":"https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Ft.me%2Fneyroskuf&postId=2612550","title":"Нейроскуф | Про Нейросети&AI","description":"Нейросети - не магия. Покажу, что у них под капотом. Учим ИИ работать на тебя. Для связи @balthazar19 Забрать 15 бонусных токенов и 15% скидку за доступ ко всем современным нейросетям: https://t.me/syntxaibot?start=aff_909136800","image":{"type":"image","data":{"uuid":"0c5ec522-6456-5837-a7a9-efa6a12645d2","width":180,"height":180,"size":4016,"type":"png","color":"26a5e4","hash":"","external_service":[]}},"v":1,"hostname":"t.me"}}}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":0,"favorites":9,"reposts":0,"views":2497,"hits":256,"reads":null,"online":0},"dateFavorite":0,"hitsCount":256,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":false,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":"Нейросети в таблицах, интеграция с Google Sheets, автоматизация задач, создание приложений, интеграция ChatGPT, оптимизация работы с данными.","url":"https://vc.ru/ai/2612550-neyroseti-v-google-tablicah-podklyuchenie-i-ispolzovanie","author":{"id":4957854,"name":"Нейроскуф - Про Нейросети & AI","nickname":"neyroskuf","description":"Авторский блог Андрея Калашникова. Учим ИИ работать на тебя. Подписывайтесь на мой ТГ-канал https://t.me/neyroskuf","uri":"/neyroskuf","avatar":{"type":"image","data":{"uuid":"ac491d03-f4e7-58c8-a90c-02798bf90e07","width":1024,"height":1024,"size":673528,"type":"png","color":"2a261b","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAgQHCP/EACQQAAIBBAECBwAAAAAAAAAAAAEDAgAEBREGITEHCBITI0GS/8QAFwEBAQEBAAAAAAAAAAAAAAAAAwUEBv/EAB4RAAEFAAIDAAAAAAAAAAAAAAEAAgMEEQUiEjEy/9oADAMBAAIRAxEAPwDOd1488xsmMjyTH2qr7D3KvahD4iVnZ9JHUy2O+iARrdc1FQExaYz1Oq264YYnslb2GYlmeZ/KSZKUcJZmJJIOpDY/VKeNjBzyKxi7KRuBQJD33Ac17mMnJoBlORJPQfZq3XADMCnzEudpQEDfahd9FK30F//Z"}},"cover":{"cover":{"type":"image","data":{"uuid":"d0a120d1-b1b5-5533-b1c7-8797467e213a","width":1280,"height":800,"size":437334,"type":"png","color":"051925","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAwUGCP/EACEQAAEEAQMFAAAAAAAAAAAAAAEAAgMGBAcRIRIiYXXx/8QAFwEBAQEBAAAAAAAAAAAAAAAAAwYEBf/EACMRAAEDAwIHAAAAAAAAAAAAAAEAAgMEESESFEFRU1RhoaL/2gAMAwEAAhEDEQA/AMIy1inSdbhdoMfuIbE/Hc9wHlwIH1UsbInsu59jnh5UVNU1cUmmOEuFhm45BLjW6RvzqDCD62ZGYafqeil3tf2301SshOw5WVxwuqBlDRpl/9k="}},"cover_y":54},"achievements":[{"title":"Стрик 100 дней","code":"activity_100_days_streak","description":"100 дней активного участия в жизни vc.ru. Ачивка получена 18 ноября 2025.","previewUuid":"76a72417-9546-5911-92d4-37d86aa789ab","formats":{"glb":"https://static.vc.ru/achievements/spiral-05.glb","usdz":"https://static.vc.ru/achievements/spiral-05.usdz"},"viewData":{"contentColor":"#823963","textMaxWidth":0.8046875,"textX":0.5,"textY":0.4677734375,"logoX":0.5,"logoY":0.591796875,"logoXNoText":0.5,"logoYNoText":0.5048828125},"id":6104063,"userId":4957854,"count":0,"shareImage":"https://api.vc.ru/achievements/share/6104063"},{"title":"Топ-10 авторов","code":"monthly_top_authors_top_10","description":"Ачивка получена 7 ноября 2025 за попадание в топ-10 авторов vc.ru по итогам месяца.","previewUuid":"1a0772ad-5490-5a31-ae2d-a5f53f3c4080","formats":{"glb":"https://static.vc.ru/achievements/star-02.glb","usdz":"https://static.vc.ru/achievements/star-02.usdz"},"viewData":{"contentColor":"#747474","textMaxWidth":0.8046875,"textX":0.5,"textY":0.4482421875,"logoX":0.5,"logoY":0.572265625,"logoXNoText":0.5,"logoYNoText":0.50390625},"id":6037921,"userId":4957854,"count":1,"shareImage":"https://api.vc.ru/achievements/share/6037921"},{"title":"Стрик 60 дней","code":"activity_60_days_streak","description":"60 дней активного участия в жизни vc.ru. Ачивка получена 9 октября 2025.","previewUuid":"f70f2101-542a-579d-8422-b2c3f106f425","formats":{"glb":"https://static.vc.ru/achievements/spiral-04.glb","usdz":"https://static.vc.ru/achievements/spiral-04.usdz"},"viewData":{"contentColor":"#525556","textMaxWidth":0.8046875,"textX":0.5,"textY":0.4677734375,"logoX":0.5,"logoY":0.591796875,"logoXNoText":0.5,"logoYNoText":0.5048828125},"id":5882913,"userId":4957854,"count":0,"shareImage":"https://api.vc.ru/achievements/share/5882913"}],"lastModificationDate":1764913622,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":"1ee4281e-240a-6600-9d5f-27ab800008df","isDonationsEnabled":false,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":false,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":true,"isVerified":false,"isPro":true,"yandexMetricaId":null,"badge":"pro","isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":332941,"name":"AI","description":"Нейросети, искуственный интеллект, машинное обучение","uri":"/ai","avatar":{"type":"image","data":{"uuid":"47d7652c-7ff3-5ad3-b72c-3d0aa7d14f06","width":1200,"height":1200,"size":311374,"type":"png","color":"8dd2f1","hash":"2070ecd4e4745850","external_service":[]}},"cover":{"type":"image","data":{"uuid":"d830f642-8293-f95c-8c0a-cf31c79fd3aa","width":1920,"height":384,"size":110830,"type":"gif","color":"3b3846","hash":"","external_service":[],"duration":0}},"lastModificationDate":1602860409,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"ai","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":3},{"id":2,"count":3},{"id":21,"count":1}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null,"keywords":[],"media":{"type":"image","data":{"uuid":"b8b33323-cbc9-5de7-9b84-7e2cd3c216fa","width":1024,"height":1024,"size":677690,"type":"png","color":"2f4a53","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABgf/xAAlEAABBAECBQUAAAAAAAAAAAABAgMEBREABgcSEyFhFSIkMVH/xAAZAQABBQAAAAAAAAAAAAAAAAAEAAIDBQb/xAAhEQACAgEEAgMAAAAAAAAAAAABAgADEQQSITETQQVh0f/aAAwDAQACEQMRAD8AB7e4esX+1vX6ClZfgNMoVNTKdcRLDfTCkqjoKgVZ+jgH81bX11+WvYcD2MdzLUanU+K3ecsOjkcQJOZ4VxJ0iJNpJpkMurbd+M+feCQrvzd+4OiyulBwVgi2fIuoYWDn7H5Kns66uRVRZwtpokx4jjbL3XXztpKTlKVZyB4GnbFZlYjmBM7IGRTgZ69SdTrm4VNkKVazCS6skl9WScnzpFmz3J0rTaOBP//Z"}},"customCover":null,"robotsTag":null,"categories":[3],"isAnonymized":true}};