    def get(self, tag: t.Union[Tag, str]) -> Item:
        """
        store.get("my_bento")
        store.get("my_bento:v1.0.0")
        store.get(Tag("my_bento", "latest"))
        """
        _tag = Tag.from_taglike(tag)
        if _tag.version is None or _tag.version == "latest":
            try:
                _tag.version = self._fs.readtext(_tag.latest_path())

                if not self._fs.exists(_tag.path()):
                    self._recreate_latest(_tag)
            except fs.errors.ResourceNotFound:
                self._recreate_latest(_tag)

        path = _tag.path()
        if self._fs.exists(path):
            return self._get_item(_tag)

        matches = self._fs.glob(f"{path}*/")
        counts = matches.count().directories
        if counts == 0:
            raise NotFound(
                f"{self._item_type.get_typename()} '{tag}' is not found in BentoML store {self._fs}, "
                "you may need to run `bentoml models pull` first"
            )
        elif counts == 1:
            match = next(iter(matches))
            return self._get_item(Tag(_tag.name, match.info.name))
        else:
            vers: t.List[str] = []
            for match in matches:
                vers += match.info.name
            raise BentoMLException(
                f"multiple versions matched by {_tag.version}: {vers}"
            )
store.get("my_bento")
store.get("my_bento:v1.0.0")
store.get(Tag("my_bento", "latest"))
src/bentoml/_internal/store.py