def _init_model_from_server(model_server): # type: (EndpointConfig) -> Optional[(Domain, PolicyEnsemble, Text)] """Initialise a Rasa Core model from a URL.""" if not is_url(model_server.url): raise InvalidURL(model_server.url) model_directory = tempfile.mkdtemp() fingerprint = _pull_model_and_fingerprint(model_server, model_directory, fingerprint=None) return fingerprint, model_directory
def download_file_from_url(url: Text) -> Text: """Download a story file from a url and persists it into a temp file. Returns the file path of the temp file that contains the downloaded content.""" if not nlu_utils.is_url(url): raise InvalidURL(url) response = requests.get(url) response.raise_for_status() filename = nlu_utils.create_temporary_file(response.content, mode="w+b") return filename
def load_data_from_url(url, language='en'): # type: (Text, Optional[Text]) -> TrainingData """Load training data from a URL.""" if not utils.is_url(url): raise requests.exceptions.InvalidURL(url) try: response = requests.get(url) response.raise_for_status() temp_data_file = utils.create_temporary_file(response.content) return _load(temp_data_file, language) except Exception as e: logger.warning("Could not retrieve training data " "from URL:\n{}".format(e))
def _init_model_from_server(model_server: EndpointConfig ) -> Optional[typing.Tuple[Text, Text]]: """Initialise a Rasa Core model from a URL.""" if not is_url(model_server.url): raise InvalidURL(model_server.url) model_directory = tempfile.mkdtemp() fingerprint = _pull_model_and_fingerprint(model_server, model_directory, fingerprint=None) return fingerprint, model_directory
async def _update_model_from_server(model_server: EndpointConfig, agent: 'Agent') -> None: """Load a zipped Rasa Core model from a URL and update the passed agent.""" if not is_url(model_server.url): raise aiohttp.InvalidURL(model_server.url) model_and_fingerprint = await _pull_model_and_fingerprint( model_server, agent.fingerprint) if model_and_fingerprint: model_directory, new_model_fingerprint = model_and_fingerprint _load_and_set_updated_model(agent, model_directory, new_model_fingerprint) else: logger.debug("No new model found at " "URL {}".format(model_server.url))
def load_data_from_endpoint(data_endpoint, language='en'): # type: (EndpointConfig, Optional[Text]) -> TrainingData """Load training data from a URL.""" if not utils.is_url(data_endpoint.url): raise requests.exceptions.InvalidURL(data_endpoint.url) try: response = data_endpoint.request("get") response.raise_for_status() temp_data_file = utils.create_temporary_file(response.content, mode="w+b") return _load(temp_data_file, language) except Exception as e: logger.warning("Could not retrieve training data " "from URL:\n{}".format(e))
async def download_file_from_url(url: Text) -> Text: """Download a story file from a url and persists it into a temp file. Returns the file path of the temp file that contains the downloaded content.""" from rasa_nlu import utils as nlu_utils if not nlu_utils.is_url(url): raise InvalidURL(url) async with aiohttp.ClientSession() as session: async with session.get(url, raise_for_status=True) as resp: filename = nlu_utils.create_temporary_file(await resp.read(), mode="w+b") return filename
def download_file_from_url(url): # type: (Text) -> Text """Download a story file from a url and persists it into a temp file. Returns the file path of the temp file that contains the downloaded content.""" if not nlu_utils.is_url(url): raise InvalidURL(url) response = requests.get(url) response.raise_for_status() filename = nlu_utils.create_temporary_file(response.content, mode="w+b") return filename
def load_data_from_endpoint(data_endpoint: EndpointConfig, language: Optional[Text] = 'en') -> 'TrainingData': """Load training data from a URL.""" if not utils.is_url(data_endpoint.url): raise requests.exceptions.InvalidURL(data_endpoint.url) try: response = data_endpoint.request("get") response.raise_for_status() temp_data_file = utils.create_temporary_file(response.content, mode="w+b") training_data = _load(temp_data_file, language) return training_data except Exception as e: logger.warning("Could not retrieve training data " "from URL:\n{}".format(e))
def _update_model_from_server(model_server: EndpointConfig, project: 'Project') -> None: """Load a zipped Rasa NLU model from a URL and update the passed project.""" if not is_url(model_server.url): raise InvalidURL(model_server) model_directory = tempfile.mkdtemp() new_model_fingerprint, filename = _pull_model_and_fingerprint( model_server, model_directory, project.fingerprint) if new_model_fingerprint: model_name = _get_remote_model_name(filename) project.fingerprint = new_model_fingerprint project.update_model_from_dir_and_unload_others(model_directory, model_name) else: logger.debug("No new model found at URL {}".format(model_server.url))
def _update_model_from_server(model_server: EndpointConfig, project: 'Project') -> None: """Load a zipped Rasa NLU model from a URL and update the passed project.""" if not is_url(model_server.url): raise InvalidURL(model_server) model_directory = tempfile.mkdtemp() new_model_fingerprint, filename = _pull_model_and_fingerprint( model_server, model_directory, project.fingerprint) if new_model_fingerprint: model_name = _get_remote_model_name(filename) project.fingerprint = new_model_fingerprint project.update_model_from_dir_and_unload_others( model_directory, model_name) else: logger.debug("No new model found at URL {}".format(model_server.url))
def _update_model_from_server(model_server: EndpointConfig, agent: 'Agent') -> None: """Load a zipped Rasa Core model from a URL and update the passed agent.""" if not is_url(model_server.url): raise InvalidURL(model_server.url) model_directory = tempfile.mkdtemp() new_model_fingerprint = _pull_model_and_fingerprint( model_server, model_directory, agent.fingerprint) if new_model_fingerprint: domain_path = os.path.join(os.path.abspath(model_directory), "domain.yml") domain = Domain.load(domain_path) policy_ensemble = PolicyEnsemble.load(model_directory) agent.update_model(domain, policy_ensemble, new_model_fingerprint) else: logger.debug("No new model found at " "URL {}".format(model_server.url))
def _update_model_from_server( model_server, # type: EndpointConfig agent, # type: Agent ): # type: (...) -> None """Load a zipped Rasa Core model from a URL and update the passed agent.""" if not is_url(model_server.url): raise InvalidURL(model_server.url) model_directory = tempfile.mkdtemp() new_model_fingerprint = _pull_model_and_fingerprint( model_server, model_directory, agent.fingerprint) if new_model_fingerprint: domain_path = os.path.join(os.path.abspath(model_directory), "domain.yml") domain = Domain.load(domain_path) policy_ensemble = PolicyEnsemble.load(model_directory) agent.update_model(domain, policy_ensemble, new_model_fingerprint) else: logger.debug("No new model found at " "URL {}".format(model_server.url))
def test_is_url(): assert not is_url('./some/file/path') assert is_url('https://rasa.com/')