Skip to content

Commit

Permalink
changelog and review
Browse files Browse the repository at this point in the history
  • Loading branch information
ricwo committed Mar 23, 2018
1 parent 86429d7 commit dcc498a
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 10 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.rst
Expand Up @@ -18,6 +18,7 @@ Added
- added ability to list projects in cloud storage services for model loading
- server evaluation endpoint at ``POST /evaluate``
- CRF entity recognizer now returns a confidence score when extracting entities
- server endpoint at ``DELETE /models`` to unload models from server memory

Changed
-------
Expand Down
8 changes: 4 additions & 4 deletions rasa_nlu/data_router.py
Expand Up @@ -351,15 +351,15 @@ def unload_model(self, project, model):
# type: (Text, Text) -> Dict[Text]
"""Unload a model from server memory."""

project = project or RasaNLUConfig.DEFAULT_PROJECT_NAME

if project not in self.project_store:
if project is None:
raise InvalidProjectError("No project specified".format(project))
elif project not in self.project_store:
raise InvalidProjectError("Project {} could not "
"be found".format(project))

try:
unloaded_model = self.project_store[project].unload(model)
return {"unloaded_model": unloaded_model}
return unloaded_model
except KeyError:
raise InvalidProjectError("Failed to unload model {} "
"for project {}.".format(model, project))
8 changes: 5 additions & 3 deletions rasa_nlu/project.py
Expand Up @@ -189,9 +189,11 @@ def as_dict(self):
'loaded_models': self._list_loaded_models()}

def _list_loaded_models(self):
return [
model for model, interpreter in self._models.items() if interpreter
]
models = []
for model, interpreter in self._models.items():
if interpreter is not None:
models.append(model)
return models

def _list_models_in_cloud(self, config):
# type: (RasaNLUConfig) -> List[Text]
Expand Down
7 changes: 5 additions & 2 deletions rasa_nlu/server.py
Expand Up @@ -245,11 +245,14 @@ def unload_model(self, request):
request.setHeader('Content-Type', 'application/json')
try:
request.setResponseCode(200)
response = self.data_router.unload_model(params.get('project'),
params.get('model'))
response = self.data_router.unload_model(
params.get('project', RasaNLUConfig.DEFAULT_PROJECT_NAME),
params.get('model')
)
return simplejson.dumps(response)
except Exception as e:
request.setResponseCode(500)
logger.exception(e)
return simplejson.dumps({"error": "{}".format(e)})


Expand Down
2 changes: 1 addition & 1 deletion tests/base/test_server.py
Expand Up @@ -245,4 +245,4 @@ def test_unload_fallback(app):
response = yield app.delete(unload)
rjs = yield response.json()
assert response.code == 200, "Fallback model unloaded"
assert rjs == {"unloaded_model": "fallback"}
assert rjs == "fallback"

0 comments on commit dcc498a

Please sign in to comment.