#machine-learning #api-bindings

machinebox

A client SDK for communicating with machinebox boxes

5 releases (breaking)

Uses old Rust 2015

0.5.0 Apr 7, 2018
0.4.0 Mar 2, 2018
0.3.0 Feb 13, 2018
0.2.0 Feb 9, 2018
0.1.0 Feb 7, 2018

#543 in Machine learning

MPL-2.0 license

84KB
2K SLoC

Build Status

Machine Box Client

machinebox is a Rust client for the machinebox.io suite of machines. It provides a simple means of accessing the machines, exposing common functionality to all machines as well as box-specific functionality. Each "box" or "box type" is separated into its own module and struct.

Modules

The following is a list of the modules corresponding to machinebox types and which ones have been implemented so far:

  • Textbox
  • Facebox
  • Tagbox
  • Videobox
  • Nudebox
  • Suggestionbox
  • Fakebox

Usage

To use features, simply call the appropriate function on the corresponding box:

extern crate machinebox;

use machinebox::textbox::Textbox;
use machinebox::BoxClient;

// Make sure you actually have a textbox running here...
let tb = Textbox::new("http://localhost:8080");

let analysis = tb.check("Pay William $200 tomorrow");
    if let Ok(res) = analysis {
        let money = res.sentences[0].entities.iter().find(|e| e.entity_type == "money");
        match money {
            Some(val) => println!("You specified {}", val.text),
            None => println!("You didn't indicate money"),
        }
    }

The above code will analyse the phrase Pay William $200 tomorrow, flagging tomorrow as a date and 200 as an entity of type money.

Notes

If you run the tests locally, you'll need RUST_TEST_THREADS=1 because the mock HTTP server persists throughout the lifetime of the test run.

Dependencies

~15–26MB
~444K SLoC