Duckling extraction does not gives timestamp instead the value is extracted as text itself

I’m using rasa for building my reminder chatbot where when a user gives a time , the time is extracted as the text what user gives instead of extracting timestamp…What is the issue and how it can be solved

refer the image for appointment_time slot and look the time format , it is text instead of timestamp

Yes, this is the case in rasa==1.10. It’s actually more reliable though, because time can be a single value or an interval, and if it is an interval then in rasa<=1.10 it was represented in a pretty strange way in the value. The timestamp (or timestamps, if you get an interval) are still available in the additional_info portion of the entity. For an example of backward-compatible parsing of the duckling time entity, see parsing.py in the financial-demo bot custom actions

Thanks much for the solution

@mloubser Why is it that when I run DucklingHTTPExtractor on my local machine with rasa==1.10.1, I get different results than when I run it on my rasax server running on a GCP VM (I’m running duckling on the vm with docker).

Below is an example: When I run the message “$2000-3000” using rasa shell nlu, I get the following output:

"entities": [
    {
      "start": 0,
      "end": 5,
      "text": "$2000",
      "value": 2000,
      "confidence": 1.0,
      "additional_info": {
        "value": 2000,
        "type": "value",
        "unit": "$"
      },
      "entity": "amount-of-money",
      "extractor": "DucklingHTTPExtractor"
    },
    {
      "start": 1,
      "end": 10,
      "text": "2000-3000",
      "value": {
        "to": 3000,
        "from": 2000
      },
      "confidence": 1.0,
      "additional_info": {
        "to": {
          "value": 3000,
          "unit": "unknown"
        },
        "from": {
          "value": 2000,
          "unit": "unknown"
        },
        "type": "interval"
      },
      "entity": "amount-of-money",
      "extractor": "DucklingHTTPExtractor"
    }
  ]

But when I run the same in the Interactive Learning section of the RasaX UI on my GCP VM, I don’t get any of these entities. In fact, it doesn’t even catch the same text as an entity.

Do you know why this is the case or how I can fix this?

Rasa version 1.10 has these updates where it gets extracted as text and we can also call the value using additional info

But in this case it’s not even extracting the amount-of-money entity from the same text. Do you know why that would be?

If you want the value of the amount of money u can directly extract from “from” or “to” inside the value dict.

So the code works like tis entity[‘from’][‘value’] to get the “from” value entity[‘to’][‘value’] to get the “to” value

I understand, but what I’m trying to say is that for some reason when I run rasa shell nlu on my local machine with $2000-3000 as text, DucklingHTTPExtractor extracts an amount-of-money entity, but on my GCP instance, it doesn’t even recognize $2000-3000 as an entity in the first place, so I can’t get any value from it at all.

I have a feeling this is happening because the Rasa/duckling fork doesn’t have the same rules as the main facebook version of duckling, because the facebook version is what I downloaded on my local machine and I believe the duckling docker image uses the Rasa fork.

Please check the version of rasa on your GCP