Skip to content
Python client for classifier server
Python Makefile
Branch: master
Clone or download
Latest commit d63c140 Dec 20, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
proto @ 990d986 pulling out into own repo Dec 20, 2019
testai_classifier pulling out into own repo Dec 20, 2019
.gitignore pulling out into own repo Dec 20, 2019
.gitmodules pulling out into own repo Dec 20, 2019
LICENSE pulling out into own repo Dec 20, 2019
Makefile pulling out into own repo Dec 20, 2019
Pipfile.lock update setup info Dec 20, 2019 Classifier - Python Client

The code in this directory defines a client library for use with the gRPC-based classifier server.

Installation & Setup

pip install testai_classifier


This package exposes a ClassifierClient class:

from testai_classifier import ClassifierClient

You can use it to attempt to match images to a semantic label:

def classify():
    client = ClassifierClient(HOST, PORT)
    # assume cart_img and menu_img are byte streams as delivered by
    # define a mapping between ids and image data
    data = {'cart': cart_img, 'menu': menu_img}

    # define which label we are looking to match
    label = 'cart'

    # attempt to match the images with the label
    # confidence is from 0.0 to 1.0 -- any matches with lower than the specified
    # confidence are not returned.
    # allow_weaker_matches specifies whether to return matches that are above
    # the confidence threshold but whose most confident match was a *different*
    # label
    res = client.classify_images(label, data, confidence=0.0, allow_weaker_matches=True)

    # res looks like:
    # {'cart': {'label': 'cart', 'confidence': 0.9, 'confidence_for_hint': 0.9},
    #  'menu': {'label': 'menu', 'confidence': 0.9, 'confidence_for_hint': 0.2}}

    # always close the client connection

You can also use it in conjunction with a Selenium Python client driver object, to find elements in a web page based on the label:

def find_elements():
    client = ClassifierClient(HOST, PORT)

    els = client.find_elements_matching_label(driver, "twitter")
    assert driver.current_url == ""



  • make install - install deps (requires Pipenv)
  • make protogen - generate python client helpers from .proto file
  • make clean - reset generated files
  • make build - run to generate publishable files
  • make test - run test suite (also make unit-test and make se-test)
  • make publish - publish to pypi (also make publish-test)
You can’t perform that action at this time.