Introduction to node-wit
Welcome to our detailed guide on node-wit – the official Node.js SDK for Wit.ai, which helps developers create Natural Language Processing (NLP) apps. This SDK provides a range of APIs that are essential for any developer looking to integrate NLP capabilities into their Node.js applications.
Understanding node-wit
Node-wit is a powerful tool that allows interaction with Wit.ai APIs. It lets you manage entities, messages, contexts, and more. Below, we will explore various useful APIs provided by node-wit, complete with code snippets and examples.
Basic Setup
const { Wit, log } = require('node-wit');
const client = new Wit({
accessToken: 'YOUR_WIT_ACCESS_TOKEN',
logger: new log.Logger(log.DEBUG) // optional
});
API Examples
Sending Message to Wit.ai
client.message('Set an alarm tomorrow at 7am', {})
.then((data) => {
console.log('Yay, got Wit.ai response: ' + JSON.stringify(data));
})
.catch((err) => {
console.error('Oops! Got an error: ' + err);
});
Contextual Conversation
const sessions = {};
const firstEntityValue = (entities, entity) => {
const val = entities && entities[entity] &&
Array.isArray(entities[entity]) &&
entities[entity].length > 0 &&
entities[entity][0].value;
if (!val) {
return null;
}
return typeof val === 'object' ? val.value : val;
};
const actions = {
say(sessionId, context, message, cb) {
console.log(message);
cb();
},
merge(sessionId, context, entities, message, cb) {
cb(context);
},
error(sessionId, context, error, cb) {
console.log(error.message);
cb();
},
['fetch-weather'](sessionId, context, cb) {
context.forecast = 'sunny';
cb(context);
},
};
const client = new Wit({ accessToken: 'YOUR_WIT_ACCESS_TOKEN', actions });
client.runActions('my-user-session-42', 'What will be the weather tomorrow?', {})
.then((context) => {
console.log('The session has ended.');
})
.catch((err) => {
console.error('Oops! Got an error: ' + err);
});
Setting Custom Entities
client.addEntity({
name: 'custom_entity',
lookups: ['trait', 'keywords'],
})
.then((data) => {
console.log('Yay, added custom entity: ' + JSON.stringify(data));
})
.catch((err) => {
console.error('Oops! Got an error: ' + err);
});
App Example Using node-wit APIs
To demonstrate the versatility of node-wit, let’s create a simple weather bot application. This bot will answer weather-related queries using the above APIs.
const express = require('express');
const bodyParser = require('body-parser');
const { Wit, log } = require('node-wit');
const app = express();
const PORT = process.env.PORT || 3000;
const client = new Wit({
accessToken: 'YOUR_WIT_ACCESS_TOKEN',
logger: new log.Logger(log.DEBUG) // optional
});
app.use(bodyParser.json());
app.post('/webhook', (req, res) => {
const { message } = req.body;
client.message(message, {})
.then((data) => {
res.json({ data });
})
.catch((err) => {
res.status(500).send('Error: ' + err);
});
});
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
By using this code, you can handle various NLP tasks efficiently and integrate them into your Node.js applications seamlessly.
Hash: ba56a19fdc7c835f3c0252f17cc65c7f870d9116744a21f545f788f78bc01980