keiffster / program-y

Python 3.x based AIML 2.0 Chatbot interpreter, framework, related programs and knowledge files
https://keiffster.github.io/program-y/
Other
348 stars 138 forks source link

OOB with star element fails processing #251

Closed harpsdm closed 4 years ago

harpsdm commented 4 years ago

It's not clear how an OOB processor is supposed to handle embedded tags like . I am using the existing dial handler as a model, but that does not handle this situation either. Using a fresh copy of program-y and y-bot without any modifications, I would expect to be able to enter the string 'oob dial 123' and get the placeholder response 'DIAL'. However, instead I get an error because the module is unable to parse the number.

Looking at the logs, I see this: 2020-01-13 20:52:01,599 root DEBUG - [Console] [bot] [brain] [Console] - Matched Word child, success! 2020-01-13 20:52:01,599 root DEBUG - [Console] [bot] [brain] [Console] - Matches... 2020-01-13 20:52:01,600 root DEBUG - [Console] [bot] [brain] [Console] - 1: Match=(Word) Node=(WORD [OOB]) Matched=(oob) 2020-01-13 20:52:01,600 root DEBUG - [Console] [bot] [brain] [Console] - 2: Match=(Word) Node=(WORD [DIAL]) Matched=(dial) 2020-01-13 20:52:01,600 root DEBUG - [Console] [bot] [brain] [Console] - 3: Match=(Word) Node=(ONEORMORE []) Matched=(123) 2020-01-13 20:52:01,600 root DEBUG - [Console] [bot] [brain] [Console] - 4: Match=(Topic) Node=(ONEORMORE []) Matched=() 2020-01-13 20:52:01,600 root DEBUG - [Console] [bot] [brain] [Console] - 5: Match=(That) Node=(ONEORMORE []) Matched=() 2020-01-13 20:52:01,600 root DEBUG - [Console] [bot] [brain] [Console] - Match score 0.00 2020-01-13 20:52:01,600 root DEBUG - [Console] [bot] [brain] [Console] - AIML Parser evaluating template [PTEMPLATE [] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(1)]] 2020-01-13 20:52:01,600 root DEBUG - [Console] [bot] [brain] [Console] - [[OOB]] resolved to [] 2020-01-13 20:52:01,601 root DEBUG - [Console] [bot] [brain] [Console] - [[OOB]] resolved to [] 2020-01-13 20:52:01,601 root DEBUG - [Console] [bot] [brain] [Console] - [[NODE]] resolved to [] 2020-01-13 20:52:01,601 root ERROR - Unvalid dial oob command - missing dial text! 2020-01-13 20:52:01,602 root DEBUG - [Console] [bot] [brain] [Console] - Raw Response (Console):

This suggests that the DialOutOfBandProcessor is receiving the raw XML, rather than XML that has had the properly resolved the '123'.

What I am not clear on is whether any embedded tags should be resolved prior to the OOB content being handed off to the module, or if it is the responsibility of the module to further resolve the content. If the latter, is there anything I can refer to for an example of how that resolution should be done?

Thanks, Dave.

Expected Behavior

See description

Current Behavior

See description

Steps to Reproduce

See description

Context (Environment)

keiffster commented 4 years ago

That’s not good, I’ll take a look this evening and find out what is going on

Could you include the aiml file or snippet for dial you are using

The default is

<oob><dial><star /></dial></oob>
harpsdm commented 4 years ago

When reproducing this, I used unmodified y-bot, so that AIML category being matched is this one:

`

OOB DIAL *
    <template>
        <oob>
            <dial><star /></dial>
        </oob>
    </template>
</category>

`

keiffster commented 4 years ago

Just found the issue, its not resolving wild cards when in side an orb tag. Have a fix and pushing it through the build today

K

On 13 Jan 2020, at 22:16, harpsdm notifications@github.com wrote:

When reproducing this, I used unmodified y-bot, so that AIML category being matched is this one:

OOB DIAL *

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/keiffster/program-y/issues/251?email_source=notifications&email_token=ABCUFM7ROKDROZJE6JJHXTLQ5TR3RA5CNFSM4KGAM2L2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEI2P7ZY#issuecomment-573898727, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABCUFM3XFBR6L3FHLUQVHKLQ5TR3RANCNFSM4KGAM2LQ.

harpsdm commented 4 years ago

That great! Thanks. I'll give it a try in the next couple of days.

keiffster commented 4 years ago

4.1 code base pushed to master, this has the fix for oob wildcard processing, but also moves OOb storage to file system and out of config file, OOB documentation updated with detail

pypi release will come later today

keiffster commented 4 years ago

4.1 code base pushed to master, this has the fix for oob wildcard processing, but also moves OOb storage to file system and out of config file, OOB documentation updated with detail

pypi release will come later today, hopefully!

harpsdm commented 4 years ago

Sorry for the delay in testing. Finally managed to update and this fix looks to be working well. Thanks!

keiffster commented 4 years ago

Great news and thanks for your patience

I have a new oob tutorial coming out soon which goes well beyond the basics that y ships with and looks at using os automation to control your computer via text ( and spoken word )

Regards

Keith 07771 597630

On 21 Jan 2020, at 08:59, harpsdm notifications@github.com wrote:

 Sorry for the delay in testing. Finally managed to update and this fix looks to be working well. Thanks!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.