wit-ruby is the Ruby SDK for Wit.ai.
From RubyGems:
gem install witFrom source:
git clone https://github.com/wit-ai/wit-ruby
gem build wit.gemspec
gem install wit-*.gemRun in your terminal:
ruby examples/quickstart.rb <your_token>See the examples folder for more examples.
wit-ruby 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 APIinteractive- starts an interactive conversation with your bot
The Wit constructor takes the following parameters:
access_token- the access token of your Wit instanceactions- theHashwith your actions
The actions Hash has action names as keys, and action implementations as values.
Action names are symbols, and action implementations are lambda functions (not Proc).
You need to provide at least an implementation for the special actions :say, :merge and :error.
A minimal actions Hash looks like this:
actions = {
:say => -> (session_id, context, msg) {
p msg
},
:merge => -> (session_id, context, entities, msg) {
return context
},
:error => -> (session_id, context, error) {
p error.message
},
}A custom action takes the following parameters:
session_id- a unique identifier describing the user sessioncontext- theHashrepresenting the session state
Example:
require 'wit'
client = Wit.new access_token, actionsDefault logging is to STDOUT with INFO level.
You can setup your logging level as follows:
Wit.logger.level = Logger::WARNSee the Logger class docs for more information.
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?'
p "Yay, got Wit.ai response: #{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- theHashrepresenting the session statemax_steps- (optional) the maximum number of actions to execute (defaults to 5)
Example:
session = 'my-user-session-42'
context0 = {}
context1 = client.run_actions session, 'what is the weather in London?', context0
p "The session state is now: #{context1}"
context2 = client.run_actions session, 'and in Brussels?', context1
p "The session state is now: #{context2}"The low-level Wit converse API.
Takes the following parameters:
session_id- a unique identifier describing the user sessionmsg- the text received from the usercontext- theHashrepresenting the session state
Example:
resp = client.converse 'my-user-session-42', 'what is the weather in London?', {}
p "Yay, got Wit.ai response: #{resp}"Starts an interactive conversation with your bot.
Example:
client.interactiveSee the docs for more information.
Thanks to Justin Workman for releasing a first version in October 2013. We really appreciate!