Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
Change Log
==========

## Version unreleased

_2017-??-??_

* Added: Natural Language Understanding model management APIs

## Version 0.26.0

_2017-05-16_
Expand All @@ -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_
Expand Down
26 changes: 26 additions & 0 deletions test/test_natural_language_understanding.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
21 changes: 21 additions & 0 deletions watson_developer_cloud/natural_language_understanding_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)