Как агент отвечает по прайсу из CSV, Excel или Google-таблицы: требования к файлу, описание таблицы, ограничение выборки, предварительный запрос и смысловой поиск по строкам.
Прайсы, остатки и каталоги загружаются в раздел «Таблицы» файлом CSV, Excel или ссылкой на Google-таблицу. Под вопрос клиента платформа сама формирует SQL-запрос и возвращает агенту только найденные строки, поэтому размер таблицы почти не влияет на стоимость ответа. Настраиваются описание таблицы, права по колонкам, ограничение выборки и предварительный фильтр; для похожих по смыслу формулировок есть векторный поиск.
Каталог в инструкции агента выглядит логично ровно один день — до первого изменения цены. Дальше начинается знакомое: правку внесли в одну строку из трёх мест, агент называет старую цену, а вы платите токенами за то, что он перечитывает весь ассортимент в каждом диалоге.
Таблицы решают обе проблемы сразу, потому что данные лежат отдельно от инструкции и достаются по запросу.
Платформа переводит вопрос клиента в SQL-запрос к таблице и возвращает только подходящие строки.
Механизм называется динамическим генератором запросов. Практический смысл в том, что таблица может быть сколь угодно длинной: в модель уходит найденная строка, а не файл целиком. Именно поэтому таблица дешевле, чем тот же прайс, вписанный в инструкцию.
Понимает, когда обратиться к таблице, агент по её описанию — это отдельное поле в настройках, и оно определяет поведение сильнее, чем кажется. Описание вида «прайс» не даст ничего; описание «цены и остатки террасной доски по моделям и цветам» скажет модели, на какие вопросы идти сюда.
Проверьте на своих диалогах.Регистрация без карты, 500 ₽ на тест по промокоду BLOG500
Собрать агентаТребования короткие, и нарушение любого из них ломает запросы.
Частота обновления задаётся в минутах: по умолчанию раз в сутки, есть кнопка ручного обновления. Чаще одного раза в 30 минут ставить не стоит — таблица скачивается целиком, и на большом файле это создаёт нагрузку на аккаунт Google вплоть до ограничения доступа.
Колонки настраиваются по отдельности, и половина настроек существует ради точности ответа.
| Настройка | Что делает | Когда включать |
|---|---|---|
| Поиск по части строки | находит данные по фрагменту текста из колонки | клиенты называют товар не так, как он записан |
| Не учитывать регистр | ищет независимо от заглавных букв | в прайсе артикулы и названия в разном регистре |
| Всегда строка | работает с числами как с текстом | коды и артикулы из цифр |
| Запись запрещена | защищает колонку от изменений | цена, остаток — всё, что агент менять не должен |
Рядом, в разделе «Дополнительно», живут две вещи, которые прямо влияют на счёт. Ограничение максимального количества строк результата не даёт агенту вытащить половину каталога на общий вопрос. Предварительный SQL-запрос — это фильтр, выполняемый до обращения модели: если вам всегда нужны только строки «в наличии», условие задаётся один раз здесь, а не описывается словами в инструкции.
Правило, вписанное в инструкцию, модель выполняет — обычно. Правило, заданное предварительным запросом, выполняется всегда, ничего не стоит в токенах и не занимает места в инструкции. Там, где выбор есть, алгоритм побеждает формулировку.
Клиент редко называет услугу так, как она записана в прайсе. «Поменять колодки спереди» и «Замена тормозных колодок передней оси» — одна строка, но обычный поиск их не свяжет.
Для этого есть смысловой поиск: функция VECTOR_SEARCH с указанием колонки, поискового запроса и точности от 0 до 1. Рекомендуемый диапазон — от 0,5 до 0,8: чем выше значение, тем строже совпадение. На поиске по модели автомобиля ставят 0,8, на поиске по названию услуги — 0,6, чтобы возвращались близкие варианты.
Плата за это — скорость: векторный поиск заметно медленнее обычного. Поэтому там, где можно попросить у клиента точное название и найти строку по маске, делают именно так.
Граница простая и проходит по скорости изменений.
В таблицу кладут то, что меняется часто и состоит из строк: цены, остатки, расписание, список филиалов. В базу знаний — то, что меняется редко и читается как текст: условия доставки, правила возврата, описание услуги. Ошибка в обе стороны стоит денег: прайс в базе знаний устаревает и перечитывается целиком, а условия возврата, разбитые на строки таблицы, теряют смысл.
Выгрузите прайс и удалите из него всё, о чём клиенты не спрашивают.
Служебные поля, коды поставщика, три колонки внутренних пометок — каждая из них попадает в выборку и оплачивается. Рабочая таблица для агента обычно короче исходной выгрузки вдвое: артикул, название, цена, остаток и те две-три характеристики, которые люди действительно называют в переписке.
Файлом CSV, файлом Excel или подключением Google-таблицы. CSV должен быть в кодировке UTF-8 с разделителем-запятой. Google-таблица должна быть сохранена именно как Google-таблица, а не как файл XLSX, и к ней открыт доступ с ролью «Читатель» или «Редактор».
Первая строка — заголовки колонок. Никаких объединённых ячеек: таблица должна быть простой. Даты вносятся в формате ГГГГ-ММ-ДД или ГГГГ-ММ-ДД ЧЧ:ММ:СС. Названия колонок пишутся без пробелов и отражают суть значений.
Частота обновления задаётся в минутах, по умолчанию 1440 — раз в сутки. Есть кнопка ручного обновления. Ставить чаще одного раза в 30 минут не рекомендуется: каждый раз таблица скачивается заново, и большая таблица создаёт нагрузку на аккаунт Google.
Целиком таблица в модель не уходит. Платформа переводит вопрос клиента в SQL-запрос и возвращает только найденные строки. Дополнительно есть ограничение на максимальное количество строк результата.
Фильтр, который выполняется до запроса от модели. Если вам всегда нужны только строки с признаком «в наличии» или только три города из пяти, это условие задаётся один раз в настройке таблицы, а не описывается в инструкции.
Да, для этого есть функция векторного поиска VECTOR_SEARCH с указанием колонки, поискового запроса и точности от 0 до 1. Рекомендуемый диапазон точности — от 0,5 до 0,8. Смысловой поиск медленнее обычного, поэтому там, где хватает поиска по маске, берут его.
Хотите сразу к продукту: Конструктор чат-ботов для Google-Таблицы