/ecommerce-chatbot

An example of a chatbot built with Microsoft Bot Framework and featuring e-commerce capabilities via Moltin, Azure Search, Recommendations API, and LUIS

Primary LanguageJavaScriptMIT LicenseMIT

E-Commerce Chatbot

An example of a chatbot built with Microsoft Bot Framework and featuring e-commerce capabilities via:

I presented this bot on API Strat in Boston as an example of a smart app built with cognitive APIs. This bot is also going to SATURN and SYNTAX.

Video

Ecommerce Chatbot Video

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 - categories, products, and variants. You can find the index definitions here and I will soon share the script that creates indexes and loads the data
  • Recommendations API endpoint with the FBT (frequently bought together) model trained on historical orders. I will soon share the script that loads the data and trains the model
  • 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

Deploy your bot (I used Azure App Service) and register it with the dev.botframework.com.

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 flag on and remove &q= from the URL. THe bot framework will add it.
  • SENTIMENT_API_KEY - your API key to the Text Analytics service.

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.

To-Do

  • 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

License

MIT