npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

luis-sdk-async

v1.0.0

Published

A wrapper for Microsoft's `luis-sdk` package that uses async-await instead of callbacks.

Downloads

18

Readme

An easy, async, well-documented way to call Microsoft's LUIS service.

Short sample

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:

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:

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/