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

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.


Оглавление
classbpl

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

del(varName string)

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

...

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

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

math.pos(num mixed) number

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

...

Блок кода
languagephp
$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

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

...

Блок кода
languagephp
$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

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

...

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

math.not(num number) bool

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

...

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

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

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

...

Блок кода
languagephp
$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

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

...

Блок кода
languagephp
$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

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

...

Блок кода
languagephp
$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

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

...

Блок кода
languagephp
$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

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

...

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

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

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

...

Блок кода
languagephp
$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. Эквивалент бинарной операции "**".

...

Блок кода
languagephp
$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

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

...

Блок кода
languagephp
$a = math.sqrt(3.14)   // $a равно 1.772004514667
$a = math.sqrt(1.7, 5) // $a равно 0.30384

math.round(num number, precision int) number

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

...

Блок кода
languagephp
$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

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

...

Блок кода
languagephp
$str = "Какая-то строка"
$len = str.len($str) // $len будет содержать 15

str.lower(str string) string

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

...

Блок кода
languagephp
$str = "СтРоКа"
$lower = str.lower($str) // $lower будет содержать "строка" 

str.upper(str string) string

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

...

Блок кода
languagephp
$str = "СтРоКа"
$upper = str.upper($str) // $lower будет содержать "СТРОКА" 

str.ucfirst(str string) string

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

...

Блок кода
languagephp
$str = str.ucfirst("строка") // $str будет содержать "Строка" 

str.lcfirst(str string) string

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

...

Блок кода
languagephp
$str = str.ucfirst("Строка") // $str будет содержать "строка" 

str.letter(str string, index int) string

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

...

Блок кода
languagephp
$str = "Слово"
$firstLetter = str.letter($str, 0)  // Первая буква
$lastLetter = str.letter($str, -1)  // Последняя буква

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

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

...

Блок кода
languagephp
$str = "Слово"
$firstLetter = str.first($str)      // Первая буква
$secondLetter = str.first($str, 1)  // Вторая буква

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

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

...

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

str.concat(str1 string, str2 string) string

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

...

Блок кода
languagephp
$str1 = "один"
$str2 = "два"
$str = str.concat($str1, $str2) // $str будет содержать "одиндва" 

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

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

...

Блок кода
languagephp
$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

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

...

Блок кода
languagephp
$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 в качестве разделителя.

...

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

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

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

...

Блок кода
languagephp
$str = str.replace("мама мыла раму", "рам", "Даш") // $str содержит "мама мыла Дашу"

str.match(str string, pattern string) bool

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

...

Блок кода
languagephp
$isIntNumber = str.match("1.234", "/^[0-9]+$/") // $isIntNumber будет равен false
$isIntNumber = str.match("1234", "/^[0-9]+$/")  // $isIntNumber будет равен true

str.distance(str1 string, str2 string) number

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

...

Блок кода
languagephp
$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

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

...

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

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

codec.base64Encode(str string) string

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

...

Блок кода
languagephp
$encoded = codec.base64Encode("Привет!") // $encoded будет содержать строку "0J/RgNC40LLQtdGCIQ=="

codec.base64Decode(str string) ?string

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

...

Блок кода
languagephp
$decoded = codec.base64Decode("0J/RgNC40LLQtdGCIQ==") // $decoded будет содержать строку "Привет!"
$failed = codec.base64Decode("Привет!")               // $failed будет равен nil

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

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

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

...

Блок кода
languagephp
$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

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

...

Блок кода
languagephp
$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

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

...

Блок кода
languagephp
$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

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

...

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

date.nearPast(day int) string

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

...

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

date.future(day int) string

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

...

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

date.past(day int) string

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

...

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

time.nearFuture(minute int) string

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

...

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

time.nearPast(minute int) string

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

...

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

time.future(minute int) string

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

...

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

time.past(minute int) string

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

...

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

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

queue.size() int

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

...

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

queue.last() ?UserMessage

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

...

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

queue.first() ?UserMessage

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

...

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

queue.nth(index int) ?UserMessage

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

...

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

queue.lastNth(index int) ?UserMessage

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

...

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

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

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

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

...

Блок кода
languagephp
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

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

...

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

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

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

...

Блок кода
languagephp
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 для построения и выполнения запросов к базе фактов.

...

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

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

fact.cond() FactQueryCondition

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

...

Блок кода
languagephp
// Добавили факты в базу
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

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

...

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

timer.stop(timerId string)

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

...

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

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

nlp.parse(message string|UserMessage) Sentence

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

...

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

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

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

...

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

nlp.setPerception($sentence Sentence)

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

...

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

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

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

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

...

Блок кода
languagephp
$sentence = nlu.parse("Доброе утро Вася!", "d926726a-5acb-4233-8c1e-ce4300921de0")

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

http.request(url string, method string, params Collection, headers Map) Map

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

...

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

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

// Можно извлечь так
{"statusCode": $statusCode, "body": $body, "headers": $headers, "exception": $exception} = $response

// Или даже так (тут важен порядок перечисления переменных)
($statusCode, $body, $headers, $exception) = $response
// или
[$statusCode, $body, $headers, $exception] = $response

// получаем общее количество юзеров и их список
$userCount = $body.get("count")
$userList = $body.get("items")

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

sys.sleep(microseconds int)

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

...

Блок кода
languagephp
sys.sleep(3_000_000) // Пауза в 3 секунды

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

gpt3.ask(text string) string

Назначение: отправляет сообщение в демо версию нейросети RuGTP-3 и возвращает её ответ.

...

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

Объект FactQuery

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

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

select(fields string|Collection) FactQuery

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

...

Блок кода
languagephp
$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).

...

Блок кода
languagephp
// Ищем факты у которых 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).

...

Блок кода
languagephp
// Ищем факты у которых 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

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

...

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

limit(limit int) FactQuery

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

...

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

skip(count int) FactQuery

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

...

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

one() mixed

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

...

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

column() List

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

...

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

row() Map

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

...

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

rows() List<Map>

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

...

Блок кода
languagephp
// Извлекает имя и значение всех фактов
$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
$msg = queue.last().message // $msg содержит текст последнего сообщения пользователя

attachments List

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

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

isEmpty() bool

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

...

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

hasAttachments() bool

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

...

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

Объект Sentence

intent string

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

Блок кода
languagephp
$sentence = nlu.parse("Привет Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$intent = $sentence.intent   // $intent содержит "greeting"

intentConfidence number

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

Блок кода
languagephp
$sentence = nlu.parse("Привет Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$confidence = $sentence.intentConfidence   // $confidence содержит 0.98

entities List<Tuple>

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

...