Giter Site home page Giter Site logo

wit-ruby's Introduction

wit-ruby

wit-ruby is the Ruby SDK for Wit.ai.

Install

From RubyGems:

gem install wit

From source:

git clone https://github.com/wit-ai/wit-ruby
gem build wit.gemspec
gem install wit-*.gem

Quickstart

Run in your terminal:

ruby examples/quickstart.rb <your_token>

See the examples folder for more examples.

API

Overview

wit-ruby provides a Wit class with the following methods:

  • message - the Wit message API
  • converse - the low-level Wit converse API
  • run_actions - a higher-level method to the Wit converse API
  • interactive - starts an interactive conversation with your bot

Wit class

The Wit constructor takes the following parameters:

  • access_token - the access token of your Wit instance
  • actions - the Hash with 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 session
  • context - the Hash representing the session state

Example:

require 'wit'
client = Wit.new access_token, actions

Logging

Default logging is to STDOUT with INFO level.

You can setup your logging level as follows:

Wit.logger.level = Logger::WARN

See the Logger class docs for more information.

message

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}"

run_actions

A higher-level method to the Wit converse API.

Takes the following parameters:

  • session_id - a unique identifier describing the user session
  • message - the text received from the user
  • context - the Hash representing the session state
  • max_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}"

converse

The low-level Wit converse API.

Takes the following parameters:

  • session_id - a unique identifier describing the user session
  • msg - the text received from the user
  • context - the Hash representing the session state

Example:

resp = client.converse 'my-user-session-42', 'what is the weather in London?', {}
p "Yay, got Wit.ai response: #{resp}"

interactive

Starts an interactive conversation with your bot.

Example:

client.interactive

See the docs for more information.

Thanks

Thanks to Justin Workman for releasing a first version in October 2013. We really appreciate!

wit-ruby's People

Contributors

patapizza avatar martinraison avatar oliviervaussy avatar justincampbell avatar peakxu avatar blandinw avatar yunussasmaz avatar lmangani avatar

Watchers

James Cloos avatar Nikunj Bhartia avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.