Elixir client for the Wit API. Wit is the natural language engine for creating Bots.
Switch branches/tags
Nothing to show
Clone or download

README.md

MIT licensed Build Status Inline docs Made with Spacemacs

Wit

Elixir client for the Wit API. Wit is the natural language engine for creating Bots.

Documentation

API documentation is available at https://hexdocs.pm/elixir_wit

Installation

The package can be installed as:

  1. Add elixir_wit to your list of dependencies in mix.exs:
def deps do
  [{:elixir_wit, "~> 2.0.0"}]
end

Usage

1. Create action module

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

2. Call the run action

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.

Low Level APIs

The client also provides the functions to call the low level message and converse API.