async def prepare_token_serialisation( tracker_store: TrackerStore, response_selector_agent: Agent, sender_id: Text ): text = "Good morning" tokenizer = WhitespaceTokenizer(WhitespaceTokenizer.get_default_config()) tokens = tokenizer.tokenize(Message(data={"text": text}), "text") indices = [[t.start, t.end] for t in tokens] tracker = tracker_store.get_or_create_tracker(sender_id=sender_id) parse_data = await response_selector_agent.parse_message(text) event = UserUttered( "Good morning", parse_data.get("intent"), parse_data.get("entities", []), parse_data, ) tracker.update(event) tracker_store.save(tracker) retrieved_tracker = tracker_store.retrieve(sender_id=sender_id) event = retrieved_tracker.get_last_event_for(event_type=UserUttered) event_tokens = event.as_dict().get("parse_data").get("text_tokens") assert event_tokens == indices
def test_dynamo_tracker_floats(): conversation_id = uuid.uuid4().hex tracker_store = DynamoTrackerStore(domain) tracker = tracker_store.get_or_create_tracker(conversation_id, append_action_listen=False) # save `slot` event with known `float`-type timestamp timestamp = 13423.23434623 tracker.update(SlotSet("key", "val", timestamp=timestamp)) tracker_store.save(tracker) # retrieve tracker and the event timestamp is retrieved as a `float` tracker = tracker_store.get_or_create_tracker(conversation_id) retrieved_timestamp = tracker.events[0].timestamp assert isinstance(retrieved_timestamp, float) assert retrieved_timestamp == timestamp