コード例 #1
0
ファイル: server.py プロジェクト: zoltan-fedor/rasa_core
    def retrieve_tracker(sender_id):
        """Get a dump of a conversations tracker including its events."""

        if not agent.tracker_store:
            return Response("No tracker store available.", status=503)

        # parameters
        should_ignore_restarts = utils.bool_arg('ignore_restarts',
                                                default=False)
        should_include_events = utils.bool_arg('events', default=True)
        until_time = request.args.get('until', None)

        # retrieve tracker and set to requested state
        tracker = agent.tracker_store.get_or_create_tracker(sender_id)
        if not tracker:
            return Response(
                "Could not retrieve tracker. Most likely "
                "because there is no domain set on the agent.",
                status=503)

        if until_time is not None:
            tracker = tracker.travel_back_in_time(float(until_time))

        # dump and return tracker
        state = tracker.current_state(
            should_include_events=should_include_events,
            should_ignore_restarts=should_ignore_restarts)
        return jsonify(state)
コード例 #2
0
ファイル: server.py プロジェクト: rohitjun08/rasa_core
    def retrieve_tracker(sender_id):
        """Get a dump of a conversations tracker including its events."""

        if not agent.tracker_store:
            return Response("No tracker store available.",
                            status=503)

        # parameters
        should_ignore_restarts = utils.bool_arg('ignore_restarts',
                                                default=False)
        should_include_events = utils.bool_arg('events',
                                               default=True)
        until_time = request.args.get('until', None)

        # retrieve tracker and set to requested state
        tracker = agent.tracker_store.get_or_create_tracker(sender_id)
        if not tracker:
            return Response("Could not retrieve tracker. Most likely "
                            "because there is no domain set on the agent.",
                            status=503)

        if until_time is not None:
            tracker = tracker.travel_back_in_time(float(until_time))

        # dump and return tracker
        state = tracker.current_state(
                should_include_events=should_include_events,
                should_ignore_restarts=should_ignore_restarts)
        return jsonify(state)
コード例 #3
0
ファイル: server.py プロジェクト: chnhaoli/NLP-featurization
    def retrieve_tracker(sender_id):
        """Get a dump of a conversations tracker including its events."""

        if not agent.tracker_store:
            return Response("No tracker store available.",
                            status=503)

        # parameters
        default_verbosity = "AFTER_RESTART"

        # this is for backwards compatibility
        if "ignore_restarts" in request.args:
            ignore_restarts = utils.bool_arg('ignore_restarts', default=False)
            if ignore_restarts:
                default_verbosity = "ALL"

        if "events" in request.args:
            include_events = utils.bool_arg('events', default=True)
            if not include_events:
                default_verbosity = "NONE"

        event_verbosity_str = request.args.get(
                'include_events', default=default_verbosity).upper()
        try:
            verbosity = EventVerbosity[event_verbosity_str]
        except KeyError:
            enum_values = ", ".join([e.name for e in EventVerbosity])
            return Response(
                "Invalid parameter value for 'events'. Should be "
                "one of {}".format(enum_values),
                status=404)

        until_time = request.args.get('until', None)

        # retrieve tracker and set to requested state
        tracker = agent.tracker_store.get_or_create_tracker(sender_id)
        if not tracker:
            return Response("Could not retrieve tracker. Most likely "
                            "because there is no domain set on the agent.",
                            status=503)

        if until_time is not None:
            tracker = tracker.travel_back_in_time(float(until_time))

        # dump and return tracker

        state = tracker.current_state(verbosity)
        return jsonify(state)
コード例 #4
0
ファイル: server.py プロジェクト: ng-healthpointe/rasa_core
    async def retrieve_tracker(request: Request, sender_id: Text):
        """Get a dump of a conversation's tracker including its events."""

        if not app.agent.tracker_store:
            raise ErrorResponse(503, "NoTrackerStore",
                                "No tracker store available. Make sure to "
                                "configure a tracker store when starting "
                                "the server.")

        # parameters
        default_verbosity = EventVerbosity.AFTER_RESTART

        # this is for backwards compatibility
        if "ignore_restarts" in request.raw_args:
            ignore_restarts = utils.bool_arg(request, 'ignore_restarts',
                                             default=False)
            if ignore_restarts:
                default_verbosity = EventVerbosity.ALL

        if "events" in request.raw_args:
            include_events = utils.bool_arg(request, 'events',
                                            default=True)
            if not include_events:
                default_verbosity = EventVerbosity.NONE

        verbosity = event_verbosity_parameter(request,
                                              default_verbosity)

        # retrieve tracker and set to requested state
        tracker = app.agent.tracker_store.get_or_create_tracker(sender_id)
        if not tracker:
            raise ErrorResponse(503,
                                "NoDomain",
                                "Could not retrieve tracker. Most likely "
                                "because there is no domain set on the agent.")

        until_time = utils.float_arg(request, 'until')
        if until_time is not None:
            tracker = tracker.travel_back_in_time(until_time)

        # dump and return tracker

        state = tracker.current_state(verbosity)
        return response.json(state)
コード例 #5
0
ファイル: server.py プロジェクト: danielgolabek/rasa_core
    def retrieve_tracker(sender_id):
        """Get a dump of a conversations tracker including its events."""

        # parameters
        should_ignore_restarts = utils.bool_arg('ignore_restarts',
                                                default=False)
        should_include_events = utils.bool_arg('events', default=True)
        until_time = request.args.get('until', None)

        # retrieve tracker and set to requested state
        tracker = agent.tracker_store.get_or_create_tracker(sender_id)
        if until_time is not None:
            tracker = tracker.travel_back_in_time(float(until_time))

        # dump and return tracker
        state = tracker.current_state(
            should_include_events=should_include_events,
            should_ignore_restarts=should_ignore_restarts)
        return jsonify(state)
コード例 #6
0
ファイル: server.py プロジェクト: twollnik/rasa_core
    def retrieve_tracker(sender_id):
        """Get a dump of a conversations tracker including its events."""

        if not agent.tracker_store:
            return error(
                503, "NoTrackerStore",
                "No tracker store available. Make sure to configure "
                "a tracker store when starting the server.")

        # parameters
        default_verbosity = EventVerbosity.AFTER_RESTART

        # this is for backwards compatibility
        if "ignore_restarts" in request.args:
            ignore_restarts = utils.bool_arg('ignore_restarts', default=False)
            if ignore_restarts:
                default_verbosity = EventVerbosity.ALL

        if "events" in request.args:
            include_events = utils.bool_arg('events', default=True)
            if not include_events:
                default_verbosity = EventVerbosity.NONE

        verbosity = event_verbosity_parameter(default_verbosity)

        until_time = request.args.get('until', None)

        # retrieve tracker and set to requested state
        tracker = agent.tracker_store.get_or_create_tracker(sender_id)
        if not tracker:
            return error(
                503, "NoDomain", "Could not retrieve tracker. Most likely "
                "because there is no domain set on the agent.")

        if until_time is not None:
            tracker = tracker.travel_back_in_time(float(until_time))

        # dump and return tracker

        state = tracker.current_state(verbosity)
        return jsonify(state)
コード例 #7
0
def evaluate_stories():
    """Evaluate stories against the currently loaded model."""
    tmp_file = rasa_nlu.utils.create_temporary_file(request.get_data(),
                                                    mode='w+b')
    use_e2e = utils.bool_arg('e2e', default=False)
    try:
        evaluation = run_story_evaluation(tmp_file, agent, use_e2e=use_e2e)
        return jsonify(evaluation)
    except ValueError as e:
        return error(400, "FailedEvaluation",
                     "Evaluation could not be created. Error: {}"
                     "".format(e))
コード例 #8
0
        def receive():
            sender_id = self._extract_sender(request)
            text = self._extract_message(request)
            should_use_stream = utils.bool_arg("stream", default=False)

            if should_use_stream:
                return Response(self.stream_response(on_new_message, text,
                                                     sender_id),
                                content_type='text/event-stream')
            else:
                collector = CollectingOutputChannel()
                on_new_message(UserMessage(text, collector, sender_id))
                return jsonify(collector.messages)
コード例 #9
0
ファイル: server.py プロジェクト: ng-healthpointe/rasa_core
    async def evaluate_stories(request: Request):
        """Evaluate stories against the currently loaded model."""
        import rasa_nlu.utils

        tmp_file = rasa_nlu.utils.create_temporary_file(request.body,
                                                        mode='w+b')
        use_e2e = utils.bool_arg(request, 'e2e', default=False)
        try:
            evaluation = await test(tmp_file, app.agent, use_e2e=use_e2e)
            return response.json(evaluation)
        except ValueError as e:
            raise ErrorResponse(400, "FailedEvaluation",
                                "Evaluation could not be created. Error: {}"
                                "".format(e))
コード例 #10
0
ファイル: channel.py プロジェクト: ng-healthpointe/rasa_core
        async def receive(request):
            sender_id = await self._extract_sender(request)
            text = self._extract_message(request)
            should_use_stream = utils.bool_arg(request, "stream",
                                               default=False)

            if should_use_stream:
                return response.stream(
                    self.stream_response(on_new_message, text, sender_id),
                    content_type='text/event-stream')
            else:
                collector = CollectingOutputChannel()
                # noinspection PyBroadException
                try:
                    await on_new_message(UserMessage(text, collector, sender_id,
                                                     input_channel=self.name()))
                except CancelledError:
                    logger.error("Message handling timed out for "
                                 "user message '{}'.".format(text))
                except Exception:
                    logger.exception("An exception occured while handling "
                                     "user message '{}'.".format(text))
                return response.json(collector.messages)