- Updated to use Moltin v2 API to generate search indexes. Please make sure you re-create your Moltin store using the most recent version of the import scripts as there are breaking changes in the data layout.
- LUIS model was re-exported and is now in the 2.1.0 schema version.
- Moved from restify to express
- Also, Microsoft is discontinuing the Recommendations API preview in February 2018. The alternative is to deploy the Recommendations Solution template, but it does not yet support the frequently bought together algorithm that the bot was using. The deployment of a solution template is aslo a more involved process so I decided to drop recommendations for now. The recommendation code is still there and is just not used by the dialog flow at the moment.
Note: the bot is still using the original State API that was deprecated. It works, but the recommendation from Microsoft is to implement a custom state data.
An example of a chatbot built with Microsoft Bot Framework and featuring e-commerce capabilities via:
How To Run
If you would like to run it, you would need:
- A Moltin subscription with the Adventure Works data (I previously shared scripts to import Adventure Works data into Moltin)
- Azure Search service with three indexes -
variants. You can find the index definitions and the script that can set up everything you need here
Recommendations API endpoint with the FBT (frequently bought together) model trained on historical orders. Here's the instruction on how to set it all up
- Trained LUIS model for the intents that require NLU to be recognized. You can import the app that I trained to get a head start
Set the following environment variables:
MICROSOFT_APP_ID- you will get it from the dev.botframework.com during registration
MICROSFT_APP_PASSWORD- you will get it from the dev.botframework.com during registration
RECOMMENDATION_API_KEY- your API key to the Recommendations API service from the Microsoft Cognitive Services
RECOMMENDATION_MODEL- you can create multiple recommendation models and this way you can choose which one the bot will use for suggestions
RECOMMENDATION_BUILD- a given model (your product catalog, historical transactions, and business rules) can have multiple recommendation builds and this is how you tell which one the bot will use
SEARCH_APP_NAME- the name of your Azure Search service. The code assumes that you have all three indexes in the same Azure Search resource
SEARCH_API_KEY- your API key to the Azure Search service
LUIS_ENDPOINT- the URL of your published LUIS model. Please keep the
Add verbose flagon and remove
&q=from the URL. THe bot framework will add it.
SENTIMENT_API_KEY- your API key to the Text Analytics service.
SENTIMENT_ENDPOINT- the enpoint of yout Text Analytics service. Defaults to
If you would like to connect the Bing Spell Check service, you would do so in LUIS when publishing your endpoint. This integration is transparent to the app and all you do is provision your Azure subscription key to the service and connect it to your LUIS app.
- The shopping cart is currently kept in the bot's memory (
session.privateConversationData.cart) and does not sync back to Moltin
- Checkout process is not integrated with Moltin
- The bot is not multi-lingual