ERROR:rasa_nlu.extractors.duckling_http_extractor:

Hi Everyone,

Hope all good. I am facing below issue while using docker duckling . Please suggest me to solve it. All details are given below . Let me anything else required

Error: Bot loaded. Type a message and press enter: Hello ERROR:rasa_nlu.extractors.duckling_http_extractor:Failed to get a proper response from remote duckling. Status Code: 404. Response:

Not found No handler accepted "//parse"

Configue file

language: “nl”

pipeline:

  • name: “nlp_spacy”
  • name: “tokenizer_spacy”
  • name: “intent_featurizer_spacy”
  • name: “ner_crf”
  • name: “ner_synonyms”
  • name: “intent_classifier_sklearn”
  • name: “ner_duckling_http” locale: “nl” url: “http://duckling:8000
  • name: “intent_entity_featurizer_regex”
  • name: “ner_spacy”

@ souvikg10 Hi Souvik do you have any suggestion on it. I am running duckling on docker and rasa on local system

how have you started the core server?

If you have used my configuration, keep in mind that everything for me runs under the same docker network name and hence i can give each container a name which resolves for a given host.

I use docker-compose for such situations.

IN your case, however the url : http://duckling:8000 won’t work but rather try with localhost

@ souvikg10 @ akelad Thanks for replying. I am able to run duckling but while running NLU i am getting below outpout

Fitting 2 folds for each of 6 candidates, totalling 12 fits [Parallel(n_jobs=1)]: Done 12 out of 12 | elapsed: 0.1s finished {‘intent’: {‘name’: ‘Add_Transaction’, ‘confidence’: 0.7285425177867032}, ‘entities’: [{‘start’: 32, ‘end’: 37, ‘text’: ‘71168’, ‘value’: 71168.0, ‘confidence’: 1.0, ‘additional_info’: {‘value’: 71168.0}, ‘entity’: ‘number’, ‘extractor’: ‘ner_duckling’}, {‘entity’: ‘DATE’, ‘value’: ‘71168’, ‘start’: 32, ‘confidence’: None, ‘end’: 37, ‘extractor’: ‘ner_spacy’}], ‘intent_ranking’: [{‘name’: ‘Add_Transaction’, ‘confidence’: 0.7285425177867032}, {‘name’: ‘Asking_Points’, ‘confidence’: 0.14969311989174575}, {‘name’: ‘goodbye’, ‘confidence’: 0.04803035905918517}, {‘name’: ‘affirm’, ‘confidence’: 0.04194993758649048}, {‘name’: ‘greet’, ‘confidence’: 0.03178406567587485}], ‘text’: ‘Please check the transaction ID 71168 . Still points not received’}

Here mine requirement is to collect the user transaction id and custome id. It will be numeric. Could you please help me how to differentiate between these two number. Also currently i am getting entity as a number but in training DS it’s as transaction_id

I would set the slots for transactionID and Customer ID manually.

Duckling’s aim is to extract entities specially numeric values quite easily based on a set of rules, you can do the same with Regex as well.

You should add a custom action to set the other ID by extracting the entity number, the value that is provided by duckling

Hi [souvikg10] , Thanks for reply. I tried with below code getting error. Here number is slot that i am getting after ducling extraction .Could you please help

class GetTransactionID(Action): def name(self): return “action_transaction_id” def run(self, dispatcher, tracker, domain): Transaction_ID = tracker.get_slot(“number”) print(Transaction_ID) if Transaction_ID: dispatcher.utter_button_message(Transaction_ID) return [SlotSet(“Transaction_ID” , Transaction_ID)]

Why do you need this line

dispatcher.utter_button_message(Transaction_ID) 

Sorry it was utter_message just to return Transaction_ID

I think when you provide the dispatcher a message, it automatically returns message without setting the slot.

Try something like this

return [SlotSet(“Transaction_ID” , Transaction_ID),dispatcher.utter_button_message(Transaction_ID)]

@ souvikg10 Thank you very . I’ll try it