Обработка переменной
Данный блок позволяет выделить из значения указанной переменной различные типы данных. Механизм выделения аналогичен механизму «Выделить из сказанного» в блоке «Распознавание».
На выходе из блока «Обработка переменной» при этом появятся два якоря:
- «Обработано». Для продолжения сценария, когда результат обработки успешен, система возвращает код проверки qc=0 или 1, которые используются только при обработке Адреса и Телефона (что означает: «обработан уверенно»);
- «Не обработано». Для продолжения сценария, когда по каким-то причинам обработка и запись в переменную не произошли.
Число
Извлекает как целые, так и вещественные числа из переменной и сохраняет их в виде числа.
Например, если абонент говорит: “Я думаю, что это один, сейчас сейчас, два, три, четыре”.
Извлеченные цифры будут сохранены в переменной как: “1234”.
Также можно воспользоваться дополнительными операциями:
- Рандомизация — создание случайных значений;
- Инкрементация — увеличивает значение переменной на единицу;
- Декрементация — уменьшает значение переменной на единицу;
- Увеличить на — увеличивает значение переменной на число, которое будет введено при выборе этой операции;
- Уменьшить на — уменьшает значение переменной.
Последовательность цифр
Выделяет числа из переменной и сохраняет их в виде последовательности, которые разделены пробелами.
Например, если абонент говорит: “Думаю один, или лучше два, а может три”,
Результат будет записан в переменную как: “1 2 3”.
Дата
Для записи даты в нужном формате необходимо заполнить шаблон, в каком представление необходимо ее записывать.
В шаблоне указывается дата и/или время в формате:
- dd — день;
- MM — месяц;
- yyyy — год;
- HH — часы;
- ss — секунды;
- mm — минуты.
Выявляет из сказанного абонентом информацию о дате, времени и преобразует в числовое представление даты и времени.
Задали шаблон dd.MM.yyyy
Абонент говорит: «Сегодня 30 мая 2024 года»
После обработки результат будет сохранен как: «30.05.2024»
I. Пример, через ‘количество’ дней/месяцев/лет:
Абонент произносит: Хотелось бы прийти, но буду свободен только через пять дней (к примеру, абонент сказал это 10.07.2024)
Результат распознавания будет: 15.07.2024
Адрес
Однако, в случае с блоком «Обработка переменной» функция возвращает не только сам адрес в правильном формате КЛАДР, но и дополнительную информацию об адресе. Эти данные можно сохранять в переменной сценария или передавать клиенту для последующего парсинга, в зависимости от необходимой обработки.
В некоторых случаях абонент может начать диктовать адрес сразу с улицы, без упоминания города или региона, из-за чего такой адрес не будет правильно обработан и сохранен в переменную.
Чтобы избежать этого, используйте поле «Уточняющая информация», указав в нем название города или регион.
Например, если все абоненты из одного города или региона, можно заранее прописать «г Москва/Московская область» в поле уточняющей информации. В этом случае к результату распознавания будет автоматически добавляться «г Москва/Московская область», и система корректно обработает такой запрос.
Если абоненты могут быть из разных городов и регионов, нужно заранее спросить у клиента, о каком городе и регионе идет речь, и сохранить его ответ в отдельную переменную. Затем эту переменную использовать в поле «Уточняющая информация» при настройке блока обработки адреса.
Массив, возвращаемый при выделении адреса:
Название | Описание |
---|---|
source | Исходный адрес одной строкой |
result | Стандартизованный адрес одной строкой |
postal_code | Индекс |
country | Страна |
country_iso_code | ISO-код страны |
federal_district | Федеральный округ |
region_fias_id | ФИАС-код региона |
region_kladr_id | КЛАДР-код региона |
region_iso_code | ISO-код региона |
region_with_type | Регион с типом |
region_type | Тип региона (сокращенный) |
region_type_full | Тип региона |
region | Регион |
area_fias_id | ФИАС-код района |
area_kladr_id | КЛАДР-код города |
area_with_type | Район в регионе с типом |
area_type | Тип района в регионе (сокращенный) |
area_type_full | Тип района в регионе |
area | Район в регионе |
city_fias_id | ФИАС-код города |
city_kladr_id | КЛАДР-код города |
city_with_type | Город с типом |
city_type | Тип города (сокращенный) |
city_type_full | Тип города |
city | Город |
city_area | Административный округ (только для Москвы) |
city_district_fias_id | ФИАС-код района города (заполняется, только если район есть в ФИАС) |
city_district_kladr_id | КЛАДР-код района города (не заполняется) |
city_district_with_type | Район города с типом |
city_district_type | Тип района города (сокращенный) |
city_district_type_full | Тип района города |
city_district | Район города |
settlement_fias_id | ФИАС-код населенного пункта |
settlement_kladr_id | КЛАДР-код населенного пункта |
settlement_with_type | Населенный пункт с типом |
settlement_type | Тип населенного пункта (сокращенный) |
settlement_type_full | Тип населенного пункта |
settlement | Населенный пункт |
street_fias_id | ФИАС-код улицы |
street_kladr_id | КЛАДР-код улицы |
street_with_type | Улица с типом |
street_type | Тип улицы (сокращенный) |
street_type_full | Тип улицы |
street | Улица |
stead_fias_id | ФИАС-код земельного участка |
stead_kladr_id | КЛАДР-код земельного участка |
stead_cadnum | Кадастровый номер земельного участка |
stead_type | «уч» |
stead_type_full | «участок» |
stead | Номер земельного участка |
house_fias_id | ФИАС-код дома |
house_kladr_id | КЛАДР-код дома |
house_cadnum | Кадастровый номер дома |
house_type | Тип дома (сокращенный) |
house_type_full | Тип дома |
house | Дом |
block_type | Тип корпуса/строения (сокращенный) |
block_type_full | Тип корпуса/строения |
block | Корпус/строение |
entrance | Подъезд |
floor | Этаж |
flat_fias_id | ФИАС-код квартиры |
flat_cadnum | Кадастровый номер квартиры |
flat_type | Тип квартиры (сокращенный) |
flat_type_full | Тип квартиры |
flat | Квартира |
flat_area | Площадь квартиры |
square_meter_price | Рыночная стоимость м² |
flat_price | Рыночная стоимость квартиры |
postal_box | Абонентский ящик |
fias_id | ФИАС-код адреса (идентификатор ФИАС) ROOM.ROOMGUID — если квартира найдена в ФИАС HOUSE.HOUSEGUID — если дом найден в ФИАС ADDROBJ.AOGUID — в противном случае |
fias_code | Не заполняется, используйте fias_id |
fias_level | Уровень детализации, до которого адрес найден в ФИАС 0 — страна 1 — регион 3 — район 4 — город 5 — район города 6 — населенный пункт 7 — улица 8 — дом 9 — квартира 65 — планировочная структура 90 — доп. территория 91 — улица в доп. территории -1 — иностранный или пустой |
fias_actuality_state | Признак актуальности адреса в ФИАС 0 — актуальный 1-50 — переименован 51 — переподчинен 99 — удален |
kladr_id | КЛАДР-код адреса |
capital_marker | Признак центра района или региона 1 — центр района (Московская обл, Одинцовский р-н, г Одинцово) 2 — центр региона (Новосибирская обл, г Новосибирск) 3 — центр района и региона (Томская обл, г Томск) 4 — центральный район региона (Тюменская обл, Тюменский р-н) 0 — ничего из перечисленного (Московская обл, г Балашиха) |
okato | Код ОКАТО |
oktmo | Код ОКТМО |
tax_office | Код ИФНС для физических лиц |
tax_office_legal | Код ИФНС для организаций |
timezone | Часовой пояс города для России, часовой пояс страны — для иностранных адресов. Если у страны несколько поясов, вернёт минимальный и максимальный через слеш: UTC+5/UTC+6 |
geo_lat | Координаты: широта |
geo_lon | Координаты: долгота |
beltway_hit | Внутри кольцевой? IN_MKAD — внутри МКАД (Москва) OUT_MKAD — за МКАД (Москва и область) IN_KAD — внутри КАД (Санкт-Петербург) OUT_KAD — за КАД (Санкт-Петербург и область) пусто — в остальных случаях |
beltway_distance | Расстояние от кольцевой в км. Заполнено, только если beltway_hit : OUT_MKAD или OUT_KAD, иначе пустое |
qc_geo | Код точности координат 0 — Точные координаты 1 — Ближайший дом 2 — Улица 3 — Населенный пункт 4 — Город 5 — Координаты не определены |
qc_complete | Код пригодности к рассылке 0 — Пригоден для почтовой рассылки 10 — Дома нет в ФИАС 5 — Нет квартиры. Подходит для юридических лиц или частных владений 8 — До почтового отделения — абонентский ящик или адрес до востребования. Подходит для писем, но не для курьерской доставки. 9 — Сначала проверьте, правильно ли Дадата разобрала исходный адрес 1 — Нет региона 2 — Нет города 3 — Нет улицы 4 — Нет дома 6 — Адрес неполный 7 — Иностранный адрес |
qc_house | Признак наличия дома в ФИАС 2 — Дом найден в ФИАС 10 — Дом не найден в ФИАС, но есть на картах 10 — Дом не найден в ФИАС, но есть похожий на картах 10 — Дом не найден в ФИАС и на картах |
qc | Код проверки адреса 0 — Адрес распознан уверенно 2 — Адрес пустой или заведомо «мусорный» 1- Остались «лишние» части. Пример: «109341 Тверская область Москва Верхние Поля» — здесь лишняя «Тверская область». Либо в исходном адресе недостаточно данных для уверенного разбора. Пример: «Сходня Красная 12» — здесь нет региона и города. 3 — Есть альтернативные варианты. Пример: «Москва Тверская-Ямская» — в Москве четыре Тверских-Ямских улицы. |
unparsed_parts | Нераспознанная часть адреса. Для адреса «Москва, Митинская улица, 40, вход с торца» вернет «ВХОД, С, ТОРЦА» |
metro | Список ближайших станций метро (до трёх штук) |
Пример ответа:
[
{
"source": "мск сухонска 11/-89",
"result": "г Москва, ул Сухонская, д 11, кв 89",
"postal_code": "127642",
"country": "Россия",
"country_iso_code": "RU",
"federal_district": "Центральный",
"region_fias_id": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
"region_kladr_id": "7700000000000",
"region_iso_code": "RU-MOW",
"region_with_type": "г Москва",
"region_type": "г",
"region_type_full": "город",
"region": "Москва",
"area_fias_id": null,
"area_kladr_id": null,
"area_with_type": null,
"area_type": null,
"area_type_full": null,
"area": null,
"city_fias_id": null,
"city_kladr_id": null,
"city_with_type": null,
"city_type": null,
"city_type_full": null,
"city": null,
"city_area": "Северо-восточный",
"city_district_fias_id": null,
"city_district_kladr_id": null,
"city_district_with_type": "р-н Северное Медведково",
"city_district_type": "р-н",
"city_district_type_full": "район",
"city_district": "Северное Медведково",
"settlement_fias_id": null,
"settlement_kladr_id": null,
"settlement_with_type": null,
"settlement_type": null,
"settlement_type_full": null,
"settlement": null,
"street_fias_id": "95dbf7fb-0dd4-4a04-8100-4f6c847564b5",
"street_kladr_id": "77000000000283600",
"street_with_type": "ул Сухонская",
"street_type": "ул",
"street_type_full": "улица",
"street": "Сухонская",
"stead_fias_id": null,
"stead_kladr_id": null,
"stead_cadnum": null,
"stead_type": null,
"stead_type_full": null,
"stead": null,
"house_fias_id": "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255",
"house_kladr_id": "7700000000028360004",
"house_cadnum": "77:02:0004008:1017",
"house_type": "д",
"house_type_full": "дом",
"house": "11",
"block_type": null,
"block_type_full": null,
"block": null,
"entrance": null,
"floor": null,
"flat_fias_id": "f26b876b-6857-4951-b060-ec6559f04a9a",
"flat_cadnum": "77:02:0004008:4143",
"flat_type": "кв",
"flat_type_full": "квартира",
"flat": "89",
"flat_area": "34.6",
"square_meter_price": "244503",
"flat_price": "8459804",
"postal_box": null,
"fias_id": "f26b876b-6857-4951-b060-ec6559f04a9a",
"fias_code": "77000000000000028360004",
"fias_level": "9",
"fias_actuality_state": "0",
"kladr_id": "7700000000028360004",
"capital_marker": "0",
"okato": "45280583000",
"oktmo": "45362000",
"tax_office": "7715",
"tax_office_legal": "7715",
"timezone": "UTC+3",
"geo_lat": "55.8783089",
"geo_lon": "37.6537862",
"beltway_hit": "IN_MKAD",
"beltway_distance": null,
"qc_geo": 0,
"qc_complete": 0,
"qc_house": 2,
"qc": 0,
"unparsed_parts": null,
"metro": [
{
"distance": 1.1,
"line": "Калужско-Рижская",
"name": "Бабушкинская"
},
{
"distance": 1.2,
"line": "Калужско-Рижская",
"name": "Медведково"
},
{
"distance": 2.5,
"line": "Калужско-Рижская",
"name": "Свиблово"
}
]
}
]
Из данного массива можно извлечь значение адреса и другие поля, если это необходимо.
Также возможно извлечь нормализованную строку с полными сущностями, которая будет содержать и выглядеть следующим образом:
"result_full": "республика Башкортостан город Бирск улица Антипина дом 10",
Телефон
Функция также возвращает не только номер телефона в международном формате набора номера, но и дополнительную информацию о телефоне. Эти данные можно сохранять в переменной сценария или передавать клиенту для последующего парсинга, в зависимости от необходимой обработки.
Массив, возвращаемый при выделении телефона:
Название | Описание |
---|---|
qc | Код проверки |
source | Исходный телефон одной строкой |
type | Тип телефона (Мобильный, Стационарный, Прямой мобильный, Колл-центр, Неизвестный) |
phone | Стандартизованный телефон одной строкой |
country_code | Код страны |
city_code | Код города / DEF-код |
number | Локальный номер телефона |
extension | Добавочный номер |
provider | Оператор связи (только для России) |
country | Страна |
region | Регион (только для России) |
city | Город (только для стационарных телефонов) |
timezone | Часовой пояс города для России, часовой пояс страны — для иностранных телефонов. Если у страны несколько поясов, вернёт минимальный и максимальный через слеш: UTC+5/UTC+6 |
Пример ответа:
{
"source": "раб 846)231.60.14 *139",
"type": "Стационарный",
"phone": "+7 846 231-60-14 доб. 139",
"country_code": "7",
"city_code": "846",
"number": "2316014",
"extension": "139",
"provider": "ООО \"СИПАУТНЭТ\"",
"country": "Россия",
"region": "Самарская область",
"city": "Самара",
"timezone": "UTC+4",
"qc": 0
}
Госномер авто
Извлекает из переменной государственный номер транспортного средства и сохраняет его в переменную в виде сказанной последовательности.
К примеру, в переменной содержится: «Номер авто а 456 а в 102».
Результат, выделенный в результате обработки, будет сохранен как: «а456ав102».
Денежная сумма
Выделяет денежную сумму из того, что содержится в переменной.
К примеру, в переменной было: «2658 рублей 85 копеек».
Результат обработки будет записан в переменную как: «2658.85».
Объем жидкости
Определяет числовые значения, переданные из переменной, и сохраняет их в другой переменной в виде последовательности, как указано в сообщении.
Предположим, переменная содержит: “Десять литров семьсот пятьдесят миллилитров”.
Результат обработки переменной будет сохранен как: “10.75”.
Имя
При использовании блока ‘Обработка переменной’ можно указать конкретные параметры из предложенного списка, позволяющие выделить нужные элементы из переменной, такие как:
- ФИО;
- Имя отчество;
- Фамилия имя;
- Фамилия;
- Имя.
Выделяет из переменной только то, что было выбрано в ‘Уточняющая информация’. Если было выбрано «Фамилия имя», то результат будет записано в переменную в виде фразы.
Например: “Слушаю вас Иванов Иван Иванович, как ваши дела?”.
Результат выделения будет записан в переменную как: “Иванов Иван”.
Вопрос
Выделить «Вопрос» из переменной работает не на 100%.
Выделяет из переменной только вопрос, результат будет записан в переменную в виде фразы.
Например, абонент произносит: “Здравствуйте. Не подскажите, как вы работаете завтра?”.
Результат выделения будет записан в переменную как: “Не подскажите, как вы работаете завтра?”.
В отличие от блока Распознавание «Обработано» для блока «Обработка переменной» будет считаться любой возвращенный статус кода проверки qc.