data-attribute-recommendation-python-sdk icon indicating copy to clipboard operation
data-attribute-recommendation-python-sdk copied to clipboard

API simplification

Open DBusAI opened this issue 4 years ago • 1 comments

What do you think about API simplification?

  1. Too long import: Current: from sap.aibus.dar.client.model_manager_client import ModelManagerClient Proposal: 'from sap.dar import MMClient'

  2. Code cutting for model creation: Current: with open('dar_test.txt', 'r') as sk_file: sk_data = sk_file.read() json_data = json.loads(sk_data) creator = ModelCreator.construct_from_credentials( dar_url=json_data['url'], clientid=json_data['uaa']['clientid'], clientsecret=json_data['uaa']['clientsecret'], uaa_url=json_data['uaa']['url'], ) Proposal: creator = ModelCreator(filekey='dar_test.txt')

  3. Config proposal: Current: new_schema = { "features": [ {"label": "manufacturer", "type": "CATEGORY"}, {"label": "description", "type": "TEXT"}, {"label": "price", "type": "NUMBER"}, ], "labels": [ {"label": "level1_category", "type": "CATEGORY"}, {"label": "level2_category", "type": "CATEGORY"}, {"label": "level3_category", "type": "CATEGORY"},

    ], "name": "bestbuy-category-prediction", } Proposal: Features = fc.Category(["manufacturer"])+fc.Text(["description"])+ fc.Number(["price]) Labels = fc.Category(["level1_category,level2_category,level3_category"]) Schema = Features+Labels ^ less code, easy to read, easy to change

  4. Enums for templates: Current: model_template_id="d7810207-ca31-4d4d-9b5a-841a644fd81f" Proposal: model_template = 0

  5. One class for rule them all: Current: ModelManager, ModelCreator, InferenceClient, etc. Proposal: DARModel DARModel.create() DARModel.deploy() DARModel.inference() DARModel.templates DARModel.deployments etc...

DBusAI avatar Nov 16 '20 11:11 DBusAI