code: def restore_knowledge_bank(
      config: de_config_pb2.DynamicEmbeddingConfig,
      var_name: Text,
      saved_path: Text,
      service_address: Text = "",
      timeout_ms: int = -1,
  ) -> None:
      """Restores knowledge bank data (`config`, `name`) from given `saved_path`.
  
      Args:
        config: A DynamicEmbeddingConfig proto that configs the embedding.
        var_name: A unique name for the given embedding.
        saved_path: A string representing the saved embedding data.
        service_address: The address of a dynamic embedding service. If empty, the
          value passed from --kbs_address flag will be used instead.
        timeout_ms: Timeout millseconds for the connection. If negative, never
          timout.
      """
      resource = gen_carls_ops.dynamic_embedding_manager_resource(
          config.SerializeToString(),
          var_name,
          service_address,
          timeout_ms,
      )
  
      gen_carls_ops.restore_knowledge_bank(saved_path, resource)
  
imports: from typing import Text
  from research.carls import context
  from research.carls import dynamic_embedding_config_pb2
  from research.carls.kernels import gen_carls_ops
label_desc: Use image node_id 2 for calling a global function with example usage: restore_knowledge_bank(config, var_name, saved_path, service_address, timeout_ms) without return types