Функции
В данном разделе мы подробно расскажем о принципах работы функций.
Last updated
Was this helpful?
В данном разделе мы подробно расскажем о принципах работы функций.
Last updated
Was this helpful?
Функции - это очень полезный и важный инструмент при настройке Савви, которая позволяет выполнять Савви конкретные действия (вызвать файл базы знаний, таблицу, веб-хук и т.д.).
В основе каждого механизма Савви, где требуется какое-то действие (помимо ответа), будь то база знаний, таблицы, веб-хуки или что-то лежит "функция", которая отвечает за его работу. Внутри функции есть два параметра:
название функции
описание функции
Название описывает общий смысл, а описание более подробный.
Например, для таблицы, которая является прайсом, и который Савви должен прочитывать для ответов клиенту название функции и описание могут звучать так:
Название:
price_table
Описание: Используется для предоставлении стоимости товаров
Эта информация дает Савви представление о том, где хранится информация о стоимости, и когда клиент спросит: "Сколько стоит?" Савви поймет, что эта информация хранится в данной таблице.
Обратите внимание
Бывают более сложные ситуации, когда расчет происходит в несколько шагов или при использовании информации из разных источников.
Например, когда сначала нужно получить данные из первой таблицы, а потом передать эту информацию во вторую таблицу и получить оттуда информацию в соответствии с этой комбинацией.
В этом случае, для каждой таблицы формируется свое название и описание.
Например, в первой таблице мы получаем категорию товара и ее идентификатор (ID), а далее по ID категории рассчитываем стоимость в другой таблице, где уже указан объем товара и стоимость. В этом случае для первой таблицы будут такие параметры:
Название:
categories_table
Описание: Используется для получения ID категорий товаров
Для второй таблицы:
Название:
price_table
Описание: Используется для получения стоимости товаров по ID.
Тут может возникнуть вопрос, почему сразу не указать все в одной таблице? Тут это разделено просто в качестве примера.
В этом случае, при такой схеме в инструкции мы можем указать такой промпт:
#РАСЧЕТ СТОИМОСТИ
В случае, если клиент запросил стоимость товаров выполни по порядку следующие действия:
Получи ID товара вызвав функцию categories_table
передав в нее нужный товар
Получи стоимость товара вызвав функцию price_table
передав туда ID товара полученный на предыдущем шаге.
В английском варианте вызов функции звучит как call function <название функции>.
Почему мы тут вызываем две функции? Разве бот не понимает это по описанию?
Понимает, но тут вопрос точности. Если мы хотим ее повысить, то лучше в инструкции прямо прописать последовательность шагов.
Для вызова функций в системной инструкции Савви используется конструкция:
call function <Название функции>, где <Название функции> - это конкретная функция.
Ниже виды функций и примеры их использования.
К предустановленным функциям относятся функция работы с базой знаний. В случае, когда нужно принудительно вызвать какой-то файл в базе знаний используется функция:
get_file_text("<Название файла для поиска>"), где <Название файла для поиска> - это название файла для поиска из раздела База знаний.
Например, если клиент прямо не пишет, что хочет соединить с оператором, но мы хотим в ряде случаев уменьшить вероятность, что Савви не вызовет нужный файл, мы можем использовать следующий способ:
В этом случае, Савви вызовет данный файл, хотя клиент и не просил переключить на менеджера.
К пользовательским функциям на текущий момент относятся функции разделов Таблицы и Действия.
У каждой таблицы или действия имеется свое название и описание функции. Оно задается персонально для каждой отдельной таблицы или действия.
Сами по себе функции имеют описание и Савви сам понимает, когда их нужно вызвать.
Указывать функции в инструкции само по себе не обязательно, но мы рассматриваем случаи, когда вызов функции может быть не очевиден для бота, или последовательность действий имеет свои ответвления, которые необходимо описать.
По аналогии с предыдущим пунктом, мы можем вызывать необходимые функции используя конструкцию:
call function <Название функции>, где <Название функции> - это конкретная функция.
При этом у таблиц одним из обязательных моментов будет наличие в названии слова table (добавляется автоматически).
При вызове таблицы или действия мы должны указать, что мы туда передаем, дабы Савви не передавал туда не нужную информацию. Например, если мы хотим вызывать веб-хук, который обратится в CRM и получит информацию о товаре, с учетом доставки в конкретный город, мы можем сформировать инструкцию таким образом: