Skip to content

Commit

Permalink
Merge pull request #3822 from EdouM/3819_message_id_http_parse
Browse files Browse the repository at this point in the history
Issue 3819 - pass message_id to _rasa_http_parse
  • Loading branch information
tabergma committed Jul 9, 2019
2 parents a55530a + 8b27db3 commit e649e5f
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 8 deletions.
4 changes: 4 additions & 0 deletions docs/_static/spec/rasa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 7 additions & 5 deletions rasa/core/interpreter.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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
Expand All @@ -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")

Expand Down Expand Up @@ -255,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

Expand Down
4 changes: 3 additions & 1 deletion rasa/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -804,7 +804,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)
Expand Down
4 changes: 2 additions & 2 deletions tests/core/test_interpreter.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit e649e5f

Please sign in to comment.