Skip to main content

This is a client for the Test.ai classifier RPC server, which allows direct use of the classifier via a Python API and also provides a helper method for use with Selenium.

Project description

Test.ai Classifier - Python Client

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

Installation & Setup

pip install testai_classifier

Usage

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 file.read()
    # 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
    client.close()

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)

    driver.get("https://test.ai")
    els = client.find_elements_matching_label(driver, "twitter")
    els[0].click()
    assert driver.current_url == "https://twitter.com/testdotai"

    client.close()

Development

  • make install - install deps (requires Pipenv)
  • make protogen - generate python client helpers from .proto file
  • make clean - reset generated files
  • make build - run setup.py 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)

Project details


Download files

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

Source Distribution

testai_classifier-1.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

testai_classifier-1.1.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file testai_classifier-1.1.0.tar.gz.

File metadata

  • Download URL: testai_classifier-1.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.5

File hashes

Hashes for testai_classifier-1.1.0.tar.gz
Algorithm Hash digest
SHA256 e8813787be96f0fd3eaa8281d78674ffe646c78f10793090132070fb43f84436
MD5 30bee048f5feda023b9bdc9b77ee7154
BLAKE2b-256 9ec3765b8a01e396ea234c1c1fc6c68a39581bd4e7d3b5a8af1e67fcf7456129

See more details on using hashes here.

File details

Details for the file testai_classifier-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: testai_classifier-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.5

File hashes

Hashes for testai_classifier-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 26518487abbcbc757d81e564700fa055fc8b77afac8e00f5428769b29e34b713
MD5 3b436b950024f8492fb44c77af682935
BLAKE2b-256 87a407d541a38a2efe49bb4994d98816f8a1ad03ae865c8cbee282bed65632cd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page