JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q45264F
  • License ISC

Ask IBM Watson a question on Bluemix

Package Exports

  • askwatson

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (askwatson) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

This module is in npm as askwatson. It provides a simple API for asking Watson a question on Bluemix using the question_and_answer service.

Basically you will need to get set up on Bluemix/CF and follow the instructions given for the sample Node.js application here https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/qaapi/#commonApplication, including running the cf commands, but I have factored out that code a bit into two modules, so your application can be cleaner. In case you need help finding the cf command line program you can download it from here https://github.com/cloudfoundry/cli/releases (under Installers) and install it with dpkg -i <filename>.

The first module is called bluemix-request-simple and it has the parts for pulling the host and port out of the environment and using them in a request.

The other module is this one, which is very simple to use:

watson.ask('healthcare', 'What is the most common kind of cancer', function(err, answers) {
  console.log(answers);
});

This will need to run on Bluemix so a more complete example would be:

var watson = require('askwatson')
  , restify = require('restify');

var server = restify.createServer();

server.get('/:domain/:question', function(req, res) {
  watson.ask(req.params.domain, req.params.question, function(e, ans) {
    res.send(ans);
  });    
});

server.listen(process.env.VCAP_APP_PORT, process.env.VCAP_APP_HOST, function() {
  console.log('%s listening at %s', server.name, server.url);
});

Note that if you use GET as in this example it will be simpler to test but you can only use short questions (try curl "http://whatever.mybluemix.net/healthcare/What+is+the+most+common+kind+of+cancer"). If you use something longer for the question it will blow up the app, so you will probably want to use POST.