def run(serve_forever=True): AvailableEndpoints = namedtuple('AvailableEndpoints', 'nlg ' 'nlu ' 'action ' 'model') _endpoints = EndpointConfig(url="http://localhost:5055/webhook") try: endpoints = AvailableEndpoints(action=_endpoints, nlg=None, nlu=None, model=None) _interpreter = RasaNLUInterpreter("models/current/nlu/") _agent = load_agent("models/current/dialogue", interpreter=_interpreter, endpoints=endpoints) serve_application( _agent, "cmdline", constants.DEFAULT_SERVER_PORT, ) except: raise Exception("Failed to run")
def run(core_dir, nlu_dir): _endpoints = AvailableEndpoints.read_endpoints('endpoints.yml') _interpreter = NaturalLanguageInterpreter.create(nlu_dir) input_channel = TelegramInput(access_token=os.getenv( 'TELEGRAM_ACCESS_TOKEN', ''), verify=os.getenv('VERIFY', ''), webhook_url=os.getenv('WEBHOOK_URL', '')) elastic_user = os.getenv('ELASTICSEARCH_USER') if elastic_user is None: _tracker_store = ElasticTrackerStore( domain=os.getenv('ELASTICSEARCH_URL', 'elasticsearch:9200')) else: _tracker_store = ElasticTrackerStore( domain=os.getenv('ELASTICSEARCH_URL', 'elasticsearch:9200'), user=os.getenv('ELASTICSEARCH_USER', 'user'), password=os.getenv('ELASTICSEARCH_PASSWORD', 'password'), scheme=os.getenv('ELASTICSEARCH_HTTP_SCHEME', 'http'), scheme_port=os.getenv('ELASTICSEARCH_PORT', '80')) _agent = load_agent(core_dir, interpreter=_interpreter, tracker_store=_tracker_store, endpoints=_endpoints) http_server = _agent.handle_channels([input_channel], 5001, "") try: http_server.serve_forever() except Exception as exc: logger.exception(exc)
def run(core_dir, nlu_dir): input_channel = SocketIOInput(user_message_evt="user_uttered", bot_message_evt="bot_uttered", session_persistence=True, namespace=None) _endpoints = AvailableEndpoints.read_endpoints('endpoints.yml') _interpreter = NaturalLanguageInterpreter.create(nlu_dir) elastic_user = os.getenv('ELASTICSEARCH_USER') if elastic_user is None: _tracker_store = ElasticTrackerStore( domain=os.getenv('ELASTICSEARCH_URL', 'elasticsearch:9200')) else: _tracker_store = ElasticTrackerStore( domain=os.getenv('ELASTICSEARCH_URL', 'elasticsearch:9200'), user=os.getenv('ELASTICSEARCH_USER', 'user'), password=os.getenv('ELASTICSEARCH_PASSWORD', 'password'), scheme=os.getenv('ELASTICSEARCH_HTTP_SCHEME', 'http'), scheme_port=os.getenv('ELASTICSEARCH_PORT', '80')) _agent = load_agent(core_dir, interpreter=_interpreter, tracker_store=_tracker_store, endpoints=_endpoints) WEBCHAT_PORT = os.getenv('WEBCHAT_PORT', 3000) http_server = start_server([input_channel], "", "", int(WEBCHAT_PORT), _agent) try: http_server.serve_forever() except Exception as exc: logger.exception(exc)
def serve_application(model_directory: Text, nlu_model: Optional[Text] = None, tracker_dump: Optional[Text] = None, port: int = constants.DEFAULT_SERVER_PORT, endpoints: Optional[Text] = None, enable_api: bool = True): from rasa_core import run _endpoints = AvailableEndpoints.read_endpoints(endpoints) nlu = NaturalLanguageInterpreter.create(nlu_model, _endpoints.nlu) input_channels = run.create_http_input_channels("cmdline", None) agent = load_agent(model_directory, interpreter=nlu, endpoints=_endpoints) http_server = run.start_server(input_channels, None, None, port=port, initial_agent=agent, enable_api=enable_api) tracker = load_tracker_from_json(tracker_dump, agent.domain) run.start_cmdline_io(constants.DEFAULT_SERVER_FORMAT.format(port), http_server.stop, sender_id=tracker.sender_id) replay_events(tracker, agent) try: http_server.serve_forever() except Exception as exc: logger.exception(exc)
def run(core_dir, nlu_dir, endpoints_file): configs = { 'user': os.getenv('ROCKETCHAT_BOT_USERNAME'), 'password': os.getenv('ROCKETCHAT_BOT_PASSWORD'), 'server_url': os.getenv('ROCKETCHAT_URL'), } input_channel = RocketChatInput(user=configs['user'], password=configs['password'], server_url=configs['server_url']) _endpoints = AvailableEndpoints.read_endpoints(endpoints_file) _interpreter = NaturalLanguageInterpreter.create(nlu_dir, _endpoints.nlu) _tracker_store = ElasticTrackerStore() _agent = load_agent(core_dir, interpreter=_interpreter, tracker_store=_tracker_store, endpoints=_endpoints) http_server = start_server([input_channel], "", "", 5005, _agent) try: http_server.serve_forever() except Exception as exc: logger.exception(exc)
def run(core_dir, nlu_dir): pika_broker = None if ENABLE_ANALYTICS: pika_broker = PikaProducer(url, username, password, queue=queue) configs = { 'user': os.getenv('ROCKETCHAT_BOT_USERNAME'), 'password': os.getenv('ROCKETCHAT_BOT_PASSWORD'), 'server_url': os.getenv('ROCKETCHAT_URL'), } input_channel = RocketChatInput(user=configs['user'], password=configs['password'], server_url=configs['server_url']) _tracker_store = InMemoryTrackerStore(domain=None, event_broker=pika_broker) _endpoints = AvailableEndpoints.read_endpoints(None) _interpreter = NaturalLanguageInterpreter.create(nlu_dir) _agent = load_agent(core_dir, interpreter=_interpreter, tracker_store=_tracker_store, endpoints=_endpoints) http_server = start_server([input_channel], "", "", 5005, _agent) try: http_server.serve_forever() except Exception as exc: logger.exception(exc)
def run(): endpoints = AvailableEndpoints.read_endpoints('config/endpoints.yml') interpreter = NaturalLanguageInterpreter.create('models/ticket/nlu_bot',endpoints.nlu) agent = load_agent("models/dialogue", interpreter=interpreter, endpoints=endpoints) serve_application(agent,channel='rest') # serve_application(agent) return agent
def run_cmd(core="models/current/dialogue", nlu="models/current/nlu", endpoint="endpoints.yml"): from rasa_core import run _endpoints = run.AvailableEndpoints.read_endpoints(endpoint) _interpreter = run.NaturalLanguageInterpreter.create(nlu, _endpoints.nlu) _agent = run.load_agent(core_model=core, interpreter=_interpreter, endpoints=_endpoints) run.serve_application(_agent)
def run(core_dir, nlu_dir): _endpoints = AvailableEndpoints.read_endpoints('endpoints.yml') _interpreter = NaturalLanguageInterpreter.create(nlu_dir) input_channel = FacebookInput( fb_verify=VERIFY, # you need tell facebook this token, to confirm your URL fb_secret=SECRET, # your app secret fb_access_token=FACEBOOK_ACCESS_TOKEN # token for the page you subscribed to ) _agent = load_agent(core_dir, interpreter=_interpreter, endpoints=_endpoints) _agent.handle_channels([input_channel], 5001, serve_forever=True)
def run_evaluation(file_to_evaluate, fail_on_prediction_errors=False, max_stories=None, use_e2e=False): _endpoints = AvailableEndpoints.read_endpoints(None) _interpreter = NaturalLanguageInterpreter.create(NLU_DIR) _agent = load_agent(CORE_DIR, interpreter=_interpreter, endpoints=_endpoints) completed_trackers = _generate_trackers(file_to_evaluate, _agent, max_stories, use_e2e) story_evaluation, _ = collect_story_predictions(completed_trackers, _agent, fail_on_prediction_errors, use_e2e) _failed_stories = story_evaluation.failed_stories _num_stories = len(completed_trackers) _file_result = FileResult(num_stories=_num_stories, num_failed_stories=len(_failed_stories)) file_message = "EVALUATING STORIES FOR FILE '{}':".format(file_to_evaluate) utils.print_color('\n' + '#' * 80, BOLD_COLOR) utils.print_color(file_message, BOLD_COLOR) files_results[file_to_evaluate] = _file_result if len(_failed_stories) == 0: success_message = "The stories have passed for file '{}'!!" \ .format(file_to_evaluate) utils.print_color('\n' + '=' * len(success_message), BLUE_COLOR) utils.print_color(success_message, BLUE_COLOR) utils.print_color('=' * len(success_message), BLUE_COLOR) else: for failed_story in _failed_stories: process_failed_story(failed_story.export_stories()) story_name = re.search('## (.*)', failed_story.export_stories()).group(1) all_failed_stories.append(file_to_evaluate + ' - ' + story_name) utils.print_color('#' * 80 + '\n', BOLD_COLOR)
def run(core_dir, nlu_dir): _endpoints = AvailableEndpoints.read_endpoints('endpoints.yml') _interpreter = NaturalLanguageInterpreter.create(nlu_dir) input_channel = TelegramInput(access_token=os.getenv( 'TELEGRAM_ACCESS_TOKEN', ''), verify=os.getenv('VERIFY', ''), webhook_url=os.getenv('WEBHOOK_URL', '')) _agent = load_agent(core_dir, interpreter=_interpreter, endpoints=_endpoints) http_server = _agent.handle_channels([input_channel], 5001, "") try: http_server.serve_forever() except Exception as exc: logger.exception(exc)
def run(core_dir, nlu_dir): configs = { 'user': os.getenv('ROCKETCHAT_BOT_USERNAME'), 'password': os.getenv('ROCKETCHAT_BOT_PASSWORD'), 'server_url': os.getenv('ROCKETCHAT_URL'), } input_channel = RocketChatInput( user=configs['user'], password=configs['password'], server_url=configs['server_url'] ) _endpoints = AvailableEndpoints.read_endpoints(None) _interpreter = NaturalLanguageInterpreter.create(nlu_dir) elastic_user = os.getenv('ELASTICSEARCH_USER') if elastic_user is None: _tracker_store = ElasticTrackerStore( domain = os.getenv('ELASTICSEARCH_URL', 'elasticsearch:9200') ) else: _tracker_store = ElasticTrackerStore( domain = os.getenv('ELASTICSEARCH_URL', 'elasticsearch:9200'), user = os.getenv('ELASTICSEARCH_USER', 'user'), password = os.getenv('ELASTICSEARCH_PASSWORD', 'password'), scheme = os.getenv('ELASTICSEARCH_HTTP_SCHEME', 'http'), scheme_port = os.getenv('ELASTICSEARCH_PORT', '80') ) _agent = load_agent(core_dir, interpreter=_interpreter, tracker_store=_tracker_store, endpoints=_endpoints) http_server = start_server([input_channel], "", "", 5005, _agent) try: http_server.serve_forever() except Exception as exc: logger.exception(exc)
def __init__(self): self.config = Config() self.endpoints = AvailableEndpoints.read_endpoints( self.config.RASA_CONFIG_ENDPOINTS_FILE) # self.interpreter = NaturalLanguageInterpreter.create(self.config.RASA_CONFIG_NLU_TRAIN_PACKAGE_NAME, self.endpoints.nlu) self.agent = load_agent( self.config.RASA_CONFIG_CORE_DIALOGUE_PACKAGE_NAME, interpreter=None, endpoints=self.endpoints) self.executor = ActionExecutor() self.executor.register_package( self.config.RASA_CONFIG_ENDPOINTS_ACTION_PACKAGE_NAME) self.message_processor = MessageProcessor( # self.interpreter, None, self.agent.policy_ensemble, self.agent.domain, self.agent.tracker_store, self.agent.nlg, action_endpoint=self.agent.action_endpoint, message_preprocessor=None)
def start_core(platform_token): from rasa_core.utils import AvailableEndpoints _endpoints = AvailableEndpoints( # TODO: make endpoints more configurable, esp ports model=EndpointConfig( "http://localhost:5002" "/api/projects/default/models/tags/production", token=platform_token, wait_time_between_pulls=1), event_broker=EndpointConfig(**{"type": "file"}), nlg=EndpointConfig("http://localhost:5002" "/api/nlg", token=platform_token)) from rasa_core import broker _broker = broker.from_endpoint_config(_endpoints.event_broker) from rasa_core.tracker_store import TrackerStore _tracker_store = TrackerStore.find_tracker_store(None, _endpoints.tracker_store, _broker) from rasa_core.run import load_agent _agent = load_agent("models", interpreter=None, tracker_store=_tracker_store, endpoints=_endpoints) from rasa_core.run import serve_application print_success("About to start core") serve_application( _agent, "rasa", 5005, "credentials.yml", "*", None, # TODO: configure auth token True)
def serve_application(model_directory, # type: Text nlu_model=None, # type: Optional[Text] tracker_dump=None, # type: Optional[Text] port=constants.DEFAULT_SERVER_PORT, # type: int endpoints=None, # type: Optional[Text] enable_api=True # type: bool ): from rasa_core import run _endpoints = run.read_endpoints(endpoints) nlu = NaturalLanguageInterpreter.create(nlu_model, _endpoints.nlu) input_channels = run.create_http_input_channels("cmdline", None) agent = load_agent(model_directory, interpreter=nlu, endpoints=_endpoints) http_server = run.start_server(input_channels, None, None, port=port, initial_agent=agent, enable_api=enable_api) tracker = load_tracker_from_json(tracker_dump, agent.domain) run.start_cmdline_io(constants.DEFAULT_SERVER_URL, http_server.stop, sender_id=tracker.sender_id) replay_events(tracker, agent) try: http_server.serve_forever() except Exception as exc: logger.exception(exc)
if __name__ == '__main__': # Running as standalone python application from rasa_core import run arg_parser = run.create_argument_parser() cmdline_args = arg_parser.parse_args() logging.getLogger('werkzeug').setLevel(logging.WARN) logging.getLogger('matplotlib').setLevel(logging.WARN) utils.configure_colored_logging(cmdline_args.loglevel) utils.configure_file_logging(cmdline_args.loglevel, cmdline_args.log_file) logger.warning("USING `rasa_core.server` is deprecated and will be " "removed in the future. Use `rasa_core.run --enable_api` " "instead.") logger.info("Rasa process starting") _endpoints = AvailableEndpoints.read_endpoints(cmdline_args.endpoints) _interpreter = NaturalLanguageInterpreter.create(cmdline_args.nlu, _endpoints.nlu) _agent = run.load_agent(cmdline_args.core, interpreter=_interpreter, endpoints=_endpoints) run.serve_application(_agent, cmdline_args.connector, cmdline_args.port, cmdline_args.credentials, cmdline_args.cors, cmdline_args.auth_token, cmdline_args.enable_api, cmdline_args.jwt_secret, cmdline_args.jwt_method)
arg_parser = run.create_argument_parser() cmdline_args = arg_parser.parse_args() logging.getLogger('werkzeug').setLevel(logging.WARN) logging.getLogger('matplotlib').setLevel(logging.WARN) utils.configure_colored_logging(cmdline_args.loglevel) utils.configure_file_logging(cmdline_args.loglevel, cmdline_args.log_file) logger.warning("USING `rasa_core.server` is deprecated and will be " "removed in the future. Use `rasa_core.run --enable_api` " "instead.") logger.info("Rasa process starting") _endpoints = run.read_endpoints(cmdline_args.endpoints) _interpreter = NaturalLanguageInterpreter.create(cmdline_args.nlu, _endpoints.nlu) _agent = run.load_agent(cmdline_args.core, interpreter=_interpreter, endpoints=_endpoints) run.serve_application(_agent, cmdline_args.connector, cmdline_args.port, cmdline_args.credentials, cmdline_args.cors, cmdline_args.auth_token, cmdline_args.enable_api)
robot_api = Blueprint('robot_api', __name__) CORS(app, resources={r"/*": {"origins": "*"}}) cors_origins = None or [] __version__ = '0.11.6' auth_token = None config = Config #初始化jwt参数 # JWTManager(app) endpoints = AvailableEndpoints.read_endpoints( config.RASA_CONFIG_ENDPOINTS_FILE) interpreter = NaturalLanguageInterpreter.create( config.RASA_CONFIG_NLU_TRAIN_PACKAGE_NAME, endpoints.nlu) agent = load_agent(config.RASA_CONFIG_CORE_DIALOGUE_PACKAGE_NAME, interpreter=interpreter, endpoints=endpoints) input_channels = create_http_input_channels('rest', None) rasa_core.channels.channel.register(input_channels, app, agent.handle_message, route="/webhooks/") @robot_api.route("/", methods=['GET', 'OPTIONS']) @cross_origin(origins=cors_origins) def hello(): """Check if the server is running and responds with the version.""" return "hello from Rasa Core: " + __version__