A hubot script for providing assistance to a user who needs help finding Bluemix service(s) that match his needs.
Steps for adding this to your existing hubot:
cd
into your hubot directory- Install the app management functionality with
npm install hubot-ibmcloud-service-suggest --save
- Add
hubot-ibmcloud-service-suggest
to yourexternal-scripts.json
- Add the necessary environment variables:
export HUBOT_WATSON_NLC_URL=<API URL for Watson Natural Language Classifier>
export HUBOT_WATSON_NLC_USERNAME=<Watson NLC Username>
export HUBOT_WATSON_NLC_PASSWORD=<Watson NLC Password>
export HUBOT_WATSON_NLC_SUGGEST_PREFIX=<Optional prefix to include in NLC classifier name>
- Start up your bot & off to the races!
hubot suggest list
- Show services bot is trained to suggest.hubot suggest services to ...
- Suggest services to fit your needs.
Hubot supports a variety of adapters to connect to popular chat clients. For more feature rich experiences you can setup the following adapters:
This project supports natural language interactions using Watson and other Bluemix services. For more information on enabling these features, refer to Cognitive Setup.
Please refer to the CONTRIBUTING.md before starting any work. Steps for running this script for development purposes:
- Update
env
in theconfig
folder, with the following contents:
export HUBOT_BLUEMIX_API=<Bluemix API URL>
export HUBOT_BLUEMIX_ORG=<Bluemix Organization>
export HUBOT_BLUEMIX_SPACE=<Bluemix space>
export HUBOT_BLUEMIX_USER=<Bluemix User ID>
export HUBOT_BLUEMIX_PASSWORD=<Password for the Bluemix use>
- Download the jquery.min.js library into the
hubot-ibmcloud-service-suggest
project folder. This can be obtained from here: http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js - Run
npm run update-config
to generate or updatedata/services-data.json
. - Review
data/services-data.json
file changes. Load the doc page of added services to confirm quality of doc and what the service is called on the doc pages. If services is referred to by names other than their doc_name attribute, then add those names to doc_name.
- Optional: Full manual training can be done by adding
class_text
array of strings innlc_class_info
objects. - Optional: To still using crawler generated data, but also include partial manual training data add
additional_class_text
instead ofclass_text
.
- Use crawler to produce training data:
npm run crawler -- --key=<YOUR_ALCHEMY_API_KEY>
- Review output from crawler and copy the generated csv file into the data directory using the next version number of the
data/hubot-service-suggest
.csv file.
cp output/nlcTrainingData.csv data/hubot-service-suggest_v2.csv
- Review potential deprecated services. The crawler will log a list of such services to
output/deprecation_watch_list.json
. If these services are truly deprecated, then remove them from thenlc_class_info
section ofdata/services-data.json
and add them to the blacklist section. Also remove them from the new.csv
training data file. - Remove the previous version of the .csv file
rm data/hubot-service-suggest_v1.csv
The bot will automatically detect the version update and train with the new .csv file.
- Create
config
folder in root of this project. - Create
env
in theconfig
folder, with the following contents:
export HUBOT_WATSON_NLC_URL=<API URL for Watson Natural Language Classifier>
export HUBOT_WATSON_NLC_USERNAME=<Watson NLC Username>
export HUBOT_WATSON_NLC_PASSWORD=<Watson NLC Password>
- In order to view content in chat clients you will need to add
hubot-ibmcloud-formatter
to yourexternal-scripts.json
file. Additionally, if you want to usehubot-help
to make sure your command documentation is correct. Createexternal-scripts.json
in the root of this project
[
"hubot-help",
"hubot-ibmcloud-formatter"
]
- Lastly, run
npm install
to obtain all the dependent node modules.
Hubot supports a variety of adapters to connect to popular chat clients.
If you just want to use:
- Terminal: run
npm run start
- Slack: link to setup instructions
- Facebook Messenger: link to setup instructions
See LICENSE.txt for license information.
Please check out our Contribution Guidelines for detailed information on how you can lend a hand.