...
| Примечание |
|---|
|
Для тестирования сценариев, содержащих BPL-операции, необходимо использовать веб-виджет или интеграцию с каким-либо мессенджером, так как данные операции не работают в тестовом чате внутри редактора. Как создать тестовый виджет: Создание тестового виджета |
Функции общего назначения
del(varName string)
Назначение: удаление локальной или модульной переменной.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$localVar = 123
#moduleVar = true
del("$localVar") // Удаляет локальную переменную $localVar
del("localVar") // Тоже самое что и del("$localVar")
del("#moduleVar") // Удаляет переменную с областью видимости в пределах модуля |
setClientTimezoneOffset(offset int)
Назначение: изменяет текущее смещение временной зоны собеседника бота.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
setClientTimezoneOffset(-1800) |
asBool(obj any) bool
Назначение: преобразует аргумент к булеву значению.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$bool = asBool(nil) // $bool содержит false
$bool = asBool("") // $bool содержит false
$bool = asBool(0) // $bool содержит false
$bool = asBool([]) // $bool содержит true
$bool = asBool(123) // $bool содержит true |
asString(obj any) string
Назначение: преобразует аргумент к строковому значению.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = asString(123) // $str равно "123"
$str = asString(1.23) // $str равно "1.23"
$str = asString(true) // $str равно "true"
$str = asString({1: "a b c", 2: 0.5}) // $str равно "{1: "a b c", 2: 0.5}" |
asInt(obj any) int
Назначение: преобразует аргумент к целочисленному значению.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$int = asInt(5.67) // $int равно 5
$int = asInt("123") // $int равно 123
$int = asInt(true) // $int равно 1
$int = asInt(nil) // $int равно 0
$int = asInt("abc") // $int равно 0 |
asFloat(obj any) float
Назначение: преобразует аргумент к вещественному числу.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$float = asFloat("5.67") // $float равно 5.67
$float = asFloat(123) // $float равно 123.0
$float = asfloat(true) // $float равно 1.0
$float = asfloat(nil) // $float равно 0.0
$float = asFloat("abc") // $float равно 0.0 |
Математические функции
math.pos(num mixed) number
Назначение: фактически преобразует аргумент к числу. Эквивалент унарной операции "+".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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
Назначение: меняет знак числа. Эквивалент унарной операции "-".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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
Назначение: инверсия бит числа. Эквивалент унарной операции "~".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$a = math.inv(5) // $a равно -6
$a = ~5 // то же, что и предыдущая строка |
math.not(num number) bool
Назначение: логическое отрицание числа. Эквивалент унарной операции "!".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$a = math.not(5) // $a равно false
$a = math.not(0) // $a равно true
$a = !0 // то же, что и предыдущая строка |
math.add(num1 number, num2 number, precision int = 12) number
Назначение: сложение чисел. Эквивалент бинарной операции "+".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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
Назначение: разность чисел. Эквивалент бинарной операции "-".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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
Назначение: произведение чисел. Эквивалент бинарной операции "*".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| linenumbers | true |
|---|
|
$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
Назначение: частное чисел. Эквивалент бинарной операции "/".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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
Назначение: целочисленное деление чисел. Эквивалент бинарной операции "\".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$a = math.idiv(2.5, 0.3) // $a равно 8
$a = 2.5 \ 0.3 // то же, что и предыдущая строка |
math.mod(num1 number, num2 number, precision int = 12) number
Назначение: остаток от деления двух чисел. Эквивалент бинарной операции "%".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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. Эквивалент бинарной операции "**".
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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
Назначение: извлечение квадратного корня.
...
| Блок кода |
|---|
| language | py |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$a = math.sqrt(3.14) // $a равно 1.772004514667
$a = math.sqrt(1.7, 5) // $a равно 0.30384 |
math.round(num number, precision int) number
Назначение: округление числа до требуемого знака после запятой.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$a = math.round(3.14159265358979323846264338327950288419716, 17) // $a равно 3.1415926535898
$a = math.round(3.14159265358979323846264338327950288419716, 2) // $a равно 3.14
$a = math.round(3.14159265358979323846264338327950288419716, 0) // $a равно 3 |
math.rand(min int, max int) int
Назначение: генерация псевдослучайного числа в диапазоне от min до max включительно.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$r = math.rand(-10, 10) |
Функции для работы со строками
str.len(str string) int
Назначение: определение длины строки в символах.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = "Какая-то строка"
$len = str.len($str) // $len будет содержать 15 |
str.lower(str string) string
Назначение: преобразование символов строки в нижний регистр.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = "СтРоКа"
$lower = str.lower($str) // $lower будет содержать "строка" |
str.upper(str string) string
Назначение: преобразование символов строки в верхний регистр.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = "СтРоКа"
$upper = str.upper($str) // $lower будет содержать "СТРОКА" |
str.ucfirst(str string) string
Назначение: преобразование первого символа строки в верхний регистр.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = str.ucfirst("строка") // $str будет содержать "Строка" |
str.lcfirst(str string) string
Назначение: преобразование первого символа строки в нижний регистр.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = str.ucfirst("Строка") // $str будет содержать "строка" |
str.letter(str string, index int) string
Назначение: получение указанного символа строки.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = "Слово"
$firstLetter = str.letter($str, 0) // Первая буква
$lastLetter = str.letter($str, -1) // Последняя буква |
str.first(str string, index int = 0) string
Назначение: получение указанного символа строки, начиная с начала строки.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = "Слово"
$firstLetter = str.first($str) // Первая буква
$secondLetter = str.first($str, 1) // Вторая буква |
str.last(str string, index int = 0) string
Назначение: получение указанного символа строки, начиная с конца строки.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = "Слово"
$lastLetter = str.last($str) // Последняя буква
$penultLetter = str.last($str, 1) // Предпоследняя буква |
str.concat(str1 string, str2 string) string
Назначение: объединяет две строки в одну.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str1 = "один"
$str2 = "два"
$str = str.concat($str1, $str2) // $str будет содержать "одиндва" |
str.sub(str string, offset int, length int = nil) string
Назначение: возвращает подстроку строки str, начинающейся с offset символа по счету и длиной length символов.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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
Назначение: объединяет элементы коллекции (кортежа, списка или ассоциативного массива) в строку.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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 в качестве разделителя.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$letters = str.split("абвгде") // Получили список букв слова
$words = str.split("один два три", " ") // Получили список слов
$words = str.split("один два три", " ", 2) // words содержит ["один", "два три"] |
str.replace(str string, search string, replace string) string
Назначение: ищет все вхождения подстроки в строке и заменяет их на заданное значение.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = str.replace("мама мыла раму", "рам", "Даш") // $str содержит "мама мыла Дашу" |
str.rreplace(str string, pattern string, replace string) string
Назначение: ищет все вхождения соответствующие регулярному выражению в строке и заменяет их на заданное значение.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$str = str.rreplace("раз 1, два 2, три 3", "/[0-9]/", "") // $str содержит "раз, два, три" |
str.match(str string, pattern string) bool
Назначение: выполняет проверку данной строки регулярному выражению.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$isIntNumber = str.match("1.234", "/^[0-9]+$/") // $isIntNumber будет равен false
$isIntNumber = str.match("1234", "/^[0-9]+$/") // $isIntNumber будет равен true |
str.distance(str1 string, str2 string) number
Назначение: вычисляет степень сходства двух строк.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$d = str.distance("", "abc") // $d равен 0
$d = str.distance("Да", "да") // $d равен 1
$d = str.distance("корыто", "открыто") // $d равен 0.571
$d = str.distance("Да, верно", "таверна") // $d равен 0.625
$d = str.distance("жутко косые бананы", "жуй кокосы, ешь бананы") // $d равен 0.714
$d = str.distance("сошел с ума от раны", "Пошел он в пусурманы") // $d равен 0.45
$d = str.distance("ёж", "дезоксирибонуклеиновая кислота") // $d равен 0 |
Функции хэширования
hash.of(text string, algo string = "md5", binary bool = false) string
Назначение: вычисляет хэш строки согласно указанному алгоритму.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$hash = hash.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.") // $hash будет содержать bff8b4bc8b5c1c1d5b3211dfb21d1e76
$hash = hash.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.", "ripemd160") // $hash будет содержать 8817ca339f7f902ad3fb456150a1bb9b4cb5dde9
$hash = hash.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.", "sha256", true) // $hash будет содержать бинарную строку (содержащую неотображаемые символы) |
Функции кодирования/декодирования
codec.base64Encode(str string) string
| HTML |
|---|
<b>Назначение:</b> кодирует заданную строку в <a href="https://ru.wikipedia.org/wiki/Base64" target="_blank">Base64</a>. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$encoded = codec.base64Encode("Привет!") // $encoded будет содержать строку "0J/RgNC40LLQtdGCIQ==" |
codec.base64Decode(str string) ?string
| HTML |
|---|
<b>Назначение:</b> декодирует заданную в
<a href="https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5_%D0%94%D0%B0%D0%BC%D0%B5%D1%80%D0%B0%D1%83_%E2%80%94_%D0%9B%D0%B5%D0%B2%D0%B5%D0%BD%D1%88%D1%82%D0%B5%D0%B9%D0%BD%D0%B0" target="_blank">Base64</a> строку. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$decoded = codec.base64Decode("0J/RgNC40LLQtdGCIQ==") // $decoded будет содержать строку "Привет!"
$failed = codec.base64Decode("Привет!") // $failed будет равен nil |
codec.jsonEncode(value any) string
| HTML |
|---|
<b>Назначение:</b> кодирует заданное значение в <a href="https://ru.wikipedia.org/wiki/JSON" target="_blank">json</a>. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$encoded = codec.jsonEncode((1, true, "a", {"a": 1, "b": 2})) // $encoded будет содержать строку '[1, true, "a", {"a": 1, "b": 2}]' |
codec.jsonDecode(value string) any
| HTML |
|---|
<b>Назначение:</b> декодирует заданное в
<a href="https://ru.wikipedia.org/wiki/JSON" target="_blank">json</a> значение. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$decoded = codec.jsonDecode('[1, true, "a", {"a": 1, "b": 2}]') // $decoded будет содержать список [1, true, "a", {"a": 1, "b": 2}]
|
Функции для работы с датой и временем
dt.add(d1 int|string, d2 int|string) string
Назначение: складывает две даты, заданные в виде строки либо как число секунд.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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-02 02:00:00", "2022-01-01 01:00:00") // $d содержит строку "2022-01-03 03:00:00" |
dt.sub(d1 int|string, d2 int|string) int|string
Назначение: вычисляет разность двух дат, заданных в виде строк либо количеством секунд.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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 |
Назначение: форматирует дату согласно заданному формату.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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" |
dt.year(dt int|string) int
Назначение: возвращает полное числовое представление года, не менее 4 цифр.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$dt = dt.year('2022-12-20 08:34:05') // $dt будет содержать число 2022
$dt = dt.year('08:34:05') // $dt будет содержать число 1970 |
dt.month(dt int|string) int
Назначение: возвращает порядковый номер месяца.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$dt = dt.month('2022-12-20 08:34:05') // $dt будет содержать число 12
$dt = dt.month('08:34:05') // $dt будет содержать число 1 |
dt.day(dt int|string) int
Назначение: возвращает день месяца.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$dt = dt.day('2022-12-20 08:34:05') // $dt будет содержать число 20
$dt = dt.day('08:34:05') // $dt будет содержать число 1 |
dt.hour(dt int|string) int
Назначение: возвращает часы в 24-часовом формате .
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 2023-01-01
$dt = dt.hour('2022-12-20 08:34:05') // $dt будет содержать число 8
$dt = dt.hour('2022-12-20') // $dt будет содержать число 0 |
dt.minute(dt int|string) int
Назначение: возвращает минуты.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 2023-01-01
$dt = dt.minute('2022-12-20 08:34:05') // $dt будет содержать число 34
$dt = dt.minute('2022-12-20') // $dt будет содержать число 0 |
dt.second(dt int|string) int
Назначение: возвращает секунды.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 2023-01-01
$dt = dt.second('2022-12-20 08:34:05') // $dt будет содержать число 5
$dt = dt.second('2022-12-20') // $dt будет содержать число 0 |
dt.weekday(dt int|string) int
Назначение: возвращает порядковый номер дня недели.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$dt = dt.weekday('2022-12-20 08:34:05') // $dt будет содержать число 1
$dt = dt.weekday('08:34:05') // $dt будет содержать число 3 |
date.nearFuture(day int) string
Назначение: возвращает ближайшую будущую к текущей дату по заданному дню.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 2022-12-20
$d = date.nearFuture(25) // $d содержит 2022-12-25
$d = date.nearFuture(10) // $d содержит 2023-01-10 |
date.nearPast(day int) string
Назначение: возвращает ближайшую прошлую к текущей дату по заданному дню.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 2022-12-20
$d = date.nearPast(25) // $d содержит 2022-11-25
$d = date.nearPast(10) // $d содержит 2023-12-10 |
date.future(day int) string
Назначение: возвращает дату, соответствующую указанному дню в следующем месяце.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 2022-12-20
$d = date.future(25) // $d содержит 2023-01-25
$d = date.future(10) // $d содержит 2023-01-10 |
date.past(day int) string
Назначение: возвращает дату, соответствующую указанному дню в прошлом месяце.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 2022-12-20
$d = date.past(25) // $d содержит 2022-11-25
$d = date.past(10) // $d содержит 2022-11-10 |
time.nearFuture(minute int) string
Назначение: возвращает ближайшее будущее к текущему время по заданному количеству минут.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 23:30:00
$t = time.nearFuture(45) // $t содержит 23:45:00
$t = time.nearFuture(15) // $t содержит 00:15:00 |
time.nearPast(minute int) string
Назначение: возвращает ближайшее прошлое к текущему время по заданному количеству минут.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 23:30:00
$t = time.nearPast(45) // $t содержит 22:45:00
$t = time.nearPast(15) // $t содержит 23:15:00 |
time.future(minute int) string
Назначение: возвращает время, соответствующее указанному числу минут в следующем часе.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 23:30:00
$t = time.future(45) // $t содержит 00:45:00
$t = time.future(15) // $t содержит 00:15:00 |
time.past(minute int) string
Назначение: возвращает время, соответствующее указанному числу минут в прошедшем часе.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Допустим сейчас 23:30:00
$t = time.past(45) // $t содержит 22:45:00
$t = time.past(15) // $t содержит 22:15:00 |
Функции по работе с очередью сообщений пользователя
queue.size() int
Назначение: определение размера очереди сообщений пользователя.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$messageCount = queue.size() // $messageCount содержит число сообщений пользователя за всё время диалога |
queue.last() ?UserMessage
Назначение: возвращает последнее сообщение пользователя либо nil, если очередь сообщений пуста.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$lastMessage = queue.last() // $lastMessage содержит последнее на данный момент сообщение пользователя |
queue.first() ?UserMessage
Назначение: возвращает первое сообщение пользователя либо nil, если очередь сообщений пуста.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$firstMessage = queue.first() // $firstMessage содержит первое сообщение пользователя за всё время диалога |
queue.nth(index int) ?UserMessage
Назначение: возвращает сообщение пользователя по его порядковому номеру, начиная с 1.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| linenumbers | true |
|---|
|
$message = queue.nth(1) // $message содержит первое сообщение пользователя
$message = queue.nth(5) // $message содержит пятое сообщение пользователя |
queue.lastNth(index int) ?UserMessage
Назначение: возвращает сообщение пользователя по его порядковому номеру, считая с конца очереди. Последнее сообщение соответствует порядковому номеру 1.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$message = queue.lastNth(1) // $message содержит последнее сообщение пользователя
$message = queue.lastNth(5) // $message содержит пятое с конца очереди сообщение пользователя |
Функции для работы с сообщениями бота
msg.addAction(actionType string, actionData Collection|nil = nil)
Назначение: добавление действия к текущему сообщению бота.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
msg.addAction(
"prompter_suggestions",
{
"suggestions": [
{
"message": "some message",
"intent": {
"name": "some name",
"confidence": 0.9999,
},
"something": "bla-bla-bla",
},
],
},
) |
Функции для работы с файлами
file.download(url string) string
Назначение: загрузка файла по указанному адресу.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$fileId = file.download("http://some.file.url") // $fileId будет содержать идентификатор файла |
Функции для работы с фактами
fact.save(context string, factName string, factValue mixed, botId string = nil, clientId string = nil)
Назначение: сохраняет факт в базе фактов.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
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
Назначение: извлекает факт из базы фактов.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Сохраняет факт с привязкой к боту и клиенту
$city = fact.load("место", "город", @botId, @clientId) // Загружаем факт в переменную. $city содержит "Екатеринбург" |
fact.delete(context string, factName string, botId string = nil, clientId string = nil)
Назначение: удаляет факт из базы фактов.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Сохраняет факт с привязкой к боту и клиенту
$city = fact.load("место", "город", @botId, @clientId) // Загружаем факт в переменную. $city содержит "Екатеринбург"
fact.delete("место", "город", @botId, @clientId) // Удаляем факт
$city = fact.load("место", "город", @botId, @clientId) // Пытаемся загрузить удалённый факт. Теперь $city содержит nil. |
fact.clean(contexts string|List, factNames string|List = nil, factValues any = nil, botIds string|List = nil, clientIds string|List = nil)
Назначение: удаляет факты из базы фактов.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Удалить все факты:
// - для контекста ctx;
// - факты с названиями fact1 и fact2;
// - все факты со значениями 123 и true;
// - все факты бота fa5d268c-bcc9-4734-a10f-3dfd357764ac
// - все факты текущего клиента.
fact.clean("ctx", ["fact1", "fact2"], [123, true], "fa5d268c-bcc9-4734-a10f-3dfd357764ac", @clientId) |
fact.query() FactQuery
Назначение: возвращает экземпляр FactQuery для построения и выполнения запросов к базе фактов.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Добавили пару фактов в базу
fact.save("место", "страна", "Россия")
fact.save("место", "город", "Екатеринбург")
// Загрузили в $places список мест, отсортированных по имени факта в порядке убывания:
// [{"name": "город", "value": "Россия"}, {"name": "страна", "value": "Екатеринбург"}]
$places = fact.query().
select("name,value").
where("context", "=", "место").
sortBy("-name").
rows() |
fact.cond() FactQueryCondition
Назначение: возвращает экземпляр FactQueryCondition для построения составных условий в запросах к базе фактов.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Добавили факты в базу
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
Назначение: запускает таймер обратного отсчёта. По истечении указанного времени бот осуществит переход на указанный узел (блок).
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$timerId = timer.start(60, "760b9732-4bfb-4846-a348-faae5138fcb2") // $timerId содержит уникальный идентификатор таймера на 60 секунд |
timer.stop(timerId string)
Назначение: останавливает (удаляет) таймер обратного отсчёта.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$timerId = timer.start(60, "760b9732-4bfb-4846-a348-faae5138fcb2")
timer.stop($timerId) // останавливаем (удаляем) таймер |
timer.stopAll()
Назначение: останавливает (удаляет) все таймеры обратного отсчёта.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// запускаем два таймера
timer.start(60, "760b9732-4bfb-4846-a348-faae5138fcb2")
timer.start(120, "760b9732-4bfb-4846-a348-faae5138fcb2")
// останавливаем все таймеры
timer.stopAll() |
Функции для работы с текстом на естественном языке (NLP)
nlp.parse(message string|UserMessage) Sentence
Назначение: парсит текст на естественном языке.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$sentence = nlp.parse(queue.first()) // парсим первое сообщение пользователя |
nlp.join(message1 string|UserMessage, message2 string|UserMessage) Sentence
Назначение: объединяет два текста на естественном языке в одно и затем парсит его.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$sentence = nlp.join(queue.lastNth(2), queue.lastNth(1)) // объединяем предпоследнее и последнее сообщения пользователя и затем парсим его |
nlp.setPerception($sentence Sentence)
Назначение: позволяет установить сообщение пользователя для обработки в других узлах (блоках) схемы бота.
...
Возвращаемое значение: отсутствует.
| Примечание |
|---|
Стоит учитывать, что setPerception устанавливает текст только для обработки в следующем блоке. Если обработки не последовало, то значение perception очищается. Если между использованием функции setPerception и обработкой текста будут идти другие блоки, то обработка не произойдет. |
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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, confidenceThreshold float = -1) Sentence
Purpose: разбор текста на естественном языке. Выявление намерений и сущностей.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Пример использования |
|---|
| linenumbers | true |
|---|
|
$sentence = nlu.parse("Доброе утро Вася!", "d926726a-5acb-4233-8c1e-ce4300921de0") |
Функции для работы с HTTP
http.sendRequest(url string, method string, body any = nil, headers Map = nil) Response
Назначение: отправляет HTTP запрос на указанный URL.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Тело Xml запроса в виде структур данных BPL
$requestBody = [
{
"tag": "xml",
"value": [
{
"tag": "head",
"value": [
{
"tag": "title",
"value": "chapter 2",
},
],
},
{
"tag": "body",
"value": [
{
"tag": "div",
"attributes": {
"class": "color",
"style": "display:block;",
},
"value": [
"Some",
{
"tag": "br",
},
"text",
],
},
{
"tag": "div",
"attributes": {
"id": "a12",
},
"value": [
{
"tag": "i",
"value": "Another text",
},
{
"tag": "span",
"expand": true, // если true, то тэг с пустым значением будет иметь закрывающий тэг
},
],
},
],
},
],
},
]
// Это тело автоматически будет преобразовано в строку
// <xml><head><title>Chapter 2</title></head><body><div class="color" style="display:block;">Some<br />text</div><div id="a12"><i>Another text</i><span></span></div></body></xml>
$response = http.sendRequest("http://some.url", "POST", $requestBody, {"Content-Type": "text/xml"})
// Если тип содержимого ответа xml, то тело ответа будет автоматически преобразовано в структуру BPL (в переменной $body).
$body = $response.body |
http.request(url string = "", method string = "POST", body any = nil) Request
Назначение: формирует новый объект HTTP-запроса.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Пример использования |
|---|
| linenumbers | true |
|---|
|
$response = http.request("https://some.url", "POST", {"param1": 123, "param2": true}).
headers({"Content-Type": "application/json"}).
timeout(300).
send() |
Объект Request
timeout(timeout int) Request
Назначение: задаёт максимально допустимое время запроса в секундах. Если запрос отрабатывается дольше указанного времени, то его выполнение прерывается.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.request("https://some.url", "GET").
timeout(300).
send() |
url(url string) Request
Назначение: задаёт URL запроса.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Пример использования |
|---|
| linenumbers | true |
|---|
|
$response = http.request().
url("http://some.url?p1=v1&p2=v2").
method("GET").
send() |
method(method string) Request
Назначение: задаёт HTTP-метод запроса.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.request().
url("http://some.url?p1=v1&p2=v2").
method("GET").
send() |
body(body any) Request
Назначение: задаёт тело запроса.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.request().
url("http://some.url?p1=v1&p2=v2").
method("PUT").
body("some body").
send() |
Назначение: добавляет HTTP заголовок.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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() |
Назначение: задаёт HTTP-заголовки.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Пример использования |
|---|
| linenumbers | true |
|---|
|
$response = http.request().
url("http://some.url").
method("POST").
header("Content-Type", "multipart/form-data").
file($fileId, "file").
send() |
send() Response
Назначение: отправляет сформированный запрос.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Пример использования |
|---|
| linenumbers | true |
|---|
|
$response = http.request("http://some.url?p1=v1&p2=v2", "PUT", "some body").
headers({"header1": "...", "header2": "...").
send() |
Объект Response
statusCode int
Назначение: код статуса ответа.
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$code = $response.statusCode |
body any
Назначение: тело ответа.
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$body = $response.body |
Назначение: заголовки ответа.
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$headers = $response.headers |
error string
Назначение: значение элемента error тела ответа или пустая строка, если такого элемента нет.
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$error = $response.error |
isError() bool
Назначение: определение успешности ответа.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$isError = $response.isError() |
isSuccessful() bool
Назначение: определение успешности ответа.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$isSuccessful = $response.isSuccessful() |
Назначение: определение наличия заголовка.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$hasContentType = $response.hasHeader("Content-Type") |
Назначение: получение значения заголовка.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$contentType = $response.header("Content-Type") |
toFile() string
Назначение: получение файла из HTTP-ответа.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$response = http.sendRequest("http://some.url", "GET")
$fileId = $response.toFile() |
Системные функции
sys.sleep(microseconds int)
Назначение: останавливает работу бота на указанное количество микросекунд. Если количество микросекунд превышает 1 минуту, то пауза будет уменьшена до 1 минуты.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
sys.sleep(3_000_000) // Пауза в 3 секунды |
Функции для работы с GPT-3.5 turbo (устаревшее)
gpt3.ask(text string, temperature float = 0.7, useContext bool = false, maxTokens int = 0, timeout int = 0) string
| HTML |
|---|
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://openai.com/blog/chatgpt" target="_blank">ChatGPT3</a> и возвращает её ответ. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$answer = gpt3.ask("Есть ли жизнь на Марсе?", 0.5, true, 500, 10) // В $answer будет ответ нейросети на заданный вопрос |
Функции для работы с GPT-4(устаревшее)
gpt4.ask(text string, temperature float = 0.7, useContext bool = false, maxTokens int = 0, timeout int = 0) string
| HTML |
|---|
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://openai.com/blog/chatgpt" target="_blank">ChatGPT4</a> и возвращает её ответ. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$answer = gpt4.ask("Есть ли жизнь на Марсе?", 0.5, true, 500, 10) // В $answer будет ответ нейросети на заданный вопрос |
Функции для работы с GPT
gpt.ask(model string, text string, temperature float = 0.7, useContext bool = false, maxTokens int = 0, timeout int = 0) string
| HTML |
|---|
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://openai.com/blog/chatgpt" target="_blank">ChatGPT</a> и возвращает её ответ. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$answer = gpt.ask("gpt-44o-1106-previewmini", "Есть ли жизнь на Марсе?", 0.5, true, 500, 10) // В $answer будет ответ нейросети на заданный вопрос |
gpt.createThread() string
| HTML |
|---|
<b>Назначение:</b> создаёт разговорную сессию с GPT ассистентом. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$threadId = gpt.createThread() |
gpt.deleteThread(threadId string)
| HTML |
|---|
<b>Назначение:</b> удаляет разговорную сессию с GPT ассистентом. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
gpt.deleteThread($threadId) |
gpt.assist(assistantId string, threadId string, messages string|Collection, model string = '', instructions string = '', additionalInstructions string = '', temperature float = 0.7, maxTokens int = 0, timeout int = 0) string
| HTML |
|---|
<b>Назначение:</b> отправляет сообщение в ассистента чат GPT и возвращает его ответ. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$answer = gpt.assist($assistId, $threadId, "Есть ли жизнь на Марсе?", "gpt-3.5-turbo-11064o-mini", "", "", 0.5, 500, 10) // В $answer будет ответ нейросети на заданный вопрос |
Функции для работы с YandexGPT
ygpt.ask(model string, text string, temperature float = 0.7, maxTokens int = 0, timeout int = 0) string
| HTML |
|---|
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://ya.ru/ai/gpt-3" target="_blank">YandexGPT</a> и возвращает её ответ. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$answer = ygpt.ask("yandexgpt/latest", "Есть ли жизнь на Марсе?", 0.5, 500, 15) // В $answer будет ответ нейросети на заданный вопрос |
Функции для работы с RekaAI
reka.ask(model string, text string, temperature float = 0.7, maxTokens int = 0, timeout int = 0) string
| HTML |
|---|
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://www.reka.ai/" target="_blank">Reka</a> и возвращает её ответ. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$answer = reka.ask("reka-core", "Есть ли жизнь на Марсе?", 0.5, 500, 15) // В $answer будет ответ нейросети на заданный вопрос |
Функции для работы с GigaChat
gigachat.ask(model string, text string, temperature float = 0.7, maxTokens int = 0, timeout int = 0) string
| HTML |
|---|
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://developers.sber.ru/portal/products/gigachat-api" target="_blank">GigaChat</a> и возвращает её ответ. |
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$answer = gigachat.ask("GigaChat", "Есть ли жизнь на Марсе?", 0.5, 500, 15) // В $answer будет ответ нейросети на заданный вопрос |
Функции для работы с атрибутами клиента
clients.setAttributes (clientId string, attributes array)
Назначение: установка атрибутов клиента
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| title | Пример использования |
|---|
| linenumbers | true |
|---|
|
clients.setAttributes(@clientId, {"74eb7a40-36d5-4db9-b4a1-abe435fd5f0d": "Firstame", "b87e9a3e-21ad-4b42-aab1-fdc52a13c769": "Lastname", "d5443075-e79d-4d1c-bdca-1c0a1965a078": "example@email.com"}); |
Функции для работы с YCLIENTS
Для работы с функциями yclients у вас должно быть установлено наше приложение: https://yclients.com/e/mp_364_twin/
yclients.createRecord(salonId int, params Map) ?int
Назначение: записывает клиента на услугу.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$recordId = yclients.createRecord(25344, {"staffId": 2303331, "services": [{"id": 11428840}], "client": {"phone": "79876543210", "name": "Семён", "email": "semen@gmail.com"}, "datetime": "2023-06-07 15:00", "seanceLength": 3600,"saveIfBusy": false, "sendSms": false, "comment": "Комментарий к записи", "smsRemainHours": 1, "emailRemainHours": 12, "attendance": 2, "customFields": {"priority":"high"}, "recordLabels": ["67345", "78549"], "customColor": nil, "apiId": "7894"}); |
yclients.recordDetails(salonId int, recordId int) ?Map
Назначение: получает данные о записи.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$record = yclients.recordDetails(25344, 52157914);
// $record будет содержать:
// {
// "id": 52157914,
// "client": {
// "id": 167359987,
// "name": "Семён",
// "surname": "",
// "phone": "+79876543210",
// "card": "",
// "email": "semen@gmail.com"
// },
// "staff": {
// "id": 2303331,
// "name": "Анисимова Полина",
// "specialization": "специалист",
// "position": {
// "id": 231647,
// "title": "Парикмахер"
// }
// },
// "services": [
// {
// "id": 11440288,
// "title": "Стрижка",
// "cost": 1000,
// "costToPay": 0,
// "manualCost": 0,
// "costPerUnit": 0,
// "discount": 0,
// "firstCost": 0,
// "amount": 1
// }
// ],
// "date": "2023-06-03T14:33:00+00:00",
// "createDate": "2023-05-31T05:51:44+00:00",
// "comment": "",
// "attendance": 2,
// "length": 4200,
// "lastChangeDate": "2023-06-02T10:26:50+00:00",
// "prepaid": false,
// "prepaidConfirmed": false,
// "deleted": true,
// "apiId": "7894"
//} |
yclients.rescheduleRecord(salonId int, recordId int, datetime string) bool
Назначение: переносит запись на новое время.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$success = yclients.rescheduleRecord(25344, 52157914, "2023-06-07 16:00"); |
yclients.confirmRecord(salonId int, recordId int) bool
Назначение: подтверждает запись.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$success = yclients.confirmRecord(25344, 52157914); |
yclients.cancelRecord(salonId int, recordId int) bool
Назначение: отменяет запись.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$success = yclients.cancelRecord(25344, 52157914); |
yclients.deleteRecord(salonId int, recordId int) bool
Назначение: удаляет запись.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$success = yclients.deleteRecord(25344, 52157914); |
yclients.searchRecords(salonId int, filters Map) ?List
Назначение: поиск записей по филиалу.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$records = yclients.searchRecords(25344);
//$records будет содержать:
//[
// {
// "id": 52157914,
// "companyId": 25344,
// "staffId": 2303331,
// "services": [
// {
// "id": 11440288,
// "title": "Стрижка",
// "cost": 1000,
// "manualCost": 1000,
// "costPerUnit": 1000,
// "discount": 0,
// "firstCost": 1000,
// "amount": 1
// }
// ],
// "staff": {
// "id": 2303331,
// "name": "Сотрудник 2",
// "specialization": "мужской мастер",
// "position": {
// "id": 264317,
// "title": "Парикмахер"
// },
// "avatar": "",
// "avatarBig": "",
// "rating": 0,
// "votesCount": 0
// },
// "date": "2023-08-13T07:40:00+00:00",
// "datetime": "2023-08-13T04:40:00+00:00",
// "createDate": "2023-08-08T11:18:04+00:00",
// "comment": "",
// "online": false,
// "visitAttendance": 0,
// "attendance": 0,
// "confirmed": true,
// "seanceLength": 3600,
// "length": 3600,
// "smsBefore": true,
// "smsNow": false,
// "smsNowText": "",
// "emailNow": false,
// "notified": false,
// "masterRequest": true,
// "apiId": "",
// "fromUrl": "",
// "reviewRequested": false,
// "visitId": 0,
// "createdUserId": 787095,
// "paidFull": 1,
// "prepaid": false,
// "prepaidConfirmed": false,
// "lastChangeDate": "2023-08-08T11:18:04+00:00",
// "customColor": "",
// "customFontColor": "",
// "recordLabels": [
// {
// "id": 104474,
// "title": "категория",
// "color": "#3b2c54"
// "icon": "icon"
// "fontColor": "#ffffff"
// }
// ],
// "activityId": 0,
// "documents": [
// {
// "id": 8172893,
// "typeId": 7,
// "storageId": 0,
// "userId": 787095,
// "companyId": 25344,
// "number": 8172893,
// "comment": "",
// "dateCreated": "2023-08-13T06:40:00+00:00",
// "categoryId": 0,
// "visitId": 0,
// "recordId": 52157914,
// "typeTitle": "Визит"
// }
// ],
// "smsRemainHours": null,
// "emailRemainHours": null,
// "bookformId": 0,
// "recordFrom": "",
// "isMobile": false,
// "isSaleBillPrinted": false
// }
//] |
yclients.recordsByVisits(salonId int, filters Map) ?List
Назначение: поиск записей по истории посещений клиента.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$records = yclients.recordsByVisits(25344, {"clientId": 2303331});
//$records будет содержать:
//[
// {
// "id": 52157914,
// "comment": "",
// "date": "2023-06-21T15:00:00+00:00",
// "visitId": 550229870,
// "attendance": 0,
// "services": [
// {
// "id": 11440288,
// "title": "Стрижка",
// "firstCost": 1000,
// "discountPercent": 0,
// "costToPay": 1000,
// "paidSum": 0,
// "paymentStatus": "not_paid"
// }
// ],
// "staff": {
// "id": 2331303,
// "name": "Сотрудник 1",
// "companyId": 25344,
// "specialization": "специалист",
// "avatar": "",
// "avatarBig": "",
// "position": {
// "id": 264317,
// "title": "Парикмахер"
// }
// },
// "company": {
// "id": 25344,
// "title": "Twin"
// },
// "tips": {
// "hasTips": false,
// "sum": null
// },
// "comer": null
// }
//] |
yclients.bookingDates(salonId int, serviceIds List = nil, staffId int = nil, date string = nil) ?Map
Назначение: запрашивает даты доступные для бронирования.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Запрашивает даты доступные для бронирования
$dates = yclients.bookingDates(25344);
// Запрашивает даты доступные для бронирования с фильтром по услугам
$dates = yclients.bookingDates(25344, [75426, 58654]);
// Запрашивает даты доступные для бронирования с фильтром по сотруднику
$dates = yclients.bookingDates(25344, nil, 2303331);
// Запрашивает даты доступные для бронирования с фильтром по дате
$dates = yclients.bookingDates(25344, nil, nil, "2023-06-08");
// Запрашивает даты доступные для бронирования с фильтром по сотруднику и дате
$dates = yclients.bookingDates(25344, nil, 2303331, "2023-06-08");
// Запрашивает даты доступные для бронирования с фильтром по услугам и дате
$dates = yclients.bookingDates(25344, [75426, 58654], nil, "2023-06-08");
// $dates будет содержать:
// {
// "bookingDays": {
// "6": [
// 20,
// 21,
// 22,
// 23,
// 24,
// 25,
// 26,
// 27,
// 28,
// 29,
// 30
// ],
// "7": [
// 1,
// 2,
// 3,
// 4,
// 8,
// 9,
// 12,
// 14,
// 20,
// 26,
// 28
// ],
// "8": [
// 1,
// 5,
// 7
// ]
// },
// "bookingDates": [
// "2023-06-20",
// "2023-06-21",
// "2023-06-22",
// "2023-06-23",
// "2023-06-24",
// "2023-06-25",
// "2023-06-26",
// "2023-06-27",
// "2023-06-28",
// "2023-06-29",
// "2023-06-30",
// "2023-07-01",
// "2023-07-02",
// "2023-07-03",
// "2023-07-04",
// "2023-07-08",
// "2023-07-09",
// "2023-07-12",
// "2023-07-14",
// "2023-07-20",
// "2023-07-26",
// "2023-07-28",
// "2023-08-01",
// "2023-08-05",
// "2023-08-07"
// ],
// "workingDays": {
// "6": [
// 20,
// 21,
// 22,
// 23,
// 24,
// 25,
// 26,
// 27,
// 28,
// 29,
// 30
// ],
// "7": [
// 1,
// 2,
// 3,
// 4,
// 8,
// 9,
// 12,
// 14,
// 20,
// 26,
// 28
// ],
// "8": [
// 1,
// 5
// ]
// },
// "workingDates": [
// "2023-06-20",
// "2023-06-21",
// "2023-06-22",
// "2023-06-23",
// "2023-06-24",
// "2023-06-25",
// "2023-06-26",
// "2023-06-27",
// "2023-06-28",
// "2023-06-29",
// "2023-06-30",
// "2023-07-01",
// "2023-07-02",
// "2023-07-03",
// "2023-07-04",
// "2023-07-08",
// "2023-07-09",
// "2023-07-12",
// "2023-07-14",
// "2023-07-20",
// "2023-07-26",
// "2023-07-28",
// "2023-08-01",
// "2023-08-05"
// ]
// } |
yclients.bookingServices(salonId int, serviceIds List = nil, staffId int = nil, date string = nil) ?Map
Назначение: запрашивает услуги доступные для бронирования.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Запрашивает доступные услуги
$services = yclients.bookingServices(25344);
// Запрашивает доступные услуги с учетом только необходимых
$services = yclients.bookingServices(25344, [75426, 58654]);
// Запрашивает доступные услуги сотрудника
$services = yclients.bookingServices(25344, nil, 2303331);
// Запрашивает доступные услуги на определенное время
$services = yclients.bookingServices(25344, nil, nil, "2023-06-08 12:00");
// Запрашивает доступные услуги сотрудника на определенное время
$services = yclients.bookingServices(25344, nil, 2303331, "2023-06-08 12:00");
// $services будет содержать:
// {
// "services": [
// {
// "id": 11440288,
// "title": "Стрижка",
// "categoryId": 11440287,
// "priceMin": 1000,
// "priceMax": 2000,
// "discount": 0,
// "comment": "",
// "weight": 2,
// "active": 1,
// "sex": 0,
// "image": "",
// "prepaid": "forbidden",
// "seanceLength": 3600, // в секундах. возвращается если задан фильтр по сотруднику, в ином случае вернется null
// "abonementRestriction": 0,
// "prepaidSettings": {
// "status": "forbidden",
// "prepaidFull": {
// "amount": 1000,
// "currency": "RUB"
// },
// "prepaidMin": {
// "amount": 1000,
// "percent": 100,
// "currency": "RUB"
// }
// }
// },
// {
// "id": 12685752,
// "title": "Окрашивание",
// "categoryId": 11440287,
// "priceMin": 3000,
// "priceMax": 3000,
// "discount": 0,
// "comment": "",
// "weight": 0,
// "active": 1,
// "sex": 0,
// "image": "",
// "prepaid": "forbidden",
// "seanceLength": null,
// "abonementRestriction": 0,
// "prepaidSettings": {
// "status": "forbidden",
// "prepaidFull": {
// "amount": 3000,
// "currency": "RUB"
// },
// "prepaidMin": {
// "amount": 3000,
// "percent": 100,
// "currency": "RUB"
// }
// }
// }
// ],
// "categories": [
// {
// "id": 11440287,
// "title": "Категория услуг",
// "sex": 0,
// "apiId": 0,
// "weight": 1
// }
// ]
// } |
yclients.bookingStaff(salonId int, serviceIds List = nil, date string = nil) ?List
Назначение: запрашивает сотрудников доступных для бронирования.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Запрашивает доступных сотрудников
$staff = yclients.bookingStaff(25344);
// Запрашивает доступных сотрудников с учетом услуг
$staff = yclients.bookingStaff(25344, [75426, 58654]);
// Запрашивает доступных сотрудников с учетом даты
$staff = yclients.bookingStaff(25344, nil, "2023-06-08");
// Запрашивает доступных сотрудников на определенную дату с учетом услуг
$staff = yclients.bookingStaff(25344, [75426, 58654], "2023-06-08");
// $staff будет содержать:
// [
// {
// "id": 2631363,
// "apiId": null,
// "name": "Сотрудник 2",
// "specialization": "мужской мастер",
// "rating": 0,
// "showRating": 1,
// "userId": null,
// "avatar": "https://be.cdn.yclients.com/images/no-master-sm.png",
// "avatarBig": "https://be.cdn.yclients.com/images/no-master.png",
// "commentsCount": 0,
// "votesCount": 0,
// "bookable": true,
// "information": "",
// "positionId": 263147,
// "scheduleTill": "2023-08-31",
// "weight": 2,
// "fired": 0,
// "status": 0,
// "hidden": 0,
// "user": null,
// "prepaid": "forbidden",
// "position": {
// "id": 217643,
// "title": "Парикмахер"
// }
// },
// {
// "id": 2331303,
// "apiId": null,
// "name": "Сотрудник 1",
// "specialization": "специалист",
// "rating": 0,
// "showRating": 1,
// "userId": null,
// "avatar": "https://be.cdn.yclients.com/images/no-master-sm.png",
// "avatarBig": "https://be.cdn.yclients.com/images/no-master.png",
// "commentsCount": 0,
// "votesCount": 0,
// "bookable": true,
// "information": "",
// "positionId": 231647,
// "scheduleTill": "2023-07-02",
// "weight": 1,
// "fired": 0,
// "status": 0,
// "hidden": 0,
// "user": null,
// "prepaid": "forbidden",
// "position": {
// "id": 217643,
// "title": "Парикмахер"
// }
// }
// ]
|
yclients.bookingStaffSeances(salonId int, staffId int, serviceIds List = nil, date string = nil) ?Map
Назначение: запрашивает ближайшие доступные сеансы сотрудника
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Запрашивает доступные сеансы сотрудника
$staffSeances = yclients.bookingStaffSeances(25344, 2331303);
// Запрашивает доступные сеансы сотрудника с учетом услуг
$staffSeances = yclients.bookingStaffSeances(25344, 2331303, [75426, 58654]);
// $staffSeances будет содержать:
// {
// "seanceDate": "2023-06-20",
// "seances": [
// {
// "time": "13:00",
// "seanceLength": 3600,
// "sumLength": 3600,
// "datetime": "2023-06-20T10:00:00+00:00"
// },
// {
// "time": "13:30",
// "seanceLength": 3600,
// "sumLength": 3600,
// "datetime": "2023-06-20T10:30:00+00:00"
// }
// ]
// }
|
yclients.bookingTimes(salonId int, staffId int, date string, serviceIds List = nil) ?List
Назначение: запрашивает список сеансов доступных для бронирования
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Запрашивает доступные сеансы сотрудника
$times = yclients.bookingTimes(25344, 2331303, "2023-06-20");
// Запрашивает доступные сеансы сотрудника на определенные услуги
$times = yclients.bookingTimes(25344, 2331303, "2023-06-20", [75426, 58654]);
// $times будет содержать:
// [
// {
// "time": "6:00",
// "seanceLength": 3600,
// "sumLength": 3600,
// "datetime": "2023-06-21T03:00:00+00:00"
// },
// {
// "time": "6:30",
// "seanceLength": 3600,
// "sumLength": 3600,
// "datetime": "2023-06-21T03:30:00+00:00"
// },
// {
// "time": "19:00",
// "seanceLength": 3600,
// "sumLength": 3600,
// "datetime": "2023-06-21T16:00:00+00:00"
// }
// ]
|
yclients.searchClient(salonId int, filters Map) ?int
Назначение: производит поиск клиента по передаваемым фильтрам
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Поиск клиента по номеру телефона
$clientId = yclients.searchClient(1, {'phone': '11111111111'});
// Поиск клиента по почте
$clientId = yclients.searchClient(1, {'email': 'test@mail.com'});
|
yclients.clientDetails(salonId int, clientId int) ?Map
Назначение: получает данные о клиенте
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$client = yclients.clientDetails(1, 1);
// $client будет содержать:
// {
// "id": 1,
// "email": "test@mail.com",
// "name": "name",
// "surname": "",
// "patronymic": "",
// "phone": "+111111111",
// "categories": [],
// "sex": "Неизвестно",
// "discount": 0,
// "importance": "Без класса важности",
// "card": "",
// "birthDate": "",
// "comment": "",
// "smsCheck": false,
// "smsNot": false,
// "spent": 0,
// "balance": 0,
// "visits": 0,
// "lastChangeDate": "2022-12-19T10:47:21+0400",
// "customFields": []
//}
|
yclients.createClient(salonId int, params Map) ?int
Назначение: создает нового клиента
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$clientId = yclients.createClient(1, {'name': 'Имя', 'phone': '1111111111111', 'email': 'testclient@mail.com', 'sexId': 1, 'birthDate': '1999-01-01'});
|
yclients.updateClient(salonId int, clientId int, params Map) bool
Назначение: редактирует информацию клиента
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$client = yclients.updateClient(1, 1, {'name': 'Имя', 'phone': '1111111111111', 'email': 'updateclient@mail.com'});
|
Назначение: добавляет комментарий к клиенту
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$commentId = yclients.createClientComment(1, 1, 'text');
|
Объект FactQuery
Используя методы этого объекты, вы можете выполнять и строить разнообразные запросы к базе фактов. База фактов представляет собой список записей. Каждая запись представляет собой единичный факт, состоящий из следующих частей (полей):
- Контекст (context). Произвольная строка, длина которой не превышает 255 символов. Обозначает некоторую предметную область, в рамках которой существует факт. Может участвовать в поиске.
- Имя факта (name). Произвольная строка, длина которой не превышает 255 символов. Служит для идентификации факта в заданном контексте. Может участвовать в поиске.
- Значение факта (value). Любое значение. Это и есть та информация, которую мы трактуем как факт. Не может участвовать в поиске (технически может, но результат не определен).
- Идентификатор бота (botId). Может быть задан при сохранении факта с целью привязки факта к боту. Может участвовать в поиске.
- Идентификатор клиента (clientId). Может быть задан при сохранении факта с целью привязки факта к клиенту. Может участвовать в поиске.
select(fields string|Collection) FactQuery
Назначение: задаёт список полей из базы фактов, значения которых следует вернуть в результате запроса. Если метод select не вызывался, то будут возвращены поля context, name и value.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$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).
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Ищем факты, у которых 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).
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Ищем факты, у которых 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
Назначение: задаёт сортирову фактов по указанным полям.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Получаем все факты для бота с двойной сортировкой:
// Сначала по контексту по возрастанию (т.е. в алфавитном порядке)
// И далее по имени факта по убыванию.
$facts = fact.query().
select("name,value").
where("botId", "=", @botId)
sortBy("+context,-name"). // Можно также использовать коллеции. Например, sortBy(["+context", "-name"])
rows() |
limit(limit int) FactQuery
Назначение: ставит ограничение на максимальное количество извлекаемых фактов.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Получаем первые 10 фактов
$facts = fact.query().
select("name,value").
sortBy("name").
limit(10).
rows() |
skip(count int) FactQuery
Назначение: задаёт количество фактов, которые следует пропустить при поиске.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Пропускаем 5 первых фактов и извлекаем следующие 10
$facts = fact.query().
select("name,value").
sortBy("name").
skip(5).
limit(10).
rows() |
one() mixed
Назначение: возвращает первое указанное через select поле первого найденного факта.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Извлекает имя первого найденного факта
$firstFactName = fact.query().
select("name,value"). // value хоть и указано, но будет проигнорировано
one() |
column() List
Назначение: возвращает список, состоящий из всех значений первого выбранного поля найденных фактов.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Извлекает список имён всех найденных фактов
$names = fact.query().
select("name,value"). // value хоть и указано, но будет проигнорировано
column() |
row() Map
Назначение: возвращает все выбранные поля в виде ассоциативного массива для первого найденного факта.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Извлекает имя и значение первого найденного факта
$names = fact.query().
select("name,value").
row() |
rows() List<Map>
Назначение: возвращает список всех найденных фактов. Каждый факт возвращается как ассоциативный массив, ключами которого являются поля факта, а значениями – значения полей.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
// Извлекает имя и значение всех фактов
$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
Назначение: оригинальный текст сообщения.
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Пример использования |
|---|
| linenumbers | true |
|---|
|
$msg = queue.last().message // $msg содержит текст последнего сообщения пользователя |
attachments List<string>
Назначение: список идентификаторов файлов, приложенных к сообщению.
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Пример использования |
|---|
| linenumbers | true |
|---|
|
$attachments = queue.first().attachments // $attachments содержит список вложений первого сообщения пользователя. |
isEmpty() bool
Назначение: определяет пустое ли сообщение.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Пример использования |
|---|
| linenumbers | true |
|---|
|
$isEmpty = queue.last().isEmpty() // $isEmpty содержит true, если последнее сообщение пользователя пустое, и false в противном случае |
hasAttachments() bool
Назначение: определяет, есть ли вложения в данном сообщении.
...
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Пример использования |
|---|
| linenumbers | true |
|---|
|
$hasAttachments = queue.first().hasAttachments() // $hasAttachments содержит true, если первое сообщение пользователя имеет вложения, и false в противном случае |
Объект Sentence
intent string
Назначение: распознанное намерение.
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$sentence = nlu.parse("Привет Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$intent = $sentence.intent // $intent содержит "greeting" |
intentConfidence number
Назначение: степень достоверности распознанного намерения (1 – однозначное распознавание, 0 – намерение фактически нераспознанно).
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$sentence = nlu.parse("Привет Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$confidence = $sentence.intentConfidence // $confidence содержит 0.98 |
intents List<Tuple>
Назначение: список распознанных намерений. Каждый элемент списка содержит кортеж из двух элементов: название намерения (string) и его достоверность распознавания (float).
| Блок кода |
|---|
| language | php |
|---|
| theme | DJango |
|---|
| firstline | 1 |
|---|
| title | Примеры использования |
|---|
| linenumbers | true |
|---|
|
$sentence = nlu.parse("Доброе утро Вася, пора вставать", "d926726a-5acb-4233-8c1e-ce4300921de0")
$intents = $sentence.intents // $entities допустим содержит [("greetings", 0.97), ("wakeup", 0.88)]
$first = $intents.get(0) // $first содержит ("greetings", 0.97)
$intent = $first.get(0) // $intent содержит "greetings" |
entities List<Tuple>
Назначение: список распознанных сущностей. Каждый элемент списка содержит кортеж из трёх элементов: тип сущности (string), значение сущности (строка), достоверность распознавания сущности (float).
...