Skip to main content

A simple machine learning inference library.

Project description

Spine API

Access your ML models through HTTP requests.

It is simple, clean, and easy to use. It works with jupyter notebooks too.

POST http://your_server_ip/api/your_project/your_function => your_result

Installation

$ pip instal spine-api

Usage

1. Import the library

from spine import Connection

2. Define your inference function

def hello_function (input):
  # ...
  # do something with input
  # ...
  return output

3. Specify name and description to initialize your project

spine_connection = Connection(
  project_name="hello_project",
  description="An inference API for my ML model",
  author="", # Optional
  link="" # Optional
)

4. Register your function(s)

spine_connection.register_function(
  pathname='hello_function',
  function=hello_function,
  # ============ Optional ==================
  # Set True if you want to protect this API
  requiresAuth=False,
  authToken="xxx",
  # ========================================
)

The function will be accessible through /api/hello_project/hello_function

5. Run

spine_connection.run()

That's it! You can now communicate with your ML model through HTTP post requests.

6. Send requests

Note You have to first run JSON.stringify(input) for the request data.

const data = {
  input: JSON.stringify(YOUR_INPUT)
  // ============ Optional ==================
  // Required if the API is protected
  authToken: "xxx",
  // ========================================
}

Post request body to the endpoint.

const url = 'https://spineapi.com/api/hello_function';

fetch(
  url,
  {
    method: 'POST',
    body: JSON.stringify(data),
    headers: new Headers({ 'Content-Type': 'application/json' })
  }
)
.then(res => res.json())
.catch(error => console.error('Error:', error))
.then(response => console.log('Success:', response));

Self hosted server

Prerequisites

  1. Make sure your server is accessible through port 3000
  2. Have Node.js installed on your server

Installation

$ git clone https://github.com/spineapi/spine-api
$ cd spine-api/server
$ npm install

Run server

$ node server.js

Now you can access your server through http://YOUR_SERVER_IP:3000. Copy the passcode.

Specify url and passcode For self hosted server, you'll have to specify url and passcode.

from spine import Connection
spine_connection = Connection(
  name="hello_project",
  description="a demo app for my ML model",
  url="http://YOUR_SERVER_IP:3000",
  passcode="YOUR_PASSCODE"
)

For other steps, it's all the same.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for spineapi, version 0.0.2
Filename, size File type Python version Upload date Hashes
Filename, size spineapi-0.0.2-py3-none-any.whl (5.2 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size spineapi-0.0.2.tar.gz (3.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page