From a44e62a03d3009ef44f953ee3ba95a405c2f54b9 Mon Sep 17 00:00:00 2001 From: Edouard Date: Wed, 19 Jun 2019 10:22:25 +0200 Subject: [PATCH 1/3] pass message_id to _rasa_http_parse --- rasa/core/interpreter.py | 10 ++++++---- tests/core/test_interpreter.py | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/rasa/core/interpreter.py b/rasa/core/interpreter.py index 83c441a45d45..af94cf752ea1 100644 --- a/rasa/core/interpreter.py +++ b/rasa/core/interpreter.py @@ -180,7 +180,7 @@ def __init__(self, endpoint: EndpointConfig = None) -> None: self.endpoint = EndpointConfig(constants.DEFAULT_SERVER_URL) async def parse( - self, text: Text, message_id: Optional[int] = None + self, text: Text, message_id: Optional[Text] = None ) -> Dict[Text, Any]: """Parse a text message. @@ -191,11 +191,13 @@ async def parse( "entities": [], "text": "", } - result = await self._rasa_http_parse(text) + result = await self._rasa_http_parse(text, message_id) return result if result is not None else default_return - async def _rasa_http_parse(self, text: Text) -> Optional[Dict[Text, Any]]: + async def _rasa_http_parse( + self, text: Text, message_id: Optional[Text] = None + ) -> Optional[Dict[Text, Any]]: """Send a text message to a running rasa NLU http server. Return `None` on failure.""" from requests.compat import urljoin # pytype: disable=import-error @@ -207,7 +209,7 @@ async def _rasa_http_parse(self, text: Text) -> Optional[Dict[Text, Any]]: ) return None - params = {"token": self.endpoint.token, "text": text} + params = {"token": self.endpoint.token, "text": text, "message_id": message_id} url = urljoin(self.endpoint.url, "/model/parse") diff --git a/tests/core/test_interpreter.py b/tests/core/test_interpreter.py index 3ef7c0b61a28..9b8f63c063a4 100644 --- a/tests/core/test_interpreter.py +++ b/tests/core/test_interpreter.py @@ -95,11 +95,11 @@ async def test_http_interpreter(): endpoint = EndpointConfig("https://example.com") interpreter = RasaNLUHttpInterpreter(endpoint=endpoint) - await interpreter.parse(text="message_text") + await interpreter.parse(text="message_text", message_id="message_id") r = latest_request(mocked, "POST", "https://example.com/model/parse") query = json_of_latest_request(r) - response = {"text": "message_text", "token": None} + response = {"text": "message_text", "token": None, "message_id": "message_id"} assert query == response From a2473ddeb560ff2e49f2029b49e25866c44d9299 Mon Sep 17 00:00:00 2001 From: Edouard Date: Mon, 1 Jul 2019 14:34:58 +0200 Subject: [PATCH 2/3] pass message_id to interpreter in server.py --- rasa/server.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rasa/server.py b/rasa/server.py index 33dc3a99e831..60dcaef71bed 100644 --- a/rasa/server.py +++ b/rasa/server.py @@ -799,7 +799,9 @@ async def parse(request: Request): try: data = emulator.normalise_request_json(request.json) - parse_data = await app.agent.interpreter.parse(data.get("text")) + parse_data = await app.agent.interpreter.parse( + data.get("text"), data.get("message_id") + ) response_data = emulator.normalise_response_json(parse_data) return response.json(response_data) From 5138c7d8c4c13c0deaf7efa38481fe83a7b8c09e Mon Sep 17 00:00:00 2001 From: Edouard Malet Date: Mon, 8 Jul 2019 17:03:06 +0200 Subject: [PATCH 3/3] add message_id to API Specs and to RasaNLUInterpreter class --- docs/_static/spec/rasa.yml | 4 ++++ rasa/core/interpreter.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/_static/spec/rasa.yml b/docs/_static/spec/rasa.yml index 3f0a1cde43c4..769016191355 100644 --- a/docs/_static/spec/rasa.yml +++ b/docs/_static/spec/rasa.yml @@ -532,6 +532,10 @@ paths: type: string description: Message to be parsed example: "Hello, I am Rasa!" + message_id: + type: string + description: Optional ID for message to be parsed + example: "b2831e73-1407-4ba0-a861-0f30a42a2a5a" responses: 200: description: Success diff --git a/rasa/core/interpreter.py b/rasa/core/interpreter.py index af94cf752ea1..3cb9ec3b1612 100644 --- a/rasa/core/interpreter.py +++ b/rasa/core/interpreter.py @@ -257,7 +257,7 @@ async def parse( if self.lazy_init and self.interpreter is None: self._load_interpreter() - result = self.interpreter.parse(text) + result = self.interpreter.parse(text, message_id) return result