diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ed625919..2a894d658 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Change Log ========== +## Version unreleased + +_2017-??-??_ + +* Added: Natural Language Understanding model management APIs + ## Version 0.26.0 _2017-05-16_ @@ -9,7 +15,6 @@ _2017-05-16_ * Added: Tone Analyzer `tone_chat` * Fixed: Unicode issues in Python 3 - ## Version 0.25.2 _2017-03-21_ diff --git a/test/test_natural_language_understanding.py b/test/test_natural_language_understanding.py index 6c720ecbe..762f1a903 100644 --- a/test/test_natural_language_understanding.py +++ b/test/test_natural_language_understanding.py @@ -122,3 +122,29 @@ def test_url_analyze(self): features.Emotion(document=False)], url="http://cnn.com", xpath="/bogus/xpath", language="en") assert len(responses.calls) == 1 + + @responses.activate + def test_list_models(self): + nlu_url = "http://bogus.com/v1/models" + responses.add(responses.GET, nlu_url, status=200, + body="{\"resulting_key\": true}", + content_type='application/json') + nlu = NaturalLanguageUnderstandingV1(version='2016-01-23', + url='http://bogus.com', + username='username', + password='password') + nlu.list_models() + assert len(responses.calls) == 1 + + @responses.activate + def test_delete_model(self): + model_id = "invalid_model_id" + nlu_url = "http://bogus.com/v1/models/" + model_id + responses.add(responses.DELETE, nlu_url, status=200, + body="{}", content_type='application/json') + nlu = NaturalLanguageUnderstandingV1(version='2016-01-23', + url='http://bogus.com', + username='username', + password='password') + nlu.delete_model(model_id) + assert len(responses.calls) == 1 diff --git a/watson_developer_cloud/natural_language_understanding_v1.py b/watson_developer_cloud/natural_language_understanding_v1.py index c30de5c8f..0d4c0b9e5 100644 --- a/watson_developer_cloud/natural_language_understanding_v1.py +++ b/watson_developer_cloud/natural_language_understanding_v1.py @@ -82,3 +82,24 @@ def analyze(self, features, text=None, url=None, html=None, headers={'content-type': 'application/json'}, json=body, accept_json=True) + + def list_models(self): + """ + Lists the custom models available for your service instance + :return: dict of available custom models + """ + return self.request(method='GET', url='/v1/models', + params={"version": self.version}, + accept_json=True) + + def delete_model(self, model_id): + """ + Deletes a custom model + :param model_id: The ID of the model to delete + :return: dict with status of model deletion + """ + + return self.request(method='DELETE', + url='/v1/models/{0}'.format(model_id), + params={"version": self.version}, + accept_json=True)