Parts of a chatbot¶
Messaging endpoints¶
Botshot supports popular messaging platforms such as Facebook messenger and Telegram. For each of these platforms, there is an endpoint that converts the messages to a universal format, so you don’t need to worry about compatibility.
To enable support for messaging platforms, just add the associated API token to BOT_CONFIG
.
Read more at Messaging endpoints.
Note
Botshot is fully extensible. If you need to support your private messaging API, just implement the endpoint and it will work.
Natural language understanding (NLU)¶
NLU tools are useful for these purposes:
- Intent detection aka “What does the user want?”
- Classify the message into a category.Input:
{"text": "Hi there!"}
Output:{"intent": "greeting", "confidence": 0.9854, "source": "botshot_nlu"}
- Entity extraction aka “How does the user want it?”
- Extract entities such as dates, places and names from text.Input:
{"text": "Are there any interesting events today?"}
Output:{"query": "events", "date": "2018-01-01"}
To enable support for NLU platforms, just add the associated API token to BOT_CONFIG
.
Read more at `Natural language understanding`_.
Note
You can use your own machine learning models for NLU if you wish. See `Entity extractors`_ for more details.
Dialogue Management & Conversation Context¶
and remember what the user has said before. | Botshot has a Dialogue Manager that does exactly this. You can picture the conversation as a state machine with states like greeting and transitions that fire when a message is received. | There is also a Context Manager that you can query about past conversations and NLU entities.
Note
We would be really happy if we could just train a neural network instead. However, there are still many problems that need to be solved before production use.
Alright, enough chit chat. Let’s get coding!