botbuilder-js/libraries/botbuilder-ai
..
etc
schemas
src
tests
.eslintrc.json
.gitignore
.nycrc
LICENSE
README.md
api-extractor.json
package.json
tsconfig.json

README.md

Bot Builder AI

Cognitive services extensions for Microsoft BotBuilder.

Installing

To add the latest version of this package to your bot:

npm install --save botbuilder-ai

Use the Daily Build

To get access to the daily builds of this library, configure npm to use the MyGet feed before installing.

npm config set registry https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/

To reset the registry in order to get the latest published version, run:

npm config set registry https://registry.npmjs.org/

What's included?

This module contains interfaces for using Microsoft LUIS and Microsoft QnA Maker in your Botbuilder application.

Use

First, import the nessary functionality into your app.

const { LuisRecognizer, QnAMaker } = require('botbuilder-ai');

Configure and instantiate a LuisRecognizer. You will need to acquire values for appId, subscriptionKey and region from the LUIS website.

// Map the contents to the required format for `LuisRecognizer`.
const luisApplication = {
    applicationId: process.env.appId,
    endpointKey: process.env.subscriptionKey,
    azureRegion: process.env.region
}

// Create configuration for LuisRecognizer's runtime behavior.
const luisPredictionOptions = {
    includeAllIntents: true,
    log: true,
    staging: false
}

const luisRecognizer = new LuisRecognizer(luisApplication, luisPredictionOptions, true);

Now, call LUIS into action once you've got a TurnContext object:

// Listen for incoming requests.
server.post('/api/messages', (req, res) => {
    adapter.processActivity(req, res, async (turnContext) => {
        const results = await luisRecognizer.recognize(turnContext);

        // Since the LuisRecognizer was configured to include the raw results, get the `topScoringIntent` as specified by LUIS.
        const topIntent = results.luisResult.topScoringIntent;

        // Now, use topIntent to decide what action to take.
        switch (topIntent) {
            case '<some intent>':
            // ... 
            break;
        }

    });
});

Examples

See this module in action in these example apps: