Skip to content
No description or website provided.
Python Shell HTML
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
tests
yhat
.gitignore
README.md
README.rst
TODO.md
release.sh
setup.py
test.py better error handler Nov 12, 2015

README.md

Yhat Python Client

This is the connection to the Yhat API. If you'd like to read more, visit our docs.

Table of Contents:

Quickstart

You can download the example here , or clone the git repo.

$ git clone git@github.com:yhat/yhat-examples.git
$ cd beer-recommender

Insert your APIKEY and USERNAME and run the script.

$ python recommender.py
Deploy? (y/N): y
# {"status": "success"}

Installation

Using pip:

$ pip install --upgrade yhat

From source:

$ git clone git@github.com:yhat/yhat-client.git
$ cd yhat-client
$ python setup.py install

Overview

Handling Input and Output

df to df

Specify df to df by decorating execute with the following:

from yhat import preprocess
# ...
# ...
@preprocess(in_type=pd.DataFrame, out_type=pd.DataFrame)
def execute(self, data)
# ...
# ...

Input

// making 1 prediction with an API call
{
  "column1": VALUE,
  "column2": VALUE
}
// making multiple predictions with 1 API call
{
  "column1": [ VALUE_1, VALUE_2 ]
  "column2": [ VALUE_1, VALUE_2 ]
}

Output

Data will come back with columns as keys and values as lists of values.

{
  "output_column1": [ VALUE_1 ],
  "output_column2": [ VALUE_1 ]
}

df to dict

from yhat import preprocess
# ...
# ...
@preprocess(in_type=pd.DataFrame, out_type=dict)
def execute(self, data)
# ...
# ...

Input

// making 1 prediction with an API call
{
  "column1": VALUE,
  "column2": VALUE
}
// making multiple predictions with 1 API call
{
  "column1": [ VALUE_1, VALUE_2 ]
  "column2": [ VALUE_1, VALUE_2 ]
}

Output

Selecting the dict output gives the user the ability to define their own output format (so long as it is a valid Python dictionary.

// this is valid
{
  "pred": 1
  "values": [1, 2, 3]
}
// this is also valid
{
  "x": {
    "y": 10
  "z": 100
  }
}

dict to dict

This is the most "free form" means of input and output. The user can send in any valid dictionary, process it how they like, and then return any valid dictionary .

from yhat import preprocess
# ...
# ...
@preprocess(in_type=dict, out_type=dict)
def execute(self, data)
# ...
# ...

Input

// this is valid
{
  "pred": 1
  "values": [1, 2, 3]
}
// this is also valid
{
  "x": {
    "y": 10
  },
    "z": 100
  }
}

Output

// this is valid
{
  "pred": 1
  "values": [1, 2, 3]
}
// this is also valid
{
  "x": {
    "y": 10
  },
    "z": 100
  }
}

Deploying

>>> yh.deploy("myExampleModel", MyExampleModel, globals())

Examples

yhat-cli

Usage

yhat-cli config [--reset]
yhat-cli models [--admin]
yhat-cli model <modelname>
yhat-cli (-h | --help)
yhat-cli (-v | --version)

config [--reset]

Configure the yhat client with your API credentials. The option --reset will reset your credentials.

models

Return the models for your account. The option --admin returns all models on the server, you must have admin access for this.

model <modelname>

Returns details about the given model. You must own this model to view it.

Dependencies

Required

  • doctopt
  • progressbar
  • pip
  • Flask
  • colorama
  • websocket-client
  • ElasticTabstops
  • dill

Highly suggested

  • pandas
  • sklearn

Analytics

Something went wrong with that request. Please try again.