luis-sdk-async
Version:
A wrapper for Microsoft's `luis-sdk` package that uses async-await instead of callbacks.
85 lines (57 loc) • 2.79 kB
Markdown
An easy, async, well-documented way to call Microsoft's LUIS service.
===================
### Short sample ###
```js
const Luis = require('luis-sdk-async');
const luis = new Luis('<APP ID>', '<KEY>');
// Send request to server:
await luis.send('Call me a taxi pls');
// Get what we need:
let intent = luis.intent(); // 'Get_Service'
let service = luis.entity('Service_Type'); // 'taxi'
```
### What's it for? ###
This package provides an easy way to call LUIS (luis.ai), which is a part of
Microsoft's Cognitive Services.
It's a wrapper around Microsoft's `luis-sdk` package, which uses callbacks.
In contrast, this package uses async-await instead of callbacks, and provides
three additional methods to easily get the data you may need most often.
### Methods and Static Members ###
#### Constructor ####
The constructor takes two required and two optional parameters.
* `appId` - The GUID of the LUIS app. It can be obtained at luis.ai.
* `appKey` - The LUIS subscription key that can be obtained from Azure Portal.
* `domain` - Optional LUIS server's hostname. Default is 'westus.api.cognitive.microsoft.com' (West US).
* `verbose` - Optional verbosity parameter. Leave it default, which is `true`.
#### New methods (more convenient) ###
* `send(text)` - sends the specified text to the LUIS endpoint. Stores the
result inside the client instance.
* `intent()` - returns the top-scoring intent as string.
* `entity(type)` - finds the value of the first entity of the given type.
**Example:**
```js
const Luis = require('luis-sdk-async');
const luis = new Luis('<APP ID>', '<KEY>');
// Send request to server, wait for the results to arrive:
await luis.send('hey can you find a mcdonalds nearby?');
// Extract the data that we need:
let intent = luis.intent(); // 'Get_Restaurant'
let restaurant = luis.entity('Restaurant_Name'); // 'mcdonalds'
```
#### Old methods (designed by Microsoft) ####
These two methods are just the async wrappers for the two LUIS methods provided
by Microsoft's `luis-sdk` package.
* `predict(text)` - sends the `text` to LUIS endpoint and returns the entire
response from LUIS. You need to manually extract the top intent, entities etc.
* `reply()` - undocumented function in Microsoft's SDK.
**Example:**
```js
const Luis = require('luis-sdk-async');
const luis = new Luis('<APP ID>', '<KEY>');
// Send request to server, wait for the results to arrive:
let response = await luis.predict('hey can you find a mcdonalds nearby?');
// Extract the data that we need:
let intent = response.topScoringIntent.intent; // 'Get_Restaurant'
```
### Comments and suggestions ###
If you have any comments, contact me here: https://github.com/catcher-in-the-try/