Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Russian
CSS Stylesheet
.top-button {
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/baseline_keyboard_arrow_up_white_18dp.png) !important;
		background-position: center;
		background-color: #47a7f5 !important;
		background-repeat: no-repeat;
		box-shadow: -1px 1.5px 3px #999;
		color: #47a7f5 !important;
		border-radius:50px !important;
        position: fixed;
        bottom: 45px;
        left: 93.5%;
        width: 50px;
		height: 50px !important;
        font-size: 12px !important;
        padding: 14.5px !important;
		z-index: 2;
}
.top-button:hover{
		background-color: #65b9ff !important;
        color: #65b9ff !important;
}
.page-header{
		background-color: #232838;
	    background-repeat: no-repeat;
	    background-position: center;
		width: auto;
    	height: 100px;
		background-image: url(https://confluence.twin24.ai/download/attachments/23986188/logo_twin-02.png);
		background-size: 10em;
        color: #fff;
        font-size: 20px;
        padding: 20px;
}
.page-footer{
		background-color: #232838;
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/decorated-pattern-dark.png);
		width: auto;
    	height: 10px;
        color: #fff;
		text-align: end;
    	font: small-caption;
    	padding-inline-end: 30px;
    	padding-top: 200px;
    	padding-bottom: 30px;
}
.page-headline{
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/Solid256dot8_2changed.png);
    	background-repeat: no-repeat;
    	background-position-x: -227px;
    	background-position-y: center;
    	padding: 20px;
		background-color: #007bff;
		width: auto;
    	height: 10px;
        color: #fff;
		text-align: center;
    	font: caption;
    	font-weight: 600;
}
.tabs-menu{
    	padding-left: 85% !important;
}

На этой странице:

Оглавление
classbpl


Предупреждение
titleВнимание

BPL-операции работают только в чатах и во входящих звонках. Для тестирования сценариев, использующих BPL-операции, используйте чат в виджете.

Как создать тестовый виджет: Создание тестового виджета

Функции общего назначения

del(varName string)

Назначение: удаление локальной или модульной переменной.

Аргументы:

  1. varName – название переменной в виде строки. Может начинаться с префикса области видимости переменной. Если префикс опущен то считается, что переменная локальная.

Возвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$localVar = 123
#moduleVar = true
del("$localVar")   // Удаляет локальную переменную $localVar
del("localVar")    // Тоже самое что и del("$localVar")
del("#moduleVar")  // Удаляет переменную с областью видимости в пределах модуля 

Математические функции

math.pos(num mixed) number

Назначение: фактически преобразует аргумент к числу. Эквивалент унарной операции "+".

Аргументы:

  1. num – произвольное значение, которое будет преобразовано к числу.

Возвращаемое значение: число.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.pos(true)  // $a будет равно 1
$a = math.pos(false) // $a будет равно 0
$a = math.pos(nil)   // $a будет равно 0
$a = +true           // $a будет равно 1, то же, что и math.pos(true)

math.neg(num number) number

Назначение: меняет знак числа. Эквивалент унарной операции "-".

Аргументы:

  1. num – произвольное число, у которого изменится знак на противоположный.

Возвращаемое значение: число со знаком обратному исходному.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.neg(-1) // $a будет равно 1
$a = math.neg(1)  // $a будет равно -1
$a = math.neg(0)  // $a будет равно 0
$a = -(-10)       // $a будет равно 10, то же, что и math.neg(-10)

math.inv(num number) number

Назначение: инверсия бит числа. Эквивалент унарной операции "~".

Аргументы:

  1. num – произвольное число, у которого инвертируются биты.

Возвращаемое значение: инвертированное число.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.inv(5) // $a равно 3
$a = ~5          // то же, что и предыдущая строка

math.not(num number) bool

Назначение: логическое отрицание числа. Эквивалент унарной операции "!".

Аргументы:

  1. num – произвольное число.

Возвращаемое значение: true, если num не равно 0 и false в противном случае.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.not(5) // $a равно false
$a = math.not(0) // $a равно true
$a = !0          // то же, что и предыдущая строка

math.add(num1 number, num2 number, precision int = 12) number

Назначение: сложение чисел. Эквивалент бинарной операции "+".

Аргументы:

  1. num1 – первое слагаемое.
  2. num2 – второе слагаемое.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 100.

Возвращаемое значение: сумма чисел.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.add(1.5, 3.5)         // $a равно 5
$a = 1.5 + 3.5                  // то же, что и предыдущая строка
$a = math.add(1.000006, 2.1, 5) // $a равно 3.10001

math.sub(num1 number, num2 number, precision int = 12) number

Назначение: разность чисел. Эквивалент бинарной операции "-".

Аргументы:

  1. num1 – уменьшаемое.
  2. num2 – вычитаемое.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 100.

Возвращаемое значение: разность чисел.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.sub(1.5, 3.5)         // $a равно -2
$a = 1.5 - 3.5                  // то же, что и предыдущая строка
$a = math.sub(2.100006, 1.1, 5) // $a равно 1.00001

math.mul(num1 number, num2 number, precision int = 12) number

Назначение: произведение чисел. Эквивалент бинарной операции "*".

Аргументы:

  1. num1 – первый множитель.
  2. num2 – второй множитель.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 100.

Возвращаемое значение: произведение чисел.

Блок кода
languagephp
themeDJango
firstline1
linenumberstrue
$a = math.mul(1.5, 3.5)         // $a равно 5.25
$a = 1.5 * 3.5                  // то же, что и предыдущая строка
$a = math.mul(1.2345, 1.234, 5) // $a равно 1.52337

math.div(num1 number, num2 number, precision int = 12) number

Назначение: частное чисел. Эквивалент бинарной операции "/".

Аргументы:

  1. num1 – делимое.
  2. num2 – делитель.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 100.

Возвращаемое значение: частное чисел.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.div(1.5, 3.5) // $a равно 0.428571428571
$a = 1.5 / 3.5          // то же, что и предыдущая строка
$a = math.div(1, 3, 5)  // $a равно 0.33333

math.idiv(num1 number, num2 number) int

Назначение: целочисленное деление чисел. Эквивалент бинарной операции "\".

Аргументы:

  1. num1 – делимое.
  2. num2 – делитель.

Возвращаемое значение: целая часть частного чисел.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.idiv(2.5, 0.3) // $a равно 8
$a = 2.5 \ 0.3           // то же, что и предыдущая строка

math.mod(num1 number, num2 number, precision int = 12) number

Назначение: остаток от деления двух чисел. Эквивалент бинарной операции "%".

Аргументы:

  1. num1 – делимое.
  2. num2 – делитель.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 100.

Возвращаемое значение: остаток от деления.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.mod(3.5, 1.5)    // $a равно 0.5
$a = 3.5 % 1.5             // то же, что и предыдущая строка
$a = math.mod(1/3, 2/7, 5) // $a равно 0.04762

math.pow(base number, power number, precision int = 12) number

Назначение: возведение числа base в степень power. Эквивалент бинарной операции "**".

Аргументы:

  1. base – основание.
  2. power – степень.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 100.

Возвращаемое значение: результат возведения в степень.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.pow(1.5, 3.5)    // $a равно 4.133513940947
$a = 1.5 ** 3.5            // то же, что и предыдущая строка
$a = math.pow(1.3, 7.1, 5) // $a равно 0.44166

math.sqrt(num number, precision int = 12) number

Назначение: извлечение квадратного корня.

Аргументы:

  1. num – число, из которого извлекается корень.
  2. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 100.

Возвращаемое значение: квадратный корень либо ошибка, если число отрицательное.

Блок кода
languagepy
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.sqrt(3.14)   // $a равно 1.772004514667
$a = math.sqrt(1.7, 5) // $a равно 0.30384

math.round(num number, precision int) number

Назначение: округление числа до требуемого знака после запятой.

Аргументы:

  1. num – число для округления.
  2. precision – точность округления, количество цифр после запятой. Максимальное значение – 100.

Возвращаемое значение: округлённое с заданной точностью число.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.round(3.14159265358979323846264338327950288419716, 17) // $a равно 3.14159265358979324
$a = math.round(3.14159265358979323846264338327950288419716, 2)  // $a равно 3.14
$a = math.round(3.14159265358979323846264338327950288419716, 0)  // $a равно 3

Функции для работы со строками

str.len(str string) int

Назначение: определение длины строки в символах.

Аргументы:

  1. str – строка, длину которой необходимо определить.

Возвращаемое значение: целое число, равное количеству символов в строке.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "Какая-то строка"
$len = str.len($str) // $len будет содержать 15

str.lower(str string) string

Назначение: преобразовапние символов строки в нижний регистр.

Аргументы:

  1. str – строка, которую необходимо преобразовать.

Возвращаемое значение: строка, все символы которой находятся в нижнем регистре.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "СтРоКа"
$lower = str.lower($str) // $lower будет содержать "строка" 

str.upper(str string) string

Назначение: преобразование символов строки в верхний регистр.

Аргументы:

  1. str – строка, которую необходимо преобразовать.

Возвращаемое значение: строка, все символы которой находятся в верхнем регистре.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "СтРоКа"
$upper = str.upper($str) // $lower будет содержать "СТРОКА" 

str.ucfirst(str string) string

Назначение: преобразование первого символа строки в верхний регистр.

Аргументы:

  1. str – строка, первый символ которой необходимо преобразовать.

Возвращаемое значение: строка, в которой первый символ записан в верхнем регистре.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = str.ucfirst("строка") // $str будет содержать "Строка" 

str.lcfirst(str string) string

Назначение: преобразование первого символа строки в нижний регистр.

Аргументы:

  1. str – строка, первый символ которой необходимо преобразовать.

Возвращаемое значение: строка, в которой первый символ записан в нижнем регистре.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = str.ucfirst("Строка") // $str будет содержать "строка" 

str.letter(str string, index int) string

Назначение: получение указанного символа строки.

Аргументы:

  1. str – строка, символ которой требуется получить.
  2. index – целое число, определяющее позицию символа в строке, начиная с 0. Если это число отрицательное, то отсчёт начинается с конца строки.

Возвращаемое значение: строка, соответствующая указанному символу, либо пустая строка, если символа с такой позицией не существует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "Слово"
$firstLetter = str.letter($str, 0)  // Первая буква
$lastLetter = str.letter($str, -1)  // Последняя буква

str.first(str string, index int = 0) string

Назначение: получение указанного символа строки, начиная с начала строки.

Аргументы:

  1. str – строка, символ которой требуется получить.
  2. index – целое число, определяющее позицию символа с начала строки, начиная с 0. При этом знак числа игнорируется. Значение по умолчанию – 0 (первый символ).

Возвращаемое значение: строка, соответствующая указанному символу, либо пустая строка, если символа с такой позицией не существует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "Слово"
$firstLetter = str.first($str)      // Первая буква
$secondLetter = str.first($str, 1)  // Вторая буква

str.last(str string, index int = 0) string

Назначение: получение указанного символа строки, начиная с конца строки.

Аргументы:

  1. str – строка, символ которой требуется получить.
  2. index – целое число, определяющее позицию символа с конца строки, начиная с 0. При этом знак числа игнорируется. Значение по умолчанию – 0 (последний символ).

Возвращаемое значение: строка, соответствующая указанному символу, либо пустая строка, если символа с такой позицией не существует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "Слово"
$lastLetter = str.last($str)       // Последняя буква
$penultLetter = str.last($str, 1)  // Предпоследняя буква

str.concat(str1 string, str2 string) string

Назначение: объединяет две строки в одну.

Аргументы:

  1. str1 – строка, которая объединяется.
  2. str2 – строка, с которой объединяются.

Возвращаемое значение: новая строка, состоящая из первой строки, справа от которой добавлена вторая строка.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str1 = "один"
$str2 = "два"
$str = str.concat($str1, $str2) // $str будет содержать "одиндва" 

str.sub(str string, offset int, length int = nil) string

Назначение: возвращает подстроку строки str, начинающейся с offset символа по счету и длиной length символов.

Аргументы:

  1. str – исходная строка.
  2. offset – если offset неотрицательный, то возвращаемая подстрока начинается с позиции offset от начала строки, считая от нуля.
    Если offset отрицательный, то возвращаемая подстрока начинается с позиции, отстоящей на offset символов от конца строки str.
    Если str меньше offset символов, то будет возвращена пустая строка.
  3. length – если length положительный, то возвращаемая строка будет не длиннее length символов, начиная с параметра offset (в зависимости от длины string).
    Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если offset отрицательный). Если при этом позиция начала подстроки, определяемая аргументом offset, находится в отброшенной части строки или за ней, то возвращается пустая строка. 
    Если параметр length задан и равен 0, то будет возвращена пустая строка.
    Если параметр length опущен или nil, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром offset и длящейся до конца строки.

Возвращаемое значение: часть str или пустая строка.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sub = str.sub("abcdef", 1)      // $sub равен bcdef
$sub = str.sub("abcdef", 1, 3)   // $sub равен bcd
$sub = str.sub("abcdef", 0, 4)   // $sub равен abcd
$sub = str.sub("abcdef", 0, 8)   // $sub равен abcdef
$sub = str.sub("abcdef", -1, 1)  // $sub равен f
$sub = str.sub("abcdef", -1)     // $sub равен f
$sub = str.sub("abcdef", -2)     // $sub равен ef
$sub = str.sub("abcdef", -3, 1)  // $sub равен d
$sub = str.sub("abcdef", 0, -1)  // $sub равен abcde
$sub = str.sub("abcdef", 2, -1)  // $sub равен cde
$sub = str.sub("abcdef", 4, -4)  // $sub равен пустой строке
$sub = str.sub("abcdef", -3, -1) // $sub равен de

str.join(arr Collection, separator string = "") string

Назначение: объединяет элементы коллекции (кортежа, списка или ассоциативного массива) в строку.

Аргументы:

  1. arr – коллекция элементов для объединения.
  2. separator – разделитель элементов коллекции. По умолчанию равен пустой строке.

Возвращаемое значение:  новая строка, составленная из всех элементов коллекции отделённых между собой разделителем.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = str.join([1, 2, 3, 4, 5], "-")             // $str будет содержать "1-2-3-4-5"
$str = str.join(("a", "b", "c"))                  // $str будет содержать "abc"
$str = str.join({"a": "один", "b": "два"}, " + ") // $str будет содержать "один + два"
$str = str.join(["одно"], "/")                    // $str будет содержать "одно"
$str = str.join([], "/")                          // $str будет содержать ""

str.split(str string, separator string = "", limit int = 0) List

Назначение: разбивает строку на части, используя separator в качестве разделителя.

Аргументы:

  1. str – строка для разделения.
  2. separator – разделитель. Если равен пустой строке, то разбиение происходит посимвольно.
  3. limit – необязательный параметр, равный максимальному количеству частей, на которые будет разбита строка. Если limit равен 0, то без ограничений. Если limit является положительным, возвращаемый список будет содержать максимум limit элементов. При этом последний элемент будет содержать остаток строки str. Если limit отрицательный, то будут возвращены все компоненты, кроме последних limit.

Возвращаемое значение:  список подстрок, на которые была разбита строка.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$letters = str.split("абвгде")             // Получили список букв слова
$words = str.split("один два три", " ")    // Получили список слов
$words = str.split("один два три", " ", 1) // words содержит ["один", "два три"]

str.replace(str string, search string, replace string) string

Назначение: ищет все вхождения подстроки в строке и заменяет их на заданное значение.

Аргументы:

  1. str – строка для преобразования.
  2. search – подстрока, которая ищется в исходной строке. 
  3. replace – строка замены.

Возвращаемое значение:  новая строка, в которой все search заменены на replace.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = str.replace("мама мыла раму", "рам", "Даш") // $str содержит "мама мыла Дашу"

str.match(str string, pattern string) bool

Назначение: выполняет проверку данной строки регулярному выражению.

Аргументы:

  1. str – строка для сопоставления с регулярным выражением.
  2. pattern – шаблон регулярного выражения. 

Возвращаемое значение:  возвращает true, если строка соответствует регулярному выражению и false в противном случае.

Примечание: в качестве регулярных выражений используются Perl совместимые регулярные выражения (PCRE). Ссылка на документацию и примеры регулярных выражений.

Онлайн редактор регулярных выражений.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$isIntNumber = str.match("1.234", "/^[0-9]+$/") // $isIntNumber будет равен false
$isIntNumber = str.match("1234", "/^[0-9]+$/")  // $isIntNumber будет равен true

str.distance(str1 string, str2 string) number

Назначение: вычисляет степень сходства двух строк.

Аргументы:

  1. str1 – первая строка для сравнения.
  2. str2 – вторая строка для сравнения. 

Возвращаемое значение:  возвращает число от 0 до 1 включительно, определяющее степень сходства двух строк: 1 – строки эквивалентны, 0 – строки абсолютно разные.

Примечание: функция фактически вычисляет расстояние Дамерау–Левенштейна.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$d = str.distance("", "abc")              // $d равен 0
$d = str.distance("Да", "да")             // $d равен 1
$d = str.distance("корыто", "открыто")    // $d равен 0.714
$d = str.distance("Да, верно", "таверна") // $d равен 0.625
$d = str.distance("жутко косые бананы", "жуй кокосы, ешь бананы") // $d равен 0.714 
$d = str.distance("сошел с ума от раны", "Пошел он в пусурманы")  // $d равен 0.45
$d = str.distance("ёж", "дезоксирибонуклеиновая кислота")         // $d равен 0.033

Функции хэширования

hash.of(text string, algo string = "md5", binary bool = false) string

Назначение: вычисляет хэш строки согласно указанному алгоритму.

Аргументы:

  1. text – произвольная строка для хэширования.
  2. algo – название алгоритма хэширования. По умолчанию используется алгоритм md5.
  3. binary – когда установлено в true, выводит необработанные двоичные данные. При false выводит данные в шестнадцатеричной кодировке в нижнем регистре. По умолчания равен false.

Возвращаемое значение:возвращает строку, содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если binary задан как true, то возвращается хеш-код в виде бинарных данных. В случае ошибки (например, если указан недопустимый алгоритм хэширования) возвращает пустую строку.

Допустимые значения алгоритмов хэширования:

  • md2
  • md4
  • md5
  • sha1
  • sha224
  • sha256
  • sha384
  • sha512/224
  • sha512/256
  • sha512
  • sha3–224
  • sha3–256
  • sha3–384
  • sha3–512
  • ripemd128
  • ripemd160
  • ripemd256
  • ripemd320
  • whirlpool
  • tiger128,3
  • tiger160,3
  • tiger192,3
  • tiger128,4
  • tiger160,4
  • tiger192,4
  • snefru
  • snefru256
  • gost
  • gost–crypto
  • adler32
  • crc32
  • crc32b
  • crc32c
  • fnv132
  • fnv1a32
  • fnv164
  • fnv1a64
  • joaat
  • murmur3a
  • murmur3c
  • murmur3f
  • xxh32
  • xxh64
  • xxh3
  • xxh128
  • haval128,3
  • haval160,3
  • haval192,3
  • haval224,3
  • haval256,3
  • haval128,4
  • haval160,4
  • haval192,4
  • haval224,4
  • haval256,4
  • haval128,5
  • haval160,5
  • haval192,5
  • haval224,5
  • haval256,5

Примечание: если третий параметр true, то передавать возвращаемое функцией значение в качестве сообщения бота или его части нельзя. Это приведёт к падению бота.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$hash = hash.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.")                 // $hash будет содержать bff8b4bc8b5c1c1d5b3211dfb21d1e76
$hash = hash.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.", "ripemd160")    // $hash будет содержать 8817ca339f7f902ad3fb456150a1bb9b4cb5dde9
$hash = hash.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.", "sha256", true) // $hash будет содержать бинарную строку (содержащую неотображаемые символы)

Функции кодирования/декодирования

codec.base64Encode(str string) string

Назначение: кодирует заданную строку в Base64.

Аргументы:

  1. str – произвольная строка для кодирования.

Возвращаемое значение: возвращает строку, закодированную в Base64.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$encoded = codec.base64Encode("Привет!") // $encoded будет содержать строку "0J/RgNC40LLQtdGCIQ=="

codec.base64Decode(str string) ?string

Назначение: декодирует заданную в Base64 строку.

Аргументы:

  1. str – строка, закодированная в Base64.

Возвращаемое значение: возвращает раскодированную строку либо nil, если закодированная строка содержит символы, не входящие в алфавит символов Base64 кодировки.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$decoded = codec.base64Decode("0J/RgNC40LLQtdGCIQ==") // $decoded будет содержать строку "Привет!"
$failed = codec.base64Decode("Привет!")               // $failed будет равен nil

Функции для работы с датой и временем

dt.add(d1 int|string, d2 int|string) string

Назначение: складывает две даты, заданные в виде строки либо как число секунд.

  • Если хотя бы один из аргументов функции число секунд, то это число будет прибавлено к числу секунд другой даты.
  • Если обе даты заданы строкой, то результат определяется по формуле d1 + abs(secondsOf(d1) - secondsOf(d2)), где abs – модуль числа (положительное значение), secondsOf – это дата, представленная как количество секунд, прошедших с начала 1970 года (даты до этого времени представлены отрицательным значением). 

Аргументы:

  1. d1 – строка, представляющая собой дату в одном из допустимых форматов, или целое число, соответствующее количеству секунд.
  2. d2 – аналогично первому аргументу.

Возвращаемое значение: возвращает новую дату и время в виде строки.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$d = dt.add("2022-01-01 12:30:00", 59)                    // $d содержит строку "2022-01-01 12:30:59" 
$d = dt.add(3600, "2022-01-01 12:30:00")                  // $d содержит строку "2022-01-01 13:30:00"
$d = dt.add("2022-01-01 00:00:00", "2022-01-02 00:00:00") // $d содержит строку "2022-01-03 00:00:00"

dt.sub(d1 int|string, d2 int|string) int|string

Назначение: вычисляет разность двух дат, заданных в виде строк либо количеством секунд.

  • Если обе даты заданы количеством секунд, то функция вернёт их разность в виде числа секунд.
  • Если обе даты заданы строкой, то будет возвращено целое число, равное разности между датами в секундах.
  • Если первый аргумент задан строкой даты, а второй – числом секунд, то результатом будет новая дата, равная разности даты и числа секунд.
  • Если второй аргумент задан строкой даты, а первый числом секунд, то результатом будет ошибка.

Аргументы:

  1. d1 – строка, представляющая собой дату в одном из допустимых форматов, или целое число, соответствующее количеству секунд.
  2. d2 – аналогично первому аргументу.

Возвращаемое значение: возвращает новую дату и время в виде строки либо число секунд – разность дат.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$d = dt.sub(100, 50)                                      // $d содержит 50
$d = dt.sub("2022-01-01 12:30:00", 3600)                  // $d содержит строку "2022-01-01 11:30:00"
$d = dt.sub(3600, "2022-01-01 12:30:00")                  // Такой вызов недопустим и приведёт к остановке программы
$d = dt.sub("2022-01-01 01:00:00", "2022-01-01 00:00:00") // $d содержит 3600

dt.format(dt int|string, format string) string

Назначение: форматирует дату согласно заданному формату.

Аргументы:

  • dt – дата заданная строкой или числом секунд.
  • format – строка определяющая формат даты и времени.

Возвращаемое значение: строка даты в заданном формате.

Допустимые параметры форматирования:

Символ в строке formatОписаниеПример возвращаемого значения
Год
yПолное числовое представление года, не менее 4 цифр1999, 2012, 10208
yyДве последние цифры года c дополнением нулями, если необходимо99, 05
Месяц
MПорядковый номер месяца без ведущего нуляот 1 до 12
MMПорядковый номер месяца с ведущим нулёмот 01 до 12
День
dДень месяца без ведущего нуляот 1 до 31
ddДень месяца, 2 цифры с ведущим нулёмот 01 до 31
Час
hЧасы в 12-часовом формате без ведущего нуляот 1 до 12
hhЧасы в 12-часовом формате с ведущим нулёмот 01 до 12
HЧасы в 24-часовом формате без ведущего нуляот 0 до 23
HHЧасы в 24-часовом формате с ведущим нулёмот 00 до 23
Минуты
mМинуты без ведущего нуляот 0 до 59
mmМинуты с ведущим нулёмот 00 до 59
Секунды
sСекунды без ведущего нуляот 0 до 59
ssСекунды с ведущим нулёмот 00 до 59

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

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$dt = dt.format('2022-12-20 08:34:05', 'y.MM.dd h-mm-ss')    // $dt будет содержать строку "22.12.20 8-34-05"
$dt = dt.format('16:30:47', '\Hour\s an\d \minute\s: HH/mm') // $dt будет содержать строку "Hours and minutes: 16/30"

date.nearFuture(day int) string

Назначение: возвращает ближайшую будущую к текущей дату по заданному дню.

Аргументы:

  1. day – число дней для определения ближайшей в будущем даты.

Возвращаемое значение: возвращает ближайшую к day дату.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2022-12-20
$d = date.nearFuture(25) // $d содержит 2022-12-25
$d = date.nearFuture(10) // $d содержит 2023-01-10

date.nearPast(day int) string

Назначение: возвращает ближайшую прошлую к текущей дату по заданному дню.

Аргументы:

  1. day – число дней для определения ближайшей в прошлом даты.

Возвращаемое значение: возвращает ближайшую к day дату.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2022-12-20
$d = date.nearPast(25) // $d содержит 2022-11-25
$d = date.nearPast(10) // $d содержит 2023-12-10

date.future(day int) string

Назначение: возвращает дату, соответствующую указанному дню в следующем месяце.

Аргументы:

  1. day – число дней для определения даты в будущем.

Возвращаемое значение: дата в будущем.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2022-12-20
$d = date.future(25) // $d содержит 2023-01-25
$d = date.future(10) // $d содержит 2023-01-10

date.past(day int) string

Назначение: возвращает дату, соответствующую указанному дню в прошлом месяце.

Аргументы:

  1. day – число дней для определения даты в прошлом.

Возвращаемое значение: дата в прошлом.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2022-12-20
$d = date.past(25) // $d содержит 2022-11-25
$d = date.past(10) // $d содержит 2022-11-10

time.nearFuture(minute int) string

Назначение: возвращает ближайшее будущее к текущему время по заданному количеству минут.

Аргументы:

  1. minute – число минут для определения ближайшего в будущем времени.

Возвращаемое значение: возвращает ближайшее к minute время.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 23:30:00
$t = time.nearFuture(45) // $t содержит 23:45:00
$t = time.nearFuture(15) // $t содержит 00:15:00

time.nearPast(minute int) string

Назначение: возвращает ближайшее прошлое к текущему время по заданному количеству минут.

Аргументы:

  1. minute – число минут для определения ближайшего в прошлом времени.

Возвращаемое значение: возвращает ближайшее к minute время.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 23:30:00
$t = time.nearPast(45) // $t содержит 22:45:00
$t = time.nearPast(15) // $t содержит 23:15:00

time.future(minute int) string

Назначение: возвращает время, соответствующее указанному числу минут в следующем часе.

Аргументы:

  1. minute – число минут для определения времени в будущем.

Возвращаемое значение: время в будущем.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 23:30:00
$t = time.future(45) // $t содержит 00:45:00
$t = time.future(15) // $t содержит 00:15:00

time.past(minute int) string

Назначение: возвращает время, соответствующее указанному числу минут в прошедшем часе.

Аргументы:

  1. minute – число минут для определения времени в прошлом.

Возвращаемое значение: время в прошлом.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 23:30:00
$t = time.past(45) // $t содержит 22:45:00
$t = time.past(15) // $t содержит 22:15:00

Функции по работе с очередью сообщений пользователя

queue.size() int

Назначение: определение размера очереди сообщений пользователя.

Аргументы: отсутствуют.

Возвращаемое значение: число сообщений пользователя.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$messageCount = queue.size() // $messageCount содержит число сообщений пользователя за всё время диалога

queue.last() ?UserMessage

Назначение: возвращает последнее сообщение пользователя либо nil, если очередь сообщений пуста.

Аргументы: отсутствуют.

Возвращаемое значение: объект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$lastMessage = queue.last() // $lastMessage содержит последнее на данный момент сообщение пользователя

queue.first() ?UserMessage

Назначение: возвращает первое сообщение пользователя либо nil, если очередь сообщений пуста.

Аргументы: отсутствуют.

Возвращаемое значение: объект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$firstMessage = queue.first() // $firstMessage содержит первое сообщение пользователя за всё время диалога

queue.nth(index int) ?UserMessage

Назначение: возвращает сообщение пользователя по его порядковому номеру, начиная с 1.

Аргументы:

  1. index – порядковый номер сообщения пользователя.

Возвращаемое значение: объект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
linenumberstrue
$message = queue.nth(1) // $message содержит первое сообщение пользователя
$message = queue.nth(5) // $message содержит пятое сообщение пользователя

queue.lastNth(index int) ?UserMessage

Назначение: возвращает сообщение пользователя по его порядковому номеру, считая с конца очереди. Последнее сообщение соответствует порядковому номеру 1.

Аргументы:

  1. index – порядковый номер сообщения пользователя, считая с конца очереди.

Возвращаемое значение: объект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$message = queue.lastNth(1) // $message содержит последнее сообщение пользователя
$message = queue.lastNth(5) // $message содержит пятое с конца очереди сообщение пользователя

Функции для работы с фактами

fact.save(context string, factName string, factValue mixed, botId string = nil, clientId string = nil)

Назначение: сохраняет факт в базе фактов.

Аргументы:

  1. context – строка, определяющая контекст, в рамках которого существует факт.
  2. factName – строка, определяющая название факта.
  3. factValue – любое значение, определяющее содержимое факта.
  4. botId – идентификатор бота. По умолчанию не задан.
  5. clientId – идентификатор клиента. По умолчанию не задан.

Возвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
fact.save("место", "город", "Екатеринбург")                    // Факт, доступный всем ботам компании       
fact.save("место", "город", "Екатеринбург", nil, @clientId)    // Факт с привязкой к клиенту
fact.save("место", "город", "Екатеринбург", @botId)            // Факт с привязкой к боту
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Факт с привязкой к боту и клиенту

fact.load(context string, factName string, botId string = nil, clientId string = nil) mixed

Назначение:  извлекает факт из базы фактов.

Аргументы:

  1. context – строка, определяющая контекст, в рамках которого существует факт.
  2. factName – строка, определяющая название факта.
  3. botId – идентификатор бота. По умолчанию не задан.
  4. clientId – идентификатор клиента. По умолчанию не задан.

Возвращаемое значение: содержимое факта.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Сохраняет факт с привязкой к боту и клиенту
$city = fact.load("место", "город", @botId, @clientId)         // Загружаем факт в переменную. $city содержит "Екатеринбург"

fact.delete(context string, factName string, botId string = nil, clientId string = nil)

Назначение:  удаляет факт из базы фактов.

Аргументы:

  1. context – строка, определяющая контекст в рамках которого существует факт.
  2. factName – строка, определяющая название факта.
  3. botId – идентификатор бота. По умолчанию не задан.
  4. clientId – идентификатор клиента. По умолчанию не задан.

Возвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Сохраняет факт с привязкой к боту и клиенту
$city = fact.load("место", "город", @botId, @clientId)         // Загружаем факт в переменную. $city содержит "Екатеринбург"
fact.delete("место", "город", @botId, @clientId)               // Удаляем факт
$city = fact.load("место", "город", @botId, @clientId)         // Пытаемся загрузить удалённый факт. Теперь $city содержит nil.

fact.query() FactQuery

Назначение: возвращает экземпляр FactQuery для построения и выполнения запросов к базе фактов.

Аргументы: отсутствуют.

Возвращаемое значение: объект FactQuery.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Добавили пару фактов в базу
fact.save("место", "страна", "Россия")
fact.save("место", "город", "Екатеринбург")

// Загрузили в $places список мест отсортированных по имени факта в порядке убывания:
// [{"name": "город", "value": "Россия"}, {"name": "страна", "value": "Екатеринбург"}]
$places = fact.query().
    select("name,value").
    where("context", "=", "место").
    sortBy("-name").
    rows()

fact.cond() FactQueryCondition

Назначение: возвращает экземпляр FactQueryCondition для построения составных условий в запросах к базе фактов.

Аргументы: отсутствуют.

Возвращаемое значение: объект FactQueryCondition.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Добавили факты в базу
fact.save("города", "екатеринбург", "Екатеринбург")
fact.save("города", "москва", "Москва")
fact.save("города", "санкт-петербург", "Санкт-Петербург")
fact.save("города", "новосибирск", "Новосибирск")

// Найдём один город, начинающийся с буквы "м" или с буквы "т" и не равный городам "Екатеринбург" и "Новосибирск"
$city = fact.query().
    select("value").
    where("context", "=", "города").
    where(fact.cond().
        where("name", "^@", "м").
        orWhere("name", "^@", "т")).
    where("name", "not in", ("екатеринбург", "новосибирск")).
    one()

Функции для работы с таймером

timer.start(time int, nodeId string) string

Назначение: запускает таймер обратного отсчёта. По истечении указанного времени бот осуществит переход на указанный узел (блок).

Аргументы:

  1. time – время в секундах.
  2. nodeId – идентификатор блока для перехода после завершения отсчёта.

Возвращаемое значение: идентификатор таймера.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$timerId = timer.start(60, "760b9732-4bfb-4846-a348-faae5138fcb2") // $timerId содержит уникальный идентификатор таймера на 60 секунд

timer.stop(timerId string)

Назначение: останавливает (удаляет) таймер обратного отсчёта.

Аргументы:

  1. timerId – идентификатор таймера.

Возвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$timerId = timer.start(60, "760b9732-4bfb-4846-a348-faae5138fcb2")
timer.stop($timerId) // останавливаем (удаляем) таймер

Функции для работы с текстом на естественном языке (NLP)

nlp.parse(message string|UserMessage) Sentence

Назначение: парсит текст на естественном языке. 

Аргументы:

  1. message – текст на естественном языке или объект UserMessage.

Возвращаемое значение: объект Sentence,содержащий информацию о всех намерениях и сущностях исходного сообщения.

Примечание: данная функция извлекает из текста только сущности. Для работы с намерениями используйте функцию nlu.parse.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlp.parse(queue.first()) // парсим первое сообщение пользователя

nlp.join(message1 string|UserMessage, message2 string|UserMessage) Sentence

Назначение: объединяет два текста на естественном языке в одно и затем парсит его.

Аргументы:

  1. message1 – текст на естественном языке или объект UserMessage.
  2. message2 – текст на естественном языке или объект UserMessage.

Возвращаемое значение: объект Sentence,содержащий информацию о всех намерениях и сущностях объединённого сообщения.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlp.join(queue.lastNth(2), queue.lastNth(1)) // объединяем предпоследнее и последнее сообщения пользователя и затем парсим его  

nlp.setPerception($sentence Sentence)

Назначение: позволяет установить сообщение пользователя для обработки в других узлах (блоках) схемы бота. 

Аргументы:

  1. sentence – объект Sentence, содержащий информацию о намерениях и сущностях некоторого сообщения.

Возвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlp.join(queue.lastNth(2), queue.lastNth(1)) // объединяем предпоследнее и последнее сообщения пользователя и затем парсим его
nlp.setPerception($sentence)                             // Теперь остальные узлы схемы будут работать с cообщением $sentence

Функции для "понимания" естественного языка.

nlu.parse(text string, agentId string, timezoneOffset int = 0, version int = 1) Sentence

Purpose: разбор текста на естественном языке. Выявление намерений и сущностей.

Arguments:

  1. text текст для разбора.
  2. agentId – идентификатор (uuid) агента (нейросети), производящего разбор текста.
  3. timezoneOffset – смещение временной зоны, необходимое для правильного выявления временных сущностей. По умолчанию используется смещение для UTC.
  4. version – версия NLU. Может быть числом 1 или 2.

Возвращаемое значение: объект Sentence.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$sentence = nlu.parse("Доброе утро Вася!", "d926726a-5acb-4233-8c1e-ce4300921de0")

Функции для работы с HTTP

http.sendRequest(url string, method string, body any = nil, headers Map = nil) Response

Назначение: отправляет HTTP запрос на указанный URL. 

Аргументы:

  1. url – URL-адрес, на который будет оправлен запрос.
  2. method – HTTP-метод. Допустимые значения: GET, POST, PUT, DELETE, PATCH, HEAD и OPTIONS.
  3. body – тело запроса. Может быть представлено скалярным значением, списком или ассоциативным массивом.
  4. headers – HTTP-заголовки запроса. По умолчанию устанавливается заголовок Content-Type: application/json

Возвращаемое значение: объект HTTP-ответа.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Выполняем запрос на получение списка юзеров
$response = http.sendRequest("https://iam.twin24.ai/api/v1/users", "GET", {"limit": 15, "offset": 5}, {"Authorization": "Bearer authToken"})

// Извлекаем информацию о запросе
$statusCode = $response.statusCode
$body = $response.body
$headers = $response.headers
$error = $response.error

http.request(url string = "", method string = "POST", body any = nil) Request

Назначение: формирует новый объект HTTP-запроса.

Аргументы:

  1. url – строка URL.
  2. method – название HTTP-метода.
  3. body – содержимое тела запроса.

Возвращаемое значение: объект, содержащий информацию о HTTP-запросе.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$response = http.request("https://some.url", "POST", {"param1": 123, "param2": true}).
                 headers({"Content-Type": "application/json"}).
                 timeout(300).
                 send()

Объект Request

timeout(timeout int) Request

Назначение: задаёт максимально допустимое время запроса в секундах. Если запрос отрабатывается дольше указанного времени, то его выполнение прерывается.

Аргументы:

  1. timeout – допустимое время запроса в секундах.

Возвращаемое значение: объект, содержащий информацию о HTTP-запросе.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.request("https://some.url", "GET").
                 timeout(300).
                 send()

url(url string) Request

Назначение: задаёт URL запроса.

Аргументы:

  1. url – строка URL.

Возвращаемое значение: объект, содержащий информацию о HTTP-запросе.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("GET").
                 send()

method(method string) Request

Назначение: задаёт HTTP-метод запроса.

Аргументы:

  1. method – название HTTP-метода.

Возвращаемое значение: объект, содержащий информацию о HTTP-запросе.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("GET").
                 send()

body(body any) Request

Назначение: задаёт тело запроса.

Аргументы:

  1. body – тело запроса.

Возвращаемое значение: объект, содержащий информацию о HTTP запросе.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2")
                 method("PUT").
                 body("some body").
                 send()

header(header string, value string) Request

Назначение: добавляет HTTP заголовок.

Аргументы:

  1. header – название HTTP-заголовка.
  2. value – значение HTTP-заголовка.

Возвращаемое значение: объект, содержащий информацию о HTTP запросе.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("POST").
                 header("Content-Type", "application/json").
                 header("Accept-Language", "en-US,en;q=0.5").
                 send()

headers(headers Map) Request

Назначение: задаёт HTTP-заголовки.

Аргументы:

  1. headers – HTTP-заголовки.

Возвращаемое значение: объект, содержащий информацию о HTTP-запросе.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("PUT").
                 body("some body").
                 headers({"Content-Type": "application/json", "Accept-Language": "en-US,en;q=0.5"}).
                 send()

file(fileId string, name string = "") Request

Назначение: добавляет файл для отправки по HTTP.

Аргументы:

  1. fileId – идентификатор ранее загруженного файла.
  2. name – название параметра запроса. Если параметр не задан, то его имя будет совпадать с идентификатором файла.

Возвращаемое значение: объект, содержащий информацию о HTTP-запросе.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$response = http.request().
                 url("http://some.url").
                 method("POST").
                 header("Content-Type", "multipart/form-data").
                 file($fileId, "file").
                 send()

send() Response

Назначение: отправляет сформированный запрос.

Возвращаемое значение: объект ответа сервера.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$response = http.request("http://some.url?p1=v1&p2=v2", "PUT", "some body").
                 headers({"header1": "...", "header2": "...").
                 send()

Объект Response

statusCode int

Назначение: код статуса ответа.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$code = $response.statusCode

body any

Назначение: тело ответа.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$body = $response.body

headers Map

Назначение: заголовки ответа.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$headers = $response.headers

error string

Назначение: значение элемента error тела ответа или пустая строка, если такого элемента нет.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$error = $response.error

isError() bool

Назначение: определение успешности ответа.

Возвращаемое значение: возвращает true, если свойство error не пустое или код статуса больше или равен 400, иначе возвращает false.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$isError = $response.isError()

isSuccessful() bool

Назначение: определение успешности ответа.

Возвращаемое значение: возвращает true, если свойство error пустое и код статуса меньше 400, иначе возвращает false.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$isSuccessful = $response.isSuccessful()

hasHeader(header string) bool

Назначение: определение наличия заголовка.

Аргументы:

  1. header – название заголовка.

Возвращаемое значение: true, если заголовок с указанным именем существует, и false в противном случае.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$hasContentType = $response.hasHeader("Content-Type")

header(header string) string

Назначение: получение значения заголовка.

Аргументы:

  1. header – название заголовка.

Возвращаемое значение: значение заголовка с указанным именем или пустую строку, если такого заголовка нет.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$contentType = $response.header("Content-Type")

toFile() string

Назначение: получение файла из HTTP-ответа.

Возвращаемое значение: идентификатор загруженного файла.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url", "GET")
$fileId = $response.toFile()

Системные функции

sys.sleep(microseconds int)

Назначение: останавливает работу бота на указанное количество микросекунд. Если количество микросекунд превышает 1 минуту, то пауза будет уменьшена до 1 минуты.

Аргументы:

  1. microseconds – число микросекунд паузы.

Возвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
sys.sleep(3_000_000) // Пауза в 3 секунды

Функции для работы с GPT-3

gpt3.ask(text string, temperature float = 0.7) string

Назначение: отправляет сообщение в нейросеть ChatGPT3 и возвращает её ответ.

Аргументы:

  1. text – запрос к нейросети на русском языке.
  2. temperature - число от 0 до 1 обозначающее степень достоверности и вариативности ответов нейросети (0 - максимальная достоверность и минимальная вариативность, 1 - минимальная достоверность и максимальная вариативность).

Возвращаемое значение: ответ нейросети в виде строки.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$answer = gpt3.ask("Есть ли жизнь на Марсе?", 0.5) // В $answer будет ответ нейросети на заданный вопрос

Объект FactQuery

Используя методы этого объекты, вы можете выполнять и строить разнообразные запросы к базе фактов. База фактов представляет собой список записей. Каждая запись представляет собой единичный факт, состоящий из следующих частей (полей):

  • Контекст (context). Произвольная строка, длина которой не превышает 255 символов. Обозначает некоторую предметную область, в рамках которой существует факт. Может участвовать в поиске.
  • Имя факта (name). Произвольная строка, длина которой не превышает 255 символов. Служит для идентификации факта в заданном контексте. Может участвовать в поиске.
  • Значение факта (value). Любое значение. Это и есть та информация, которую мы трактуем как факт. Не может участвовать в поиске (технически может, но результат не определен).
  • Идентификатор бота (botId). Может быть задан при сохранении факта с целью привязки факта к боту. Может участвовать в поиске.
  • Идентификатор клиента (clientId). Может быть задан при сохранении факта с целью привязки факта к клиенту. Может участвовать в поиске.

select(fields string|Collection) FactQuery

Назначение: задаёт список полей из базы фактов, значения которых следует вернуть в результате запроса. Если метод select не вызывался, то будут возвращены поля context, name и value.

Аргументы:

  1. fields – строка, содержащая список необходимых полей, разделённых запятой либо коллекция этих полей.

Возвращаемое значение: тот же объект FactQuery.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$facts = fact.query().rows()                               // select не вызван возвращаем все поля.
$facts = fact.query().select(["value", "context"]).rows()  // Возвращаем список фактов, для которых нам нужны только value и context.
$facts = fact.query().select("botId").rows()               // Возвращаем только поле botId, к которому привязаны факты.

where(field string, operator string, value mixed) FactQuery

Назначение: задаёт условие поиска фактов. Несколько методов where объединяются по принципу логического "И". Т.е. все условия должны быть выполнены. Метод where равносилен методу andWhere(field, operator, value).

Аргументы:

  1. field – название поля, для которого задаётся условие (т.е. первый аргумент операции operator).
  2. operator – оператор, обозначающий операцию, выполняющуюся над field. Список доступных операций смотри ниже.
  3. value – второй аргумент операции.

Возвращаемое значение: тот же объект FactQuery.

Список доступных операций:

  1. "=" проверка, что field равно value.
  2. "!=" или "<>" проверка на неравенство, что field не равно value.
  3. ">" проверяет, что field больше value.
  4. "<" проверяет, что field меньше value.
  5. ">=" проверяет, что field больше или равно value.
  6. "<=" проверяет, что field меньше или равно value.
  7. "^@" или "startsWith" ищет совпадение строки value с началом field. Поиск регистрозависимый.
  8. "~" проверяет соответствие field регулярному выражению value. Поиск регистрозависимый.
  9. "!~" проверяет несоотвествие field регулярному выражению value. Поиск регистрозависимый.
  10. "~*" проверяет соответствие field регулярному выражению value. Поиск регистронезависимый.
  11. "!~*" проверяет несоотвествие field регулярному выражению value. Поиск регистронезависимый.
  12. "in" проверяет совпадение field хотя бы с одним значением в коллекции value
  13. "not in" проверяет несовпадение field со всеми значениями из коллекции value.
Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Ищем факты у которых context содержит подстроку test
$facts = fact.query().
    select("name,value").
    where("context", "~", "^.*test.*$").
    rows()

andWhere(field string, operator string, value mixed) FactQuery

Эквивалентен where(field, operator, value).

orWhere(field string, operator string, value mixed) FactQuery

Аналогичен where с той лишь разницей, что несколько вызовов этого метода объединяются по принципу логического "ИЛИ" (т.е. должно выполняться хотя бы одно условие).

where(cond FactQueryCondition) FactQuery

Назначение: задаёт сложное (вложенное) условие. Несколько вызвов метода объединяются по принципу логического "И". Эквивалентен методу andWhere(cond).

Аргументы:

  1. cond – объект FactQueryCondition, определяющий сложносоставное условие.

Возвращаемое значение: тот же объект FactQuery.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Ищем факты, у которых context содержит подстроку test, и при этом name равен "слово", или name начинается на "оп".
$facts = fact.query().
    select("name,value").
    where("context", "~", "^.*test.*$").
    andWhere(fact.cond().
        where("name", "=", "слово").
        orWhere("name", "^@", "оп")).
    rows()

andWhere(cond FactQueryCondition) FactQuery

Эквивалентен where(cond).

orWhere(cond FactQueryCondition) FactQuery

Аналогичен where(cond), с той лишь разницей, что несколько вызовов этого метода объединяются по принципу логического "ИЛИ", т.е. должно выполняться хотя бы одно условие.

sortBy(fields string|Collection) FactQuery

Назначение: задаёт сортирову фактов по указанным полям.

Аргументы:

  1. fields – строка содержащая список полей (через запятую), по которым следует отсортировать факты, либо коллекция, содержащая названия полей. Каждое поле может содержать префикс "+" для сортировки по возрастанию или "-" для сортировки по убыванию. Если префикс не указан, то используется сортировка по возрастанию. 

Возвращаемое значение: тот же объект FactQuery. 

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Получаем все факты для бота с двойной сортировкой: 
// Сначала по контексту по возрастанию (т.е. в алфавитном порядке)
// И далее по имени факта по убыванию.
$facts = fact.query().
    select("name,value").
    where("botId", "=", @botId)
    sortBy("+context,-name"). // Можно также использовать коллеции. Например, sortBy(["+context", "-name"])
    rows()

limit(limit int) FactQuery

Назначение: ставит ограничение на максимальное количество извлекаемых фактов.

Аргументы:

  1. limit – целое число определяющее лимит на количество извлекаемых фактов.

Возвращаемое значение: тот же объект FactQuery

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Получаем первые 10 фактов
$facts = fact.query().
    select("name,value").
    sortBy("name").
    limit(10).
    rows()

skip(count int) FactQuery

Назначение: задаёт количество фактов которые следует пропустить при поиске.

Аргументы:

  1. count – целое число, определяющее количество фактов для пропуска.

Возвращаемое значение: тот же объект FactQuery

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Пропускаем 5 первых фактов и извлекаем следующие 10
$facts = fact.query().
    select("name,value").
    sortBy("name").
    skip(5).
    limit(10).
    rows()

one() mixed

Назначение: возвращает первое указанное через select поле первого найденного факта.

Аргументы: отсутствуют.

Возвращаемое значение: значение поля.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Извлекает имя первого найденного факта
$firstFactName = fact.query().
    select("name,value").        // value хоть и указано, но будет проигнорировано
    one()

column() List

Назначение: возвращает список, состоящий из всех значений первого выбранного поля найденных фактов.

Аргументы: отсутствуют.

Возвращаемое значение: списокзначений поля.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Извлекает список имён всех найденных фактов
$names = fact.query().
    select("name,value").        // value хоть и указано, но будет проигнорировано
    column()

row() Map

Назначение: возвращает все выбранные поля в виде ассоциативного массива для первого найденного факта.

Аргументы: отсутствуют.

Возвращаемое значение: значения всех полей первого факта.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Извлекает имя и значение первого найденного факта
$names = fact.query().
    select("name,value").
    row()

rows() List<Map>

Назначение: возвращает список всех найденных фактов. Каждый факт возвращается как ассоциативный массив, ключами которого являются поля факта, а значениями – значения полей.

Аргументы: отсутствуют.

Возвращаемое значение: значения всех полей всех фактов.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Извлекает имя и значение всех фактов
$names = fact.query().
    select("name,value").
    rows()

Объект FactQueryCondition

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

where(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу where(field string, operator string, value mixed) объекта FactQuery.

andWhere(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу andWhere(field string, operator string, value mixed) объекта FactQuery.

orWhere(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу orWhere(field string, operator string, value mixed) объекта FactQuery.

and(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу andWhere(field string, operator string, value mixed) объекта FactQuery.

or(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу orWhere(field string, operator string, value mixed) объекта FactQuery.

where(cond FactQueryCondition) FactQueryCondition

Аналогичен методу where(cond FactQueryCondition) объекта FactQuery.

andWhere(cond FactQueryCondition) FactQueryCondition

Аналогичен методу andWhere(cond FactQueryCondition) объекта FactQuery.

orWhere(cond FactQueryCondition) FactQueryCondition

Аналогичен методу orWhere(cond FactQueryCondition) объекта FactQuery.

and(cond FactQueryCondition) FactQueryCondition

Аналогичен методу andWhere(cond FactQueryCondition) объекта FactQuery.

or(cond FactQueryCondition) FactQueryCondition

Аналогичен методу orWhere(cond FactQueryCondition) объекта FactQuery.

Объект UserMessage

message string

Назначение: оригинальный текст сообщения.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$msg = queue.last().message // $msg содержит текст последнего сообщения пользователя

attachments List<string>

Назначение: список идентификаторов файлов, приложенных к сообщению.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$attachments = queue.first().attachments // $attachments содержит список вложений первого сообщения пользователя.

isEmpty() bool

Назначение: определяет пустое ли сообщение.

Аргументы: отсутствуют.

Возвращаемое значение: true, если сообщение пустое, и false в противном случае.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$isEmpty = queue.last().isEmpty() // $isEmpty содержит true, если последнее сообщение пользователя пустое, и false в противном случае

hasAttachments() bool

Назначение: определяет, есть ли вложения в данном сообщении.

Аргументы: отсутствуют.

Возвращаемое значение: true, если сообщение имеет вложения, и false в противном случае.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$hasAttachments = queue.first().hasAttachments() // $hasAttachments содержит true, если первое сообщение пользователя имеет вложения, и false в противном случае

Объект Sentence

intent string

Назначение: распознанное намерение.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlu.parse("Привет Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$intent = $sentence.intent   // $intent содержит "greeting"

intentConfidence number

Назначение: степень достоверности распознанного намерения (1 – однозначное распознавание, 0 – намерение фактически нераспознанно).

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlu.parse("Привет Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$confidence = $sentence.intentConfidence   // $confidence содержит 0.98

entities List<Tuple>

Назначение: список распознанных сущностей. Каждый элемент списка содержит кортеж из трёх элементов: тип сущности (string), значение сущности (строка), достоверность распознавания сущности (number).

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlu.parse("Доброе утро Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$entities = $sentence.entities // $entities содержит [("human-name", "Вася", 0.96), ("time", "2023-01-09 23:30:00", 0.87)]
$first = $entities.get(0)      // $first содержит ("human-name", "Вася", 0.96)
$type = $first.get(0)          // $type содержит "human-name"


...

English (US)

Якорь
Top
Top

CSS Stylesheet
.top-button {
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/baseline_keyboard_arrow_up_white_18dp.png) !important;
		background-position: center;
		background-color: #47a7f5 !important;
		background-repeat: no-repeat;
		box-shadow: -1px 1.5px 3px #999;
		color: #47a7f5 !important;
		border-radius:50px !important;
        position: fixed;
        bottom: 45px;
        left: 93.5%;
        width: 50px;
		height: 50px !important;
        font-size: 12px !important;
        padding: 14.5px !important;
		z-index: 2;
}
.top-button:hover{
		background-color: #65b9ff !important;
        color: #65b9ff !important;
}
.page-header{
		background-color: #232838;
	    background-repeat: no-repeat;
	    background-position: center;
		width: auto;
    	height: 100px;
		background-image: url(https://confluence.twin24.ai/download/attachments/23986188/logo_twin-02.png);
		background-size: 10em;
        color: #fff;
        font-size: 20px;
        padding: 20px;
}
.page-footer{
		background-color: #232838;
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/decorated-pattern-dark.png);
		width: auto;
    	height: 10px;
        color: #fff;
		text-align: end;
    	font: small-caption;
    	padding-inline-end: 30px;
    	padding-top: 200px;
    	padding-bottom: 30px;
}
.page-headline{
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/Solid256dot8_2changed.png);
    	background-repeat: no-repeat;
    	background-position-x: -227px;
    	background-position-y: center;
    	padding: 20px;
		background-color: #007bff;
		width: auto;
    	height: 10px;
        color: #fff;
		text-align: center;
    	font: caption;
    	font-weight: 600;
}
.tabs-menu{
    	padding-left: 85% !important;
}

On this page:

Оглавление
classbpl

Предупреждение
titleВнимание

BPL operations work only in chats and incoming calls. To test scenarios with BPL operations, use chats in the widget.

Also see Creating a test widget.

General functions

del(varName string)

Purpose: deletion of a local or module variable.

Arguments:

  1. varName is the name of the variable as a string. The name can start with a variable scope prefix. If the prefix is ​​omitted, then the variable is regarded to be local.

Returned value: none.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$localVar = 123
#moduleVar = true
del("$localVar")   // Deletes the local variable $localVar
del("localVar")    // Result is the same as for del("$localVar")
del("#moduleVar")  //  Deletes a variable visiable within a module

Math functions

math.pos(num mixed) number

Purpose: converts the argument to a number. The function acts as quivalent to the unary "+" operator.

Arguments:

  1. num – arbitrary value that will be converted to a number.

Returned value: number.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.pos(true)  // $a will be equal toо 1
$a = math.pos(false) // $a will be equal to 0
$a = math.pos(nil)   // $a will be equal to 0
$a = +true           // $a will be equal to 1, same as math.pos(true)

math.neg(num number) number

Purpose: changes the sign of a number. The function acts as quivalent to the unary operation "-".

Arguments:

  1. num – an arbitrary number whose sign changes to the opposite.

Returned value: the samenumber with the opposite sign.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.neg(-1) // $a will be equal to 1
$a = math.neg(1)  // $a will be equal to -1
$a = math.neg(0)  // $a will be equal to 0
$a = -(-10)       // $a will be equal to 10, same as math.neg(-10)

math.inv(num number) number

Purpose: bit number inversion. This function is equivalent to the unary operator "~".

Arguments:

  1. num – an arbitrary number with invertable bits.

Returned value: inverted number.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.inv(5) // $a is equal to 3
$a = ~5          // same as previous line

math.not(num number) bool

Purpose: logical negation of a number. This function is equivalent to the unary operation "!".

Arguments:

  1. num – an arbitrary number.

Returned value: true if num is not equal to 0; otherwise false.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.not(5) // $a is equal to false
$a = math.not(0) // $a is equal to true
$a = !0          // same as previous line

math.add(num1 number, num2 number, precision int = 12) number

Purpose: addition of numbers.  This function is equivalent to the binary operation "+".

Arguments:

  1. num1 – the first part
  2. num2 – the second part.
  3. precision – the accuracy of calculation, the number of digits after the decimal point. The default value is 12. The maximum value is 100.

Returned value: sum of numbers.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.add(1.5, 3.5)         // $a is equal to 5
$a = 1.5 + 3.5                  // same as previous line
$a = math.add(1.000006, 2.1, 5) // $a is equal to 3.10001

math.sub(num1 number, num2 number, precision int = 12) number

Purpose: difference of numbers. This function is equivalent to the binary operation "-".

Arguments:

  1. num1 – minuend.
  2. num2 – subtrahend.
  3. precision – calculation accuracy, the number of digits after the decimal point. The default value is 12, the maximum is 100.

Returned value: difference of numbers.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.sub(1.5, 3.5)         // $a is equal to -2
$a = 1.5 - 3.5                  // same as previous line
$a = math.sub(2.100006, 1.1, 5) // $a is equal to 1.00001

math.mul(num1 number, num2 number, precision int = 12) number

Purpose: multiplication. This function is equivalent to the binary operation "*".

Arguments:

  1. num1 – first multiplier.
  2. num2 – second multiplier.
  3. precision – calculation accuracy, the number of digits after the decimal point. The default value is 12, the maximum is 100.

Returned value: multiplication.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.mul(1.5, 3.5)         // $a is equal to 5.25
$a = 1.5 * 3.5                  // same as previous line
$a = math.mul(1.2345, 1.234, 5) // $a is equal to 1.52337

math.div(num1 number, num2 number, precision int = 12) number

Purpose: quotient of numbers. Equivalent to the binary operation "/".

Arguments:

  1. num1 – dividend.
  2. num2 – divider.
  3. precision – calculation accuracy, the number of digits after the decimal point. The default value is 12, the maximum is 100.

Returned value: quotient of numbers.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.div(1.5, 3.5) // $a is equal to 0.428571428571
$a = 1.5 / 3.5          // same as previous line
$a = math.div(1, 3, 5)  // $a is equal to 0.33333

math.idiv(num1 number, num2 number) int

Purpose: integer division of numbers. This function is equivalent to the binary operation "\".

Arguments:

  1. num1 – dividend.
  2. num2 – divider.

Returned value: integer part of private numbers.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.idiv(2.5, 0.3) // $a is equal to 8
$a = 2.5 \ 0.3           // same as previous line

math.mod(num1 number, num2 number, precision int = 12) number

Purpose: remainder after dividing two numbers. This function is equivalent to the binary operation "%".

Arguments:

  1. num1 – dividend.
  2. num2 – divider.
  3. precision – calculation accuracy, the number of digits after the decimal point. The default value is 12, the maximum is 100.

Returned value: remainder of the division.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.mod(3.5, 1.5)    // $a is equal to 0.5
$a = 3.5 % 1.5             // same as previous line
$a = math.mod(1/3, 2/7, 5) // $a is equal to 0.04762

math.pow(base number, power number, precision int = 12) number

Purpose: raising the number base to the power power. This function is equivalent to the binary operation "**".

Arguments:

  1. base – base.
  2. power – degree.
  3. precision – calculation accuracy, the number of digits after the decimal point. The default value is 12, the maximum is 100.

Returned value: result of exponentiation.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.pow(1.5, 3.5)    // $a is equal to 4.133513940947
$a = 1.5 ** 3.5            // same as previous line
$a = math.pow(1.3, 7.1, 5) // $a is equal to 0.44166

math.sqrt(num number, precision int = 12) number

Purpose: extracting the square root.

Arguments:

  1. num – the number from which the root is taken.
  2. precision – calculation accuracy, the number of digits after the decimal point. The default value is 12, the maximum is 100.

Returned value: square root or error if the number is negative.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.sqrt(3.14)   // $a is equal to 1.772004514667
$a = math.sqrt(1.7, 5) // $a is equal to 0.30384

math.round(num number, precision int) number

Purpose: rounding the number to the required decimal place.

Arguments:

  1. num – number to round.
  2. precision – calculation accuracy, the number of digits after the decimal point. The maximum is 100.

Returned value: number rounded with a given precision.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$a = math.round(3.14159265358979323846264338327950288419716, 17) // $a is equal to 3.14159265358979324
$a = math.round(3.14159265358979323846264338327950288419716, 2)  // $a is equal to 3.14
$a = math.round(3.14159265358979323846264338327950288419716, 0)  // $a is equal to 3

Functions for working with strings

str.len(str string) int

Purpose: determining the length of the string in characters.

Arguments:

  1. str – string whose length is to be determined.

Returned value: integer is equal to the number of characters in the string.

Блок кода
languagephp
themeDJango
titleUsage example
linenumberstrue
$str = "Some string"
$len = str.len($str) // $len will contain 15

str.lower(str string) string

Purpose: convertion of string characters to lower case.

Arguments:

  1. str – string to be converted.

Returned value: a string with all characters in lowercase.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$str = "StRiNg"
$lower = str.lower($str) // $lower will contain "string" 

str.upper(str string) string

Purpose: convertion of string characters to uppercase.

Arguments:

  1. str – string to be converted.

Returned value: a string with all characters in uppercase.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$str = "StRiNg"
$upper = str.upper($str) // $lower will contain "STRING" 

str.ucfirst(str string) string

Purpose: convertion of the first character of the string to uppercase.

Arguments:

  1. str – string whose first character is to be converted.

Returned value: string with the first character written in upper case.

Блок кода
languagepy
themeDJango
firstline1
titleUsage example
linenumberstrue
$str = str.ucfirst("строка") // $str будет содержать "Строка" 

str.lcfirst(str string) string

Purpose: convertion of the first character of the string to lowercase.

Arguments:

  1. str – string whose first character is to be converted.

Returned value: string with the first character written in lower case.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$str = str.ucfirst("String") // $str will contain "string" 

str.letter(str string, index int) string

Purpose: retrieve the specified character of the string.

Arguments:

  1. str – string whose character is to be retrieved.
  2. index – an integer that defines the character position in the string starting from 0. If this number is negative, then the count starts from the end of the string.

Returned value: the string that corresponds to the specified character or the empty string if there is no character at that position.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$str = "Word"
$firstLetter = str.letter($str, 0)  // First character
$lastLetter = str.letter($str, -1)  // Last character

str.first(str string, index int = 0) string

Purpose: retrieve the specified character of a string starting from the beginning of the string.

Arguments:

  1. str – string whose character is to be retrieved.
  2. index – an integer that defines the position of the character from the beginning of the string starting from 0. In this case, the sign of the number is ignored. The default value is 0 (first character).


Returned value: string that corresponds to the specified character or the empty string if there is no character at that position.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$str = "Word"
$firstLetter = str.first($str)      // First character
 $secondLetter = str.first($str, 1)  // Last character

str.last(str string, index int = 0) string

Purpose: retrieve the specified character of the string starting from the end of the string.

Arguments:

  1. str – string whose character is to be retrieved.
  2. index – an integer that defines the position of the character from the end of the string starting from 0. In this case, the sign of the number is ignored. The default value is 0 (last character).

Returned value: строка соответствующая указанному символу, либо пустая строка если символа с такой позицией не существует.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$str = "Слово"
$lastLetter = str.last($str)       // Последняя буква
$penultLetter = str.last($str, 1)  // Предпоследняя буква

str.concat(str1 string, str2 string) string

Purpose: concatenates two strings into one.

Arguments:

  1. str1 – string to be concatenated.
  2. str2 – string to be concatenated with.

Returned value: a new line that cosists of the first line to the right of which the second line is added.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$str1 = "one"
$str2 = "two"
$str = str.concat($str1, $str2) // $str will contain "onetwo" 

str.sub(str string, offset int, length int = nil) string

Purpose: returns a substring of str starting from the offset character by count and length of character length.

Arguments:

  1. str – original string.
  2. offset – if offset is not negative, the returned substring starts at the offset position from the beginning of the string, starting from zero.
    If offset is negative, the returned substring starts at offset characters from the end of str string.
    If str is less than offset characters, an empty string will be returned.
  3. length – if length is positive, the returned string will be no longer than length characters starting at the offset parameter (depending on the length of string).
    If length is negative, then the number of characters specified by this argument will be discarded from the end of string (after the starting position has been calculated, if offset is negative). If the position of the beginning of the substring specified by the offset argument is in or after the discarded part of the string, then the empty string is returned.
    If the length parameter is defined and equals to 0, an empty string will be returned.
    If the length parameter is omitted or nil, then a substring will be returned starting at the position specified by the offset parameter up to the end of the string.

Returned value: part of str or the empty string.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$sub = str.sub("abcdef", 1)      // $sub равен bcdef
$sub = str.sub("abcdef", 1, 3)   // $sub равен bcd
$sub = str.sub("abcdef", 0, 4)   // $sub равен abcd
$sub = str.sub("abcdef", 0, 8)   // $sub равен abcdef
$sub = str.sub("abcdef", -1, 1)  // $sub равен f
$sub = str.sub("abcdef", -1)     // $sub равен f
$sub = str.sub("abcdef", -2)     // $sub равен ef
$sub = str.sub("abcdef", -3, 1)  // $sub равен d
$sub = str.sub("abcdef", 0, -1)  // $sub равен abcde
$sub = str.sub("abcdef", 2, -1)  // $sub равен cde
$sub = str.sub("abcdef", 4, -4)  // $sub равен пустой строке
$sub = str.sub("abcdef", -3, -1) // $sub равен de

str.join(arr Collection, separator string = "") string

Purpose: concatenates the elements of a collection (tuple, list, or associative array) into a string.

Arguments:

  1. arr – collection of items to  concatenate.
  2. separator – collection separator. The default is an empty string.

Returned value:  a new string that contains all the elements of the collection separated by a delimiter.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$str = str.join([1, 2, 3, 4, 5], "-")             // $str will contain "1-2-3-4-5"
$str = str.join(("a", "b", "c"))                  // $str will contain "abc"
$str = str.join({"a": "один", "b": "два"}, " + ") // $str will contain "one + two"
$str = str.join(["одно"], "/")                    // $str will contain "one"
$str = str.join([], "/")                          // $str will contain ""

str.split(str string, separator string = "", limit int = 0) List

Purpose: splits the string into parts using separator as the delimiter.

Arguments:

  1. str – string to split.
  2. separator – separator. If it is equal to an empty string, then splitting is carried out character by character.
  3. limit – an optional parameter equal to the maximum number of parts the string is splitted to. If limit is 0, then there is no limit. If the limit is positive, then the returned list will contain a maximum of limit elements, with the last element containing the remainder of str. If the limit is negative, then all components will be returned except for the last one – limit.

Returned value:  list of substrings into which the string is split.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$letters = str.split("abcdef")             // returnes a list of letters in a word
$words = str.split("one two three", " ")    // returnes a list of words
$words = str.split("one two three", " ", 1) // words contains ["one", "two three"]

str.replace(str string, search string, replace string) string

Purpose: searches for all occurrences of a substring in a string and replaces them with the given value.

Arguments:

  1. str – string to be converted.
  2. search – substring that is searched for in the source string. 
  3. replace – replacement string.

Returned value:  a new line where all all cccurences of "search" are replaced with "replace".

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$str = str.replace("mother washed frame", "frame", "Dasha") // $str содержит "mother washed Dasha"

str.match(str string, pattern string) bool

Purpose: performs a regular expression check on the given string.

Arguments:

  1. str – string to match against the regular expression.
  2. pattern – pattern of regular expression.

Returned value: returns true if the string matches the regular expression, otherwise returns false.

Note: Perl Compatible Regular Expressions (PCRE) are used as regular expressions.  Link to documentation and examples of regular expressions.

Online regular expression editor.

Блок кода
languagephp
firstline1
titleUsage example
linenumberstrue
$isIntNumber = str.match("1.234", "/^[0-9]+$/") // $isIntNumber will be equal to false
$isIntNumber = str.match("1234", "/^[0-9]+$/")  // $isIntNumber will be equal to true

str.distance(str1 string, str2 string) number

Purpose: calculates the similarity of two strings.

Arguments:

  1. str1 – first line to compare.
  2. str2 – second line to compare. 

Returned value:  returns a number between 0 and 1 that indicates the similarity of two strings. 1 - strings are equivalent, 0 - strings are completely different.

Note: This function actually calculates the Damerau-Levenshtein distance.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$d = str.distance("", "abc")              // $d is equal to 0
$d = str.distance("Да", "да")             // $d is equal to 1
$d = str.distance("корыто", "открыто")    // $d is equal to 0.714
$d = str.distance("Да, верно", "таверна") // $d is equal to 0.625
$d = str.distance("terribly oblique bananas", "chew coconuts, eat bananas") // $d is equal to 0.714 
$d = str.distance("went crazy from the wound, "He became a pusurmany")  // $d is equal to 0.45
$d = str.distance("hedgehog", "deoxyribonucleic acid")         // $d is equal to 0.033

Hash functions

hash.of(text string, algo string = "md5", binary bool = false) string

Purpose: calculates the hash of the string according to the specified algorithm.

Arguments:

  1. text – arbitrary string to hash.
  2. algo – the name of the hash algorithm. The default algorithm is md5.
  3. binary – when it is set to true, then it returns output raw binary data. If it is set to false, it outputs the data in lowercase hexadecimal encoding. By default it is set to false.

Returned value: returns a string that contains the computed hash code in lowercase hexadecimal encoding. If binary is set to true, then the hash code is returned as binary data. It returns an empty string in case of error (for example, if an invalid hash algorithm is specified).

Possible hash algorithms values:

  • md2
  • md4
  • md5
  • sha1
  • sha224
  • sha256
  • sha384
  • sha512/224
  • sha512/256
  • sha512
  • sha3-224
  • sha3-256
  • sha3-384
  • sha3-512
  • ripemd128
  • ripemd160
  • ripemd256
  • ripemd320
  • whirlpool
  • tiger128,3
  • tiger160,3
  • tiger192,3
  • tiger128,4
  • tiger160,4
  • tiger192,4
  • snefru
  • snefru256
  • gost
  • gost-crypto
  • adler32
  • crc32
  • crc32b
  • crc32c
  • fnv132
  • fnv1a32
  • fnv164
  • fnv1a64
  • joaat
  • murmur3a
  • murmur3c
  • murmur3f
  • xxh32
  • xxh64
  • xxh3
  • xxh128
  • haval128,3
  • haval160,3
  • haval192,3
  • haval224,3
  • haval256,3
  • haval128,4
  • haval160,4
  • haval192,4
  • haval224,4
  • haval256,4
  • haval128,5
  • haval160,5
  • haval192,5
  • haval224,5
  • haval256,5

Note: if the third parameter is true, then you cannot pass the value returned by the function as a bot message or part of it. This will crash the bot.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$hash = hash.of("Impudent brown fox cub jumps around a lazy dog.")                 // $hash will contain bff8b4bc8b5c1c1d5b3211dfb21d1e76
$hash = hash.of("Impudent brown fox cub jumps around a lazy dog.", "ripemd160")    // $hash will contain 8817ca339f7f902ad3fb456150a1bb9b4cb5dde9
$hash = hash.of("Impudent brown fox cub jumps around a lazy dog.", "sha256", true) // $hash will contain a binary string (with displayable characters)

Encoding/decoding functions

codec.base64Encode(str string) string

Purpose: encodes the given string into Base64.

Arguments:

  1. str – arbitrary string to encode.

Returned value: returns a string encoded in Base64.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$encoded = codec.base64Encode("Привет!") // $encoded will contain string "0J/RgNC40LLQtdGCIQ=="

codec.base64Decode(str string) ?string

Purpose: decodes the provided Base64 string.

Arguments:

  1. str – Base64 encoded string.

Returned value: returns the decoded string or nil if the encoded string contains characters that are not in the base64 character alphabet of the encoding.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$decoded = codec.base64Decode("0J/RgNC40LLQtdGCIQ==") // $decoded will contain string "Hello!"
$failed = codec.base64Decode("Привет!")               // $failed will be equal to nil

Date and Time Functions

dt.add(d1 int|string, d2 int|string) string

Purpose: adds two dates, provided as a string or as a number of seconds.

  • If at least one of the function arguments is the number of seconds, then this number will be added to the number of seconds of another date.
  • If both dates are strings, then the result is d1 + abs(secondsOf(d1) - secondsOf(d2)), where abs is the absolute value of the number (a positive value), secondsOf is the date represented as the number of seconds since the beginning of 1970 (dates prior to that time are represented by a negative value).

Arguments:

  1. d1 – a string that represents a date in one of the allowed formats or an integer that corresponds to the number of seconds.
  2. d2 – similar to the first argument.

Returned value: returns the new date and time as a string.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$d = dt.add("2022-01-01 12:30:00", 59)                    // $d contains string "2022-01-01 12:30:59" 
$d = dt.add(3600, "2022-01-01 12:30:00")                  // $d contains string "2022-01-01 13:30:00"
$d = dt.add("2022-01-01 00:00:00", "2022-01-02 00:00:00") // $d contains string "2022-01-03 00:00:00"

dt.sub(d1 int|string, d2 int|string) int|string

Purpose: calculates the difference between two dates provided as strings or seconds.

  • If both dates are provided in number of seconds, then the function will return their difference as a number of seconds.
  • If both dates are provided as a string, then an integer equal to the difference between the dates in seconds will be returned.
  • If the first argument is a date string and the second argument is a number of seconds, then the result is a new date equal to the difference between the date and the number of seconds.
  • If the second argument is a date string and the first argument is a number of seconds, then the result is an error.

Arguments:

  1. d1 – a string that represents a date in one of the allowed formats or an integer that corresponds to the number of seconds.
  2. d2 – similar to the first argument.

Returned value: returns a new date and time as a string, or the number of seconds – the difference between the dates.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$d = dt.sub(100, 50)                                      // $d contains 50
$d = dt.sub("2022-01-01 12:30:00", 3600)                  // $d  contains string "2022-01-01 11:30:00"
$d = dt.sub(3600, "2022-01-01 12:30:00")                  // Thisa call is invalid and will cause the program to terminate.
$d = dt.sub("2022-01-01 01:00:00", "2022-01-01 00:00:00") // $d contains 3600

dt.format(dt int|string, format string) string

Purpose: brings the date to the specified format.

Arguments:

  • dt – date provided as a string or number of seconds.
  • format – string that specifies the date and time format.

Returned value: date string in the provided format.

Possible formatting parameters:

Character in the format stringDescriptionExample of returned value
Year
yFull numeric representation of the year (at least 4 digits)1999, 2012, 10208
yyThe last two digits of the year (with zeros if necessary)99, 05
Month
M

Number of the month without leading zero

from 1 to 12
MMNumber of the month with leading zerofrom 01 to 12
Day
dDay of the month without leading zerofrom 1 to 31
ddDay of the month, 2 digits with a leading zerofrom 01 to 31
Hour
hHours in 12-hour format without leading zerofrom 01 to 12
hhHours in 12-hour format with leading zerofrom 01 to 12
HHours in 24-hour format without leading zerofrom 0 to 23
HHHours in 24-hour format with leading zerofrom 0 to 23
Minutes
mMinutes without leading zerofrom 0 to 59
mmMinutes with leading zerofrom 0 to 59
Seconds
sSeconds without a leading zerofrom 0 to 59
ssSeconds with a leading zerofrom 0 to 59

Note: if the format string contains characters that match the above, but are not formatting options, then they should be escaped with the backslash character "\".

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$dt = dt.format('2022-12-20 08:34:05', 'y.MM.dd h-mm-ss')    // $dt будет содержать строку "22.12.20 8-34-05"
$dt = dt.format('16:30:47', '\Hour\s an\d \minute\s: HH/mm') // $dt будет содержать строку "Hours and minutes: 16/30"

date.nearFuture(day int) string

Purpose: returns the nearest future date to the current date for the specified day.

Arguments:

  1. day – number of days to determine the next date in the future.

Returned value: returns the closest date to day.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Допустим сейчас 2022-12-20
$d = date.nearFuture(25) // $d contains 2022-12-25
$d = date.nearFuture(10) // $d contains 2023-01-10

date.nearPast(day int) string

Purpose: returns the nearest past date to the current date for the given day.

Аргументы:

  1. day – number of days to determine the closest date in the past.

Returned value: returns the closest date to day.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Допустим сейчас 2022-12-20
$d = date.nearPast(25) // $d contains 2022-11-25
$d = date.nearPast(10) // $d contains 2023-12-10

date.future(day int) string

Purpose: returns the date that corresponds to the specified day in the next month.


Arguments:

  1. day – number of days to determine a date in the future.

Returned value: date in the future.

Блок кода
languagephp
themeDJango
firstlineUsage example
titleUsage example
linenumberstrue
// Допустим сейчас 2022-12-20
$d = date.future(25) // $d contains 2023-01-25
$d = date.future(10) // $d contains 2023-01-10

date.past(day int) string

Purpose: returns the date that corresponds to the specified day in the previous month.

Аргументы:

  1. day – number of days to determine a date in the past.

Returned value: date in the past.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Допустим сейчас 2022-12-20
$d = date.past(25) // $d содержит 2022-11-25
$d = date.past(10) // $d содержит 2022-11-10

time.nearFuture(minute int) string

Purpose: returns the nearest future to the current time by the provided number of minutes.

Arguments:

  1. minute – number of minutes to determine the nearest future time.

Returned value: returns the time closest to minute.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Допустим сейчас 23:30:00
$t = time.nearFuture(45) // $t содержит 23:45:00
$t = time.nearFuture(15) // $t содержит 00:15:00

time.nearPast(minute int) string

Purpose: returns the nearest past to the current time for the specofoed number of minutes.

Arguments:

  1. minute – number of minutes to determine the nearest past time.

Returned value: returns the time closest to minute.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Let's say now it is 23:30:00
$t = time.nearPast(45) // $t contains 22:45:00
$t = time.nearPast(15) // $t contains 23:15:00

time.future(minute int) string

Purpose: returns time that corresponds to the specified number of minutes in the next hour.

Arguments:

  1. minute – number of minutes to determine the time in the future.

Returned value: time in the future.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Let's say now it is 23:30:00
$t = time.future(45) // $t contains 00:45:00
$t = time.future(15) // $t contains 00:15:00

time.past(minute int) string

Purpose: returns the time that corresponds to the specified number of minutes in the past hour.

Arguments:

  1. minute – number of minutes to determine the time in the past.

Returned value: time in the past.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Допустим сейчас 23:30:00
$t = time.past(45) // $t contains 22:45:00
$t = time.past(15) // $t contains 22:15:00

Functions for user message queue

queue.size() int

Purpose: determines the size of the user message queue.

Arguments: not present.

Returned value: number of user messages.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$messageCount = queue.size() // $messageCount contains the number of user messages for the entire dialog

queue.last() ?UserMessage

Purpose: returns the last user message or nil if the message queue is empty.

Arguments: not present.

Returned value: UserMessage object or nil.

Блок кода
languagepy
themeDJango
firstline1
titleUsage example
linenumberstrue
$lastMessage = queue.last() // $lastMessage contains the last user message in a dialog

queue.first() ?UserMessage

Purpose: returns the first user message or nil if the message queue is empty.

Arguments: not present.

Returned value: UserMessage object or nil.

Блок кода
languagepy
themeDJango
firstline1
titleUsage example
linenumberstrue
$firstMessage = queue.first() // $firstMessage contains the first user message in a dialog

queue.nth(index int) ?UserMessage

Purpose: returns the user message by its sequence number starting from 1.

Arguments:

  1. index – sequence number of the user message.

Returned value: UserMessage object or nil.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$message = queue.nth(1) // $message contains the first user message 
$message = queue.nth(5) // $message  contains the fifth user message  

queue.lastNth(index int) ?UserMessage

Purpose: returns the user message by its sequence number starting from the end of the queue. The last message corresponds to sequence number 1.

Arguments:

  1. index – sequence number of the user message starting from the end of the queue.

Returned value: UserMessage object or nil.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$message = queue.lastNth(1) // $message contains the last user message
$message = queue.lastNth(5) // $message contains the fifth user message

Functions for working with facts

fact.save(context string, factName string, factValue mixed, botId string = nil, clientId string = nil)

Purpose: saves the fact to the fact base.

Arguments:

  1. context – string that specifies the context where the fact exists.
  2. factName – string that specidies the name of the fact.
  3. factValue – any value that defines the contents of a fact.
  4. botId – bot ID. Not specified by default.
  5. clientId – Client ID. Not specified by default.

Returned value: not present.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
fact.save("place", "city", "Moscow")                    // Fact that is available to all company bots
fact.save("place", "city", "Moscow", nil, @clientId)    // Fact with reference to the client
fact.save("place", "city", "Moscow", @botId)            // Fact with reference to the bot
fact.save("place", "city", "Moscow", @botId, @clientId) // Fact with reference to the bot and client

fact.load(context string, factName string, botId string = nil, clientId string = nil) mixed

Purpose:  retrieves a fact from the fact base.

Arguments:

  1. context – a string that specifies the context where the fact exists.
  2. factName – a string that specifies the name of the fact.
  3. botId – bot ID. Not specified by default.
  4. clientId – client ID. Not specified by default.

Returned value: contents of the fact.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
fact.save("place", "city", "Moscow", @botId, @clientId) // Saves the fact with reference to the bot and the client
 $city = fact.load("place", "city", @botId, @clientId) // We load the fact into a variable. $city contains "Moscow"

fact.delete(context string, factName string, botId string = nil, clientId string = nil)

Purpose:  deletes a fact from the fact base.

Arguments:

  1. context – a string that specifies the context where the fact exists.
  2. factName – a string that specifies the name of the fact.
  3. botId – bot ID. Not specified by default.
  4. clientId – client ID. Not specified by default.

Returned value: not present.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
fact.save("place", "city", "Moscow", @botId, @clientId) // Saves the fact with reference to the bot and the client
$city = fact.load("place", "city", @botId, @clientId)         // We load the fact into a variable. $city contains "Moscow"
fact.delete("place", "city", @botId, @clientId)               // Deletes fact.
$city = fact.load("place", "city", @botId, @clientId)         // Trying to load a remote fact. Now $city contains nil.

fact.query() FactQuery

Purpose: returns a FactQuery instance for working with the fact database.

Arguments: not present.

Returned value: FactQuery object.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Added a couple of facts to the database
fact.save("place", "country", "Russia")
fact.save("place", "city", "Moscow")

// We loaded into $places a list of places sorted by fact name in descending order:
// [{"name": "city", "value": "Russia"}, {"name": "country", "value": "Moscow"}]
$places = fact.query().
    select("name,value").
    where("context", "=", "place").
    sortBy("-name").
    rows()

fact.cond() FactQueryCondition

Purpose: returns an instance of FactQueryCondition for creating complex conditions when working with the fact database.

Arguments: not present.

Returned value: FactQueryCondition object.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Added facts to the database
fact.save("cities", "ekaterinburg", "Ekaterinburg")
fact.save("cities", "moscow", "Moscow")
fact.save("cities", "saint-petersburg", "Saint-Petersburg")
fact.save("cities", "novosibirsk", "Novosibirsk")

// Let's find one city whose name starts with letter "m" or with letter "t" and is not equal to the cities "Ekaterinburg" and "Novosibirsk"
$city = fact.query().
    select("value").
    where("context", "=", "cities").
    where(fact.cond().
        where("name", "^@", "м").
        orWhere("name", "^@", "т")).
    where("name", "not in", ("ekaterinburg", "novosibirsk")).
    one()
Функции для работы с таймером

Timer Functions

timer.start(time int, nodeId string) string

Purpose:запускает таймер обратного отсчёта. По истечении указанного времени бот осуществит переход на указанный узел (блок) starts the timer. After the specified time is over, the bot will go to the specified block.

Arguments:

  1. timeвремя в секундахtime in seconds.
  2. nodeIdидентификатор блока для перехода после завершения отсчётаblock ID.

Returned value:  идентификатор таймераtimer ID.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$timerId = timer.start(60, "760b9732-4bfb-4846-a348-faae5138fcb2") // $timerId contains содержитa уникальныйunique идентификаторtimer таймераID наfor 60 секундseconds

timer.stop(timerId string)

Purpose:останавливает  stops (удаляет) таймер обратного отсчётаdeletes) the timer.

Arguments:

  1. timerIdидентификатор таймера.timer ID

Returned value:  отсутствуетnot present.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$timerId = timer.start(60, "760b9732-4bfb-4846-a348-faae5138fcb2")
timer.stop($timerId) // останавливаемstops (удаляемdeletes) the таймер
Функции для работы с текстом на естественном языке
timer.

Functions for working with text in natural language (NLP)

nlp.parse(message string|UserMessage) Sentence

Purpose: парсит текст на естественном языкеparses natural language text

Arguments:

  1. messageтекст на естественном языке или объект UserMessagenatural language text or a UserMessage object.

Returned value: объект Sentence содержащий информацию о всех намерениях и сущностях исходного сообщения.a Sentence object containing information about all the intents and entities of the original message.

Примечание: this function extracts only entities from the text. To work with intents, use the nlu.parse functionПримечание: данная функция извлекает из текста только сущности. Для работы с намерениями используйте функцию nlu.parse

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$sentence = nlp.parse(queue.first()) // parses парсимthe первоеfirst сообщениеuser пользователяmessage

nlp.join(message1 string|UserMessage, message2 string|UserMessage) Sentence

Purpose: объединяет два текста на естественном языке в одно и затем парсит егоmerges two natural language texts into one and then parses it.

Arguments:

  1. message1 – текст на естественном языке или объект UserMessage.message2 – текст на естественном языке или объект – text in natural language or a UserMessage object.
  2. message2 – text in natural language or a UserMessage object UserMessage.

Returned value: объект Sentence содержащий информацию о всех намерениях и сущностях объединённого сообщенияa Sentence object that contains information about all the intents and entities of the combined message.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$sentence = nlp.join(queue.lastNth(2), queue.lastNth(1)) //  combine the объединяемlast предпоследнееbut иone последнееand сообщенияthe пользователяlast иuser затемmessages парсимand егоthen parse them

nlp.setPerception($sentence Sentence)

Purpose: позволяет установить сообщение пользователя для обработки в других узлах (блоках) схемы бота. allows you to set a user message for processing in other blocks of the script.

Arguments:

  1. sentenceобъект Sentence содержащий информацию о намерениях и сущностях некоторого сообщенияa Sentence object that contains information about the intents and entities of some message.

Returned value: отсутствуетnot present.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$sentence = nlp.join(queue.lastNth(2), queue.lastNth(1)) // объединяем предпоследнее и последнее сообщения пользователя и затем парсим его
 combines the last but one and last messages of the user and then parse them nlp.setPerception($sentence)                             
// Теперь остальные узлы схемы будут работать с cообщением $sentence
Функции для "понимания" естественного языка.
 Now the rest of the schema nodes will work with the message $sentence

Functions for "understanding" natural language

nlu.parse(text string, agentId string, timezoneOffset int = 0, version int = 1) Sentence

Purpose: разбор текста на естественном языке. Выявление намерений и сущностейparses text in natural language. Reveals intentions and entities.

Arguments:

  1. text текст для разбораtext for parsing.
  2. agentId идентификатор ID (uuid) агента (нейросети) производящего разбор текста.of the agent (neural network) that parses the text.
  3. timezoneOffset – the time zone offset that is necessary to correctly detect temporary entities. The default offset is timezoneOffset – смещение временной зоны, необходимое для правильного выявления временных сущностей. По умолчанию используется смещение для UTC.
  4. version версия NLU . Может быть числом 1 или version. Can be number 1 or 2.

Returned value: объект Sentence object.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$sentence = nlu.parse("ДоброеGood утроmorning ВасяJohn!", "d926726a-5acb-4233-8c1e-ce4300921de0")
Функции для работы с

Functions for working with HTTP

http.sendRequest(url string, method string, body any = nil, headers Map = nil) Response

Purpose: отправляет HTTP запрос на указанный sends an HTTP request to the specified URL.  

Arguments:

  1. url URL адрес на который будет оправлен запросthe URL that the request will be sent to.
  2. method – HTTP методmethod. Допустимые значенияPossible variants: GET, POST, PUT, DELETE, PATCH, HEAD и , and OPTIONS.
  3. body тело запроса. Может быть представлено скалярным значением, списком или ассоциативным массивомrequest body. Can be represented as a scalar value, a list, or an associative array.
  4. headers – HTTP заголовки запроса. По умолчанию устанавливается заголовок request headers. The default header is Content-Type: application/json. 

Returned value: объект HTTP ответаresponse object.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
// Выполняем запрос на получение списка юзеров Executing a request to get a list of users 
$response = http.sendRequest("https://iam.twin24.ai/api/v1/users", "GET", {"limit": 15, "offset": 5}, {"Authorization": "Bearer authToken"})

// Retrieving Извлекаемinformation информациюabout оthe запросеrequest
 $statusCode = $response.statusCode
$body = $response.body
$headers = $response.headers
$error = $response.error

http.request(url string = "", method string = "POST", body any = nil) Request

Purpose:  формирует новый объект HTTP запросаgenerates a new HTTP request object.

Arguments:

  1. url строка URL string.
  2. methodназвание name of HTTP методаmethod.
  3. body содержимое тела запросаcontents of the request body.

Returned value:  объект содержащий информацию о HTTP запросеan object that contains information about the HTTP request.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.request("https://some.url", "POST", {"param1": 123, "param2": true}).
                 headers({"Content-Type": "application/json"}).
                 timeout(300).
                 send()

Объект Request

timeout(timeout int) Request

Purpose:  задаёт максимально допустимое время запроса в секундах. Если запрос отрабатывает дольше указанного времени, то его выполнение прерываетсяspecifies the maximum request time in seconds. If the request is executed longer than the specified time, then its execution is interrupted.

Arguments:

  1. timeout допустимое время запроса в секундахpossible request time in seconds.

Returned value: объект содержащий информацию о HTTP запросеan object that contains information about the HTTP request.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.request("https://some.url", "GET").
                 timeout(300).
                 send()

url(url string) Request

Purpose: задаёт URL запросаsets the URL of the request.

Arguments:

  1. url строка URL string.

Returned value:  объект содержащий информацию о HTTP запросеobject that contains information about the HTTP request.

Блок кода
languagephp
firstline1
titleUsage example
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("GET").
                 send()

method(method string) Request

Purpose: задаёт HTTP метод запросаspecifies the HTTP request method.

Arguments:

  1. method название name of HTTP методаmethod.

Returned value:  объект содержащий информацию о HTTP запросеobject that contains information about the HTTP request.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("GET").
                 send()

body(body any) Request

Purpose: задаёт тело запросаsets the body of the request.

Arguments:

  1. body тело запросаrequest body.

Returned value:  объект содержащий информацию о HTTP запросеobject that contains information about the HTTP request.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2")
                 method("PUT").
                 body("some body").
                 send()

header(header string, value string) Request

Purpose:  добавляет adds an HTTP заголовокheader.

Arguments:

  1. header название name of HTTP заголовкаheader.
  2. value значение value of HTTP заголовка.header

Returned value: объект содержащий информацию о HTTP запросеobject that contains information about the HTTP request.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("POST").
                 header("Content-Type", "application/json").
                 header("Accept-Language", "en-US,en;q=0.5").
                 send()

headers(headers Map) Request

Purpose:  задаёт sets HTTP заголовкиheaders.

Arguments:

  1. headers – HTTP заголовкиheaders.

Returned value: объект содержащий информацию о HTTP запросеobject that contains information about the HTTP request.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("PUT").
                 body("some body").
                 headers({"Content-Type": "application/json", "Accept-Language": "en-US,en;q=0.5"}).
                 send()

file(fileId string, name string = "") Request

Purpose:  добавляет файл для отправки по adds a file to send over HTTP.

Arguments:

  1. fileId идентификатор ранее загруженного файлаID of the previously uploaded file.
  2. name название параметра запроса. Если параметр не задан, то его имя будет совпадать с идентификатором файлаname of the request parameter. If the parameter is not set, then its name will match the file identifier.

Returned value: объект содержащий информацию о HTTP запросеobject that contains information about the HTTP request.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.request().
                 url("http://some.url").
                 method("POST").
                 header("Content-Type", "multipart/form-data").
                 file($fileId, "file").
                 send()

send() Response

Purpose:отправляет сформированный запрос sends the generated request.

Returned value: объект ответа сервераserver response object.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.request("http://some.url?p1=v1&p2=v2", "PUT", "some body").
                 headers({"header1": "...", "header2": "...").
                 send()

Объект Response

statusCode int

Purpose:  код статуса ответаresponse status code.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$code = $response.statusCode

body any

Purpose:  тело ответаresponse body.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$body = $response.body

headers Map

Purpose:  заголовки ответа.response headers

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$headers = $response.headers

error string

Purpose: значение элемента error тела ответа или пустая строка, если такого элемента нетvalue of the error element of the response body or the empty string if there is no such element.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$error = $response.error

isError() bool

Purpose:определение успешности ответа determines the success of the response.

Returned value: возвращает true, если свойство error не пустое или код статуса больше или равен 400, иначе возвращает returns true if the error property is specified or the status code is greater than or equal to 400, otherwise returns false.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$isError = $response.isError()

isSuccessful() bool

Purpose:определение успешности ответа determines the success of the response.

Returned value: возвращает true, если свойство error пустое и код статуса меньше 400, иначе возвращает returns true if the error property is empty and the status code is less than 400, otherwise returns false.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$isSuccessful = $response.isSuccessful()

hasHeader(header string) bool

Purpose: определение наличия заголовкаdetects the presence of a header.

Arguments:

  1. header название заголовка.header name

Returned value: true, если заголовок с указанным именем существует и false в противном случаеif a header with the specified name exists and false otherwise.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$hasContentType = $response.hasHeader("Content-Type")

header(header string) string

Purpose: получение значения заголовка.retrieves the header value

Arguments:

  1. header название заголовкаheader name.

Returned value: значение заголовка с указанным именем или пустую строку, если такого заголовка нетthe value of the header with the specified name or an empty string if there is no such header.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$contentType = $response.header("Content-Type")

toFile() string

Purpose: получение файла из HTTP ответаretrieves a file from HTTP response.

Returned value:идентификатор загруженного файла uploaded file ID.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$response = http.sendRequest("http://some.url", "GET")
$fileId = $response.toFile()
Системные функции

System functions

sys.sleep(microseconds int)

Purpose:останавливает работу бота на указанное количество микросекунд. Если количество микросекунд превышает 1 минуту, то пауза будет уменьшена до 1 минуты stops the bot for the specified number of microseconds. If the number of microseconds exceeds 1 minute, then the pause is set to 1 minute.

Arguments:

  1. microsecondsчисло микросекунд паузыnumber of microseconds.

Returned value: отсутствуетnot present.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
sys.sleep(3_000_000) // Pause Паузаthat вlasts 3 секундыseconds

Функции для работы с GPT-3

gpt3.ask(text string) string

Purpose: отправляет сообщение в нейросеть ChatGPT3 и возвращает её ответsends a message to the ChatGPT3 neural network and returns the response.

Arguments:

  1. textзапрос к нейросети на русском языкеrequest to the neural network in Russian.

Returned value:ответ нейросети в виде строки the response of the neural network as a string.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$answer = gpt3.ask("ЕстьIs лиthere жизньlife наon МарсеMars?") // В $answer будет ответ нейросети на заданный вопрос

Объект FactQuery

Используя методы этого объекты вы можете выполнять и строить разнообразные запросы к базе фактов. База фактов представляет собой список записей. Каждая запись представляет собой единичный факт состоящий из следующих частей (полей):

$answer will contain the answer of the neural network to the question

FactQuery object

Using the methods of this object, you can work witht the fact base. The fact base is a list of records. Each record is a single fact that consists of the following parts (fields):

  • Context (context). An arbitrary string whose length does not exceed 255 characters. Denotes some subject area where a fact relates to. Can be used in the search.
  • Fact name (name). An arbitrary string whose length does not exceed 255 characters. Identifies a fact in a provided context. Can be used in the search
  • Контекст (context). Произвольная строка длина которой не превышает 255 символов. Обозначает некоторую предметную область в рамках которой существует факт. Может участвовать в поиске.
  • Имя факта (name). Произвольная строка длина которой не превышает 255 символов. Служит для идентификации факта в заданном контексте. Может участвовать в поиске.
  • Значение факта (value). Любое значение. Это собственно и есть та информация которую мы трактуем как факт. Не может участвовать в поиске (технически может, но результат недетерминирован Any value. This is the actual information that we interpret as a fact. Cannot be used in the search (technically it can, but the result is not defined).
  • Идентификатор бота (botId). Может быть задан при сохранении факта с целью привязки факта к боту. Может участвовать в поиске Can be specified when you save a fact in order to link the fact to the bot. Can be used in the search.
  • Идентификатор клиента (clientId). Может быть задан при сохранении факта с целью привязки факта к клиенту. Может участвовать в поиске Can be specified when you save a fact in order to link the fact to the client. Can be used in the search.

select(fields string|Collection) FactQuery

Purpose: задаёт список полей из базы фактов значения которых следует вернуть в результате запроса. Если метод select не вызыался, то будут возвращены поля context,name и value specifies a list of fields from the fact base whose values ​​should be returned as a result of the query. If the select method is not called, then the context, name and value fields are returned.

Arguments:

  1. fieldsстрока содержащая список неободимых полей разделённых запятой либо коллекция этих полейa string that contains a comma-separated list of required fields or a collection of these fields.

Returned value:  тот же объект FactQuerythe same FactQuery object.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$facts = fact.query().rows()                               // select не вызван возвращаем все поля.is not called, return all fields 
$facts = fact.query().select(["value", "context"]).rows()  // ВозвращаемReturns списокa фактовlist дляof которыхfacts намthat нужныrequire только value иand context. 
$facts = fact.query().select("botId").rows()               // ВозвращаемReturns толькоonly полеthe botId field where кthe которымfacts привязаныare фактыattached.

where(field string, operator string, value mixed) FactQuery

Purpose: задаёт условие поиска фактов. Несколько методов where объединяются по принципу логического "И", т.е. все условия должны быть выполнены. Метод where равносилен методу sets the condition for finding facts. Several where methods are combined on a logical "AND" basis, i.e. all conditions must be met. The where method is equivalent to the andWhere(field, operator, value) method.

Arguments:

  1. fieldназвание поля для которого задаётся условие, т.е. первый аргумент операции the name of the field where the condition is specified, i.e. the first argument of the operator.
  2. operatorоператор обозначающий операцию выполняющуюся над field. Список доступных операций смотри нижеoperator that denotes the operation to be performed on the field. See the list of available operations below.
  3. valueвторой аргумент операцииsecond argument of the operation.

Returned value:  тот же объект FactQuery.the same FactQuery object.

List of possible operationsСписок доступных операций:

  1. "=" проверка, что field равно checks that field is equal to value.
  2. "!=" или or "<>"проверка на неравенство, что field не равно checks for inequality that field is not equal to value.
  3. ">" проверяет, что field больше checks if field is greater than value.
  4. "<" проверяет, что field меньше checks if field is less than value.
  5. ">=" проверяет, что field больше или равно checks if field is greater than or equal to value.
  6. "<=" проверяет, что field меньше или равно checks if field is less than or equal to value.
  7. "^@" или or "startsWith" ищет совпадение строки value с началом field. Поиск регистрозависимый matches the string value with the beginning of field. The search is case sensitive..
  8. "~" проверяет соответствие field регулярному выражению value. Поиск регистрозависимый checks if field matches the regular expression value. The search is case sensitive.
  9. "!~" проверяет несоотвествие field регулярному выражению value. Поиск регистрозависимый checks if field does not match the regular expression value. The search is case sensitive.
  10. "~*" проверяет соответствие field регулярному выражению value. Поиск регистронезависимый checks if field matches the regular expression value. The search is case insensitive.
  11. "!~*" проверяет несоотвествие field регулярному выражению value. Поиск регистронезависимый checks if field does not match the regular expression value. The search is case insensitive.
  12. "in" проверяет совпадение field хотя бы с одним значением в коллекции value.  checks if field matches at least one value in the value collection.
  13. "not in" проверяет несовпадение field со всеми значениями из коллекции value checks if field does not match all values ​​in the value collection.
Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Ищемlooking фактыfor уfacts которыхwhose context содержитcontains the подстрокуsubstring test
 $facts = fact.query().
    select("name,value").
    where("context", "~", "^.*test.*$").
    rows()

andWhere(field string, operator string, value mixed) FactQuery

Эквивалентен This function is equivalent to where(field, operator, value).

orWhere(field string, operator string, value mixed) FactQuery

Аналогичен where, с той лишь разницей, что несколько вызовов этого метода объединяются по принципу логического "ИЛИ", т.е. должно выполняться хотя бы одно условиеThis function is equivalent to where with the only difference that several calls to this method are combined according to the logical "OR" principle, i.e. at least one condition must be met.

where(cond FactQueryCondition) FactQuery

Purpose: задаёт сложное (вложенное) условие. Несколько вызвов метода объединяются по принципу логического "И". Эквивалентен методу specifies a complex (nested) condition. Multiple method calls are combined in a logical AND fashion. Equivalent to the andWhere(cond) method.

Arguments:

  1. condобъект FactQueryCondition определяющий сложносоставное условиеa FactQueryCondition object that defines a complex condition.

Returned value:  тот же объект FactQuerythe same FactQuery object.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// ИщемSearching фактыfor уfacts которыхwhere context contains содержитthe подстрокуsubstring test and at иthe приsame этомtime name равенis equal to "словоword" илиor name начинаетсяbegins наwith "опon".
$facts = fact.query().
    select("name,value").
    where("context", "~", "^.*test.*$").
    andWhere(fact.cond().
        where("name", "=", "словоword").
        orWhere("name", "^@", "опоn")).
    rows()

andWhere(cond FactQueryCondition) FactQuery

Эквивалентен This function is equivalent to where(cond).

orWhere(cond FactQueryCondition) FactQuery

Аналогичен This function is equivalent to where(cond), с той лишь разницей, что несколько вызовов этого метода объединяются по принципу логического "ИЛИ", т.е. должно выполняться хотя бы одно условие  with the only difference that several calls to this method are combined according to the logical "OR" principle, i.e. at least one condition must be met.

sortBy(fields string|Collection) FactQuery

Purpose: задаёт сортирову фактов по указанным полямsets the sorting of facts by the specified fields.

Arguments:

  1. fieldsстрока содержащая список полей (через запятую) по которым следует отсортировать факты либо коллекция содержащая названия полей. Каждое поле может содержать префикс "+" для сортировки по возрастанию или "-" для сортировки по убыванию. Если префикс не указан, то используется сортировка по возрастанию. a string containing a list of fields (separated by commas) tha are used to sort facts or a collection that contains field names. Each field can be prefixed with "+" for ascending sorting or "-" for descending sorting. If no prefix is ​​specified, ascending sorting is used.

Returned value: the same FactQuery objectReturned value: тот же объект FactQuery

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Receves all Получаемthe всеfacts фактыfor дляthe ботаbot сwith двойнойdouble сортировкойsorting: 
// сначалаfirst поin контекстуascending по возрастаниюorder (тi.еe. в алфавитном порядкеalphabetically)
// и далее по имени факта по убываниюand then by the name of the fact in descending order.
$facts = fact.query().
    select("name,value").
    where("botId", "=", @botId)
    sortBy("+context,-name"). // you можноcan такжеalso использоватьuse коллецииcollections. For Напримерexample, sortBy(["+context", "-name"])
    rows()

limit(limit int) FactQuery

Purpose:  ставит ограничение на максимальное количество извлекаемых фактовsets a limit on the maximum number of extracted facts.

Arguments:

  1. limitцелое число определяющее лимит на количество извлекаемых фактовan integer that defines the limit on the number of extracted facts.

Returned value:  тот же объект FactQuerythe same FactQuery object

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// ПолучаемRetrieves первыеfirst 10 фактовfacts
$facts = fact.query().
    select("name,value").
    sortBy("name").
    limit(10).
    rows()

skip(count int) FactQuery

Purpose: задаёт количество фактов которые следует пропустить при поиске.

Arguments:

  1. count – целое число определяющее количество фактов для пропуска.

Returned value: тот же объект FactQuery. 

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Пропускаем 5 первых фактов и извлекаем следующие 10
$facts = fact.query().
    select("name,value").
    sortBy("name").
    skip(5).
    limit(10).
    rows()

one() mixed

Purpose: возвращает первое указанное через select поле первого найденного факта.

Arguments: отсутствуют.

Returned value: значение поля.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Извлекает имя первого найденного факта
$firstFactName = fact.query().
    select("name,value").        // value хоть и указано, но будет проигнорировано
    one()

column() List

Purpose: возвращает список состоящий из всех значений первого выбранного поля найденных фактов.

Arguments: отсутствуют.

Returned value: списокзначений поля.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Извлекает список имён всех найденных фактов
$names = fact.query().
    select("name,value").        // value хоть и указано, но будет проигнорировано
    column()

row() Map

Purpose: возвращает все выбранные поля в виде ассоциативного массива для первого найденного факта.

Arguments: отсутствуют.

Returned value: значения всех полей первого факта.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Извлекает имя и значение первого найденного факта
$names = fact.query().
    select("name,value").
    row()

rows() List<Map>

Purpose: возвращает список всех найденных фактов. Каждый факт возвращается как ассоциативный массив ключами которого являются поля факта, а значениями - значения полей.

Arguments: отсутствуют.

Returned value: значения всех полей всех фактов.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
// Извлекает имя и значение всех фактов
$names = fact.query().
    select("name,value").
    rows()

Объект FactQueryCondition

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

where(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу where(field string, operator string, value mixed) объекта FactQuery.

andWhere(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу andWhere(field string, operator string, value mixed) объекта FactQuery.

orWhere(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу orWhere(field string, operator string, value mixed) объекта FactQuery.

and(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу andWhere(field string, operator string, value mixed) объекта FactQuery.

or(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу orWhere(field string, operator string, value mixed) объекта FactQuery.

where(cond FactQueryCondition) FactQueryCondition

Аналогичен методу where(cond FactQueryCondition) объекта FactQuery.

andWhere(cond FactQueryCondition) FactQueryCondition

Аналогичен методу andWhere(cond FactQueryCondition) объекта FactQuery.

orWhere(cond FactQueryCondition) FactQueryCondition

Аналогичен методу orWhere(cond FactQueryCondition) объекта FactQuery.

and(cond FactQueryCondition) FactQueryCondition

Аналогичен методу andWhere(cond FactQueryCondition) объекта FactQuery.

or(cond FactQueryCondition) FactQueryCondition

Аналогичен методу orWhere(cond FactQueryCondition) объекта FactQuery.

Объект UserMessage

message string

Purpose: оригинальный текст сообщения.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$msg = queue.last().message // $msg содержит текст последнего сообщения пользователя

attachments List<string>

Purpose: список идентификаторов файлов приложенных к сообщению.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$attachments = queue.first().attachments // $attachments содержит список вложений первого сообщения пользователя.

isEmpty() bool

Purpose: определяет пустое ли сообщение.

Arguments: отсутствуют.

Returned value: true, если сообщение пустое и false в противном случае.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$isEmpty = queue.last().isEmpty() // $isEmpty содержит true, если последнее сообщение пользователя пустое и false в противном случае

hasAttachments() bool

Purpose: определяет есть ли вложения в данном сообщении.

Arguments: отсутствуют.

Returned value: true, если сообщение имеет вложения и false в противном случае.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
$hasAttachments = queue.first().hasAttachments() // $hasAttachments содержит true, если первое сообщение пользователя имеет вложения и false в противном случае

Объект Sentence

intent string

Purpose: распознанное намерение.

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$sentence = nlu.parse("Привет Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$intent = $sentence.intent   // $intent содержит "greeting"

intentConfidence number

Purpose: степень достоверности распознанного намерения (1 – однозначное распознавание, 0 – намерение фактически нераспознанно).

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$sentence = nlu.parse("Привет Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$confidence = $sentence.intentConfidence   // $confidence содержит 0.98

entities List<Tuple>

Purpose: список распознанных сущностей. Каждый элемент списка содержит кортеж из трёх элементов: тип сущности (string), значение сущности (строка), достоверность распознавания сущности (number).

Блок кода
languagephp
themeDJango
firstline1
titleUsage example
linenumberstrue
$sentence = nlu.parse("Доброе утро Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$entities = $sentence.entities // $entities содержит [("human-name", "Вася", 0.96), ("time", "2023-01-09 23:30:00", 0.87)]
$first = $entities.get(0)      // $first содержит ("human-name", "Вася", 0.96)
$type = $first.get(0)          // $type содержит "human-name"


...