[to #42322933] add create if not exist and add(back) create model example

Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/9130661
This commit is contained in:
yingda.chen
2022-06-22 18:39:08 +08:00
parent 849410e107
commit 8400ca1fc7
3 changed files with 58 additions and 9 deletions

View File

@@ -2,21 +2,39 @@
import os
import os.path as osp
from typing import List, Union
from typing import List, Optional, Union
from numpy import deprecate
from requests import HTTPError
from modelscope.hub.file_download import model_file_download
from modelscope.hub.snapshot_download import snapshot_download
from modelscope.hub.utils.utils import get_cache_dir
from modelscope.utils.config import Config
from modelscope.utils.constant import ModelFile
# temp solution before the hub-cache is in place
@deprecate
def get_model_cache_dir(model_id: str):
return os.path.join(get_cache_dir(), model_id)
def create_model_if_not_exist(
api,
model_id: str,
chinese_name: str,
visibility: Optional[int] = 5, # 1-private, 5-public
license: Optional[str] = 'apache-2.0',
revision: Optional[str] = 'master'):
exists = True
try:
api.get_model(model_id=model_id, revision=revision)
except HTTPError:
exists = False
if exists:
print(f'model {model_id} already exists, skip creation.')
return False
else:
api.create_model(
model_id=model_id,
chinese_name=chinese_name,
visibility=visibility,
license=license)
print(f'model {model_id} successfully created.')
return True
def read_config(model_id_or_path: str):

View File

@@ -0,0 +1,33 @@
import unittest
from maas_hub.maas_api import MaasApi
from modelscope.utils.hub import create_model_if_not_exist
USER_NAME = 'maasadmin'
PASSWORD = '12345678'
class HubExampleTest(unittest.TestCase):
def setUp(self):
self.api = MaasApi()
# note this is temporary before official account management is ready
self.api.login(USER_NAME, PASSWORD)
@unittest.skip('to be used for local test only')
def test_example_model_creation(self):
# ATTENTION:change to proper model names before use
model_name = 'cv_unet_person-image-cartoon_compound-models'
model_chinese_name = '达摩卡通化模型'
model_org = 'damo'
model_id = '%s/%s' % (model_org, model_name)
created = create_model_if_not_exist(self.api, model_id,
model_chinese_name)
if not created:
print('!! NOT created since model already exists !!')
if __name__ == '__main__':
unittest.main()

View File

@@ -1,6 +1,5 @@
# Copyright (c) Alibaba, Inc. and its affiliates.
import os
import os.path as osp
import subprocess
import tempfile
import unittest
@@ -8,7 +7,6 @@ import uuid
from modelscope.hub.api import HubApi, ModelScopeConfig
from modelscope.hub.file_download import model_file_download
from modelscope.hub.repository import Repository
from modelscope.hub.snapshot_download import snapshot_download
from modelscope.hub.utils.utils import get_gitlab_domain