Как сделать проверку шаблона для предложения после OOB в Chatscript

Я пытаюсь добиться чего-то подобного, у меня есть данные OOB и какой-то пользователь, введенный текст, я могу проанализировать данные OOB, которые являются JSON. Но я не могу проверить шаблон для введенных пользователем данных. Тестовые данные в приведенном ниже примере ввода. Есть ли какие-либо предложения, как я могу это сделать?

u: (< \[ * input _*  \] _*) ^keep() ^repeat() 
$inputData=_0 

$secondInput=%originalinput

getNameFromJson($inputData $secondInput)

$_tmp = ^jsonparse( $inputData ) 

\n name: $_tmp.user, phone: $_tmp.speed 

if(^match(TEST)) {
^reuse(TEST) 
} else if(match(THANKS)){
^reuse(THANKS) 
}

u: TEST (test)  ^keep() ^repeat()
    Some test impl

u: THANKS (~thankConcept)  ^keep() ^repeat()
    Glad to be of help.

Мой ввод выглядит как [ input {user:"test", speed:10} ] Тестовые данные

1 ответ

В simplecontrol.top вы можете поместить следующее правило перед MAIN

u: ( \[ _* \] )

$requestData = ^jsonparse(^original(_0))
^fail(SENTENCE)

$ requestData будет захватывать ваш ввод JSON (предоставляется в OOB). Здесь важна функция ^fail(), так как она позволит продолжить обработку вашего входного предложения. После вышеприведенного правила Если вы сохраняете u: MAIN (), как это предусмотрено в simplecontrol.top гарри-бота, вы можете сопоставить "Тестовые данные" со следующим правилом в любой соответствующей теме.

u: (Test Data) ^keep() ^repeat() Some test impl
Другие вопросы по тегам