Skip to content

Commit 272412e

Browse files
authored
Merge pull request #209 from watson-developer-cloud/NLU-models-methods-tests
Add model management methods to Natural Language Understanding
2 parents f81bea7 + a3a52ca commit 272412e

3 files changed

Lines changed: 53 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
Change Log
22
==========
33

4+
## Version unreleased
5+
6+
_2017-??-??_
7+
8+
* Added: Natural Language Understanding model management APIs
9+
410
## Version 0.26.0
511

612
_2017-05-16_
@@ -9,7 +15,6 @@ _2017-05-16_
915
* Added: Tone Analyzer `tone_chat`
1016
* Fixed: Unicode issues in Python 3
1117

12-
1318
## Version 0.25.2
1419

1520
_2017-03-21_

test/test_natural_language_understanding.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,3 +122,29 @@ def test_url_analyze(self):
122122
features.Emotion(document=False)], url="http://cnn.com",
123123
xpath="/bogus/xpath", language="en")
124124
assert len(responses.calls) == 1
125+
126+
@responses.activate
127+
def test_list_models(self):
128+
nlu_url = "http://bogus.com/v1/models"
129+
responses.add(responses.GET, nlu_url, status=200,
130+
body="{\"resulting_key\": true}",
131+
content_type='application/json')
132+
nlu = NaturalLanguageUnderstandingV1(version='2016-01-23',
133+
url='http://bogus.com',
134+
username='username',
135+
password='password')
136+
nlu.list_models()
137+
assert len(responses.calls) == 1
138+
139+
@responses.activate
140+
def test_delete_model(self):
141+
model_id = "invalid_model_id"
142+
nlu_url = "http://bogus.com/v1/models/" + model_id
143+
responses.add(responses.DELETE, nlu_url, status=200,
144+
body="{}", content_type='application/json')
145+
nlu = NaturalLanguageUnderstandingV1(version='2016-01-23',
146+
url='http://bogus.com',
147+
username='username',
148+
password='password')
149+
nlu.delete_model(model_id)
150+
assert len(responses.calls) == 1

watson_developer_cloud/natural_language_understanding_v1.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,24 @@ def analyze(self, features, text=None, url=None, html=None,
8282
headers={'content-type': 'application/json'},
8383
json=body,
8484
accept_json=True)
85+
86+
def list_models(self):
87+
"""
88+
Lists the custom models available for your service instance
89+
:return: dict of available custom models
90+
"""
91+
return self.request(method='GET', url='/v1/models',
92+
params={"version": self.version},
93+
accept_json=True)
94+
95+
def delete_model(self, model_id):
96+
"""
97+
Deletes a custom model
98+
:param model_id: The ID of the model to delete
99+
:return: dict with status of model deletion
100+
"""
101+
102+
return self.request(method='DELETE',
103+
url='/v1/models/{0}'.format(model_id),
104+
params={"version": self.version},
105+
accept_json=True)

0 commit comments

Comments
 (0)