Skip to content

wit-ai/wit-ruby

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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/basic.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
  • interactive - starts an interactive conversation with your bot

Wit class

The Wit constructor takes a Hash with the following symbol keys:

  • :access_token - the access token of your Wit instance

A minimal example looks like this:

require 'wit'

client = Wit.new(access_token: access_token)
client.message('set an alarm tomorrow at 7am')

Create new App Using the Access Token

Creates new app using the server token. See POST /apps.

new_app_payload = {name: "new-app-1", lang: "en", private: true}
# set_new_app_token will make the client use the new app's token.
# that flag is set to false by default.
client.create_new_app(new_app_payload, set_new_app_token = true)

Train the app programatically using '/utterances'

Trains and annotates an utterance or more. See POST /utterances.

# you have to create the intent and entity before using any of them.
utterance_payload = {
  text: "I want to fly to china",
  intent: "flight_request",
  entities: [
    {
      "entity": "wit$location:to",
      "start": 17,
      "end": 22,
      "body": "china",
      "entities": []
    }
  ],
  traits: []
}

# utterance payload can be a list of utterances or a single one
client.post_utterances(utterance_payload)

.message()

The Wit message API.

Takes the following parameters:

  • msg - the text you want Wit.ai to extract the information from

Example:

rsp = client.message('what is the weather in London?')
puts("Yay, got Wit.ai response: #{rsp}")

.interactive()

Starts an interactive conversation with your bot.

Example:

client.interactive

CRUD operations for intents

payload in the parameters is a hash containing API arguments.

.get_intents()

Returns a list of available intents for the app. See GET /intents.

.get_intent(intent)

Returns all available information about an intent. See GET /intents/:intent.

.post_intents(payload)

Creates a new intent. See POST /intents.

.delete_intents(intent)

Permanently deletes the intent. See DELETE /intents/:intent.

CRUD operations for entities

payload in the parameters is a hash containing API arguments.

.get_entities()

Returns a list of available entities for the app.
See GET /entities

.post_entities(payload)

Creates a new entity with the given attributes.
See POST /entities

.get_entity(entity)

Returns all the information available for an entity.
See GET /entities/:entity

.put_entities(entity, payload)

Updates an entity with the given attributes.
See PUT /entities/:entity

.delete_entities(entity)

Permanently removes the entity.
See DELETE /entities/:entity

.post_entities_keywords(entity, payload)

Adds a possible value into the list of keywords for the keywords entity. See POST /entities/:entity/keywords

.delete_entities_keywords(entity, keyword)

Deletes a keyword from the entity.
See DELETE /entities/:entity/keywords/:keyword

.post_entities_keywords_synonyms(entity, keyword, payload)

Creates a new synonym for the keyword of the entity.
See POST /entities/:entity/keywords/:keyword/synonyms

delete_entities_keywords_synonyms(entity, keyword, synonym)

Deletes a synonym of the keyword of the entity.
See DELETE /entities/:entity/keywords/:keyword/synonyms/:synonym

CRUD operations for traits

payload in the parameters is a hash containing API arguments.

.get_traits()

Returns a list of available traits for the app. See GET /traits.

.get_trait(trait)

Returns all available information about a trait. See GET /traits/:trait.

.post_traits(payload)

Creates a new trait. See POST /traits.

.post_traits_values(trait, payload)

Adds a new value to an existing trait. See POST /traits/:trait/values.

.delete_traits_values(trait, value)

Permanently deletes a value of an existing trait. See POST /traits/:trait/values.

.delete_traits(trait)

Permanently deletes the trait. See DELETE /traits/:trait.

See the docs for more information.

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.

Thanks

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

License

The license for wit-ruby can be found in LICENSE file in the root directory of this source tree.

Terms of Use

Our terms of use can be found at https://opensource.facebook.com/legal/terms.

Privacy Policy

Our privacy policy can be found at https://opensource.facebook.com/legal/privacy.