pywit
is the Python SDK for Wit.ai.
Using pip
:
pip install wit
From source:
git clone https://github.com/wit-ai/pywit
python setup.py install
See the examples
folder for examples.
pywit
provides a Wit class with the following methods:
message
- the Wit message APIconverse
- the low-level Wit converse APIrun_actions
- a higher-level method to the Wit converse API
The Wit constructor takes the following parameters:
token
- the access token of your Wit instanceactions
- the dictionary with your actions
actions
has action names as keys and action implementations as values.
You need to provide at least an implementation for the special actions say
, merge
and error
.
A minimal actions
dict looks like this:
def say(session_id, context, msg):
print(msg)
def merge(session_id, context, entities, msg):
return context
def error(session_id, context, e):
print(str(e))
actions = {
'say': say,
'merge': merge,
'error': error,
}
A custom action takes the following parameters:
session_id
- a unique identifier describing the user sessioncontext
- the dictionary representing the session state
Example:
from wit import Wit
client = Wit(token, actions)
The Wit message API.
Takes the following parameters:
msg
- the text you want Wit.ai to extract the information from
Example:
resp = client.message('what is the weather in London?')
print('Yay, got Wit.ai response: ' + str(resp))
A higher-level method to the Wit converse API.
Takes the following parameters:
session_id
- a unique identifier describing the user sessionmessage
- the text received from the usercontext
- the dict representing the session statemax_steps
- (optional) the maximum number of actions to execute (defaults to 5)
Example:
session_id = 'my-user-session-42'
context0 = {}
context1 = client.run_actions(session_id, 'what is the weather in London?', context0)
print('The session state is now: ' + str(context1))
context2 = client.run_actions(session_id, 'and in Brussels?', context1)
print('The session state is now: ' + str(context2))
The low-level Wit converse API.
Takes the following parameters:
session_id
- a unique identifier describing the user sessionmessage
- the text received from the usercontext
- the dict representing the session state
Example:
resp = client.converse('my-user-session-42', 'what is the weather in London?', {})
print('Yay, got Wit.ai response: ' + str(resp))
See the docs for more information.