message
now takes an optionalcontext
as second parameterconverse
andrun_actions
are deprecatedinteractive
now callsmessage
- Python 3 compatibility (future imports)
- added a
speech()
method to send audio files to the API (thanks @willywongi)
converse
now takesreset
as optional parameter.run_actions
now resets the last turn on new messages and errors.
After a lot of internal dogfooding and bot building, we decided to change the API in a backwards-incompatible way. The changes are described below and aim to simplify user code and accommodate upcoming features.
See ./examples
to see how to use the new API.
say
renamed tosend
to reflect that it deals with more than just text- Removed built-in actions
merge
anderror
- Actions signature simplified with
request
andresponse
arguments - INFO level replaces LOG level
- adding verbose option for
message
,converse
andrun_actions
- allows for overriding API version, by setting
WIT_API_VERSION
- fixes unicode error
- adds custom logging
- warns instead of throwing when validating actions
- bumped default API version from
20160330
to20160516
interactive()
mode- fixed default arg for
context
- fixed
say
action inexamples/quickstart.py
- examples to take the Wit access token in argument
Unifying action parameters
- the
say
action now takes 3 parameters:session_id
,context
,msg
- the
error
action now takes 3 parameters:session_id
,context
,e
Updating action parameters
- the
merge
action now takes 4 parameters:session_id
,context
,entities
,msg
- the
error
action now takescontext
as second parameter - custom actions now take 2 parameters:
session_id
,context
- Fixed request keyword arguments issue
- Better error messages
- Added
examples/template.py
- Fixed missing type
- Updated
examples/weather.py
toexamples/quickstart.py
to reflect the docs
Bot Engine integration
- the
message
API is wrapped around aWit
class, and doesn't take the token as first parameter
Rewrite in pure Python
- audio recording and streaming have been removed because:
- many people only needed access to the HTTP API, and audio recording did not make sense for server-side use cases
- dependent on platform, choice best left to developers
- forced us to maintain native bindings as opposed to a pure Pythonic library
- we renamed the functions to match the HTTP API more closely
.text_query(string, access_token)
becomes.message(access_token, string)
- all functions now return a Python dict instead of a JSON string