If you are using api.ai, you can specify that you want two of the parameters to be limited to letters and numbers. The @sys.number
and @sys.ordinal
entities are defined to limit it to numbers, but you will need to create your own @letter
entity consisting of, you guessed it, the letters.
In this screen shot, I've created the @letter
entity already, and then defined a couple of example phrases. With the prefix "experiment" in this case, it will return the letter and number pair spoken:

If you test this with something like "experiment random", you may see that it still gets matched, but that the parameters are empty. There are a couple of approaches to this. You can require these parameters - but that would mean that you'd be prompted if you didn't enter the pair. Or you can setup an intent with a lower priority that may match more generally. It may look something like this. (The priority can be set by clicking on the colored dot next to the intent name.)

The @sys.any
entity is a wildcard, which should match anything. But since this is a lower priority, it will try to match the letter-number pair one first, and then try this one to see if it matches as a fallback.