def _persist_metadata( self, path: Text, dump_flattened_stories: bool = False ) -> None: """Persists the domain specification to storage.""" # make sure the directory we persist exists domain_spec_path = os.path.join(path, "metadata.json") training_data_path = os.path.join(path, "stories.md") rasa.utils.io.create_directory_for_file(domain_spec_path) policy_names = [utils.module_path_from_instance(p) for p in self.policies] training_events = self._training_events_from_trackers(self.training_trackers) action_fingerprints = self._create_action_fingerprints(training_events) metadata = { "action_fingerprints": action_fingerprints, "python": ".".join([str(s) for s in sys.version_info[:3]]), "max_histories": self._max_histories(), "ensemble_name": self.__module__ + "." + self.__class__.__name__, "policy_names": policy_names, "trained_at": self.date_trained, } self._add_package_version_info(metadata) utils.dump_obj_as_json_to_file(domain_spec_path, metadata) # if there are lots of stories, saving flattened stories takes a long # time, so this is turned off by default if dump_flattened_stories: training.persist_data(self.training_trackers, training_data_path)
async def test_agent_with_model_server_in_thread(model_server, moodbot_domain, moodbot_metadata): model_endpoint_config = EndpointConfig.from_dict({ "url": model_server.make_url("/model"), "wait_time_between_pulls": 2 }) agent = Agent() agent = await rasa.core.agent.load_from_server( agent, model_server=model_endpoint_config) await asyncio.sleep(3) assert agent.fingerprint == "somehash" assert hash(agent.domain) == hash(moodbot_domain) agent_policies = { utils.module_path_from_instance(p) for p in agent.policy_ensemble.policies } moodbot_policies = set(moodbot_metadata["policy_names"]) assert agent_policies == moodbot_policies assert model_server.app.number_of_model_requests == 1 jobs.kill_scheduler()
def persistence_info(self): # persistence:持久 return { "type": utils.module_path_from_instance(self), # 形如【rasa.core.DataSlot】 "initial_value": self.initial_value, "auto_fill": self.auto_fill, }
def _persist_metadata(self, path: Text) -> None: """Persists the domain specification to storage.""" # make sure the directory we persist exists domain_spec_path = os.path.join(path, "metadata.json") rasa.utils.io.create_directory_for_file(domain_spec_path) policy_names = [utils.module_path_from_instance(p) for p in self.policies] metadata = { "action_fingerprints": self.action_fingerprints, "python": ".".join([str(s) for s in sys.version_info[:3]]), "max_histories": self._max_histories(), "ensemble_name": self.__module__ + "." + self.__class__.__name__, "policy_names": policy_names, "trained_at": self.date_trained, } self._add_package_version_info(metadata) rasa.utils.io.dump_obj_as_json_to_file(domain_spec_path, metadata)
def persistence_info(self) -> Dict[str, Any]: return { "type": utils.module_path_from_instance(self), "initial_value": self.initial_value, "auto_fill": self.auto_fill, }