Elixir client for the Wit API. Wit is the natural language engine for creating Bots.
API documentation is available at https://hexdocs.pm/elixir_wit
The package can be installed as:
- Add elixir_wit to your list of dependencies in
mix.exs
:
def deps do
[{:elixir_wit, "~> 2.0.0"}]
end
To handle the different actions from the Wit.ai API you have to create a module that implements the default callbacks and also custom actions if you have any.
The custom actions can be created by defaction
macro. It expected to have three parameters i.e. session
which is the session id, the context
which contains the context of the conversation and message
which is the raw message sent from Wit. The name of the custom action should match the one registered in Wit.
defmodule WeatherActions do
use Wit.Actions
def say(session, context, message) do
# Send the message to the user
end
def merge(session, context, message) do
context # Return the updated context
end
def error(session, context, error) do
# Handle error
end
defaction fetch_weather(session, context, message) do
context # Return the updated context
end
end
After you have create the action module you can call the Wit using the module which will keep on calling the wit /converse
API until the API returns stop
.
Wit.run_actions(access_token, session_id, WeatherActions, "What is the weather?")
You can also use interactive/4
which creates an interactive session with your model in Wit.
The client also provides the functions to call the low level message
and converse
API.