Files
modelscope/tests/json_call_test.py
suluyan.sly d7c2a91e2c swing deploy api
Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/14103985
* tester

* bug fixed: download_file not import

* input example analyzer

* api: get_task_input_examples

* update chat

* 43 task

* fix decode_base64

* json format

* schema
2023-09-22 19:18:57 +08:00

77 lines
2.8 KiB
Python

import os
import json
from modelscope.hub.api import HubApi
from modelscope.hub.file_download import model_file_download
from modelscope.hub.utils.utils import get_cache_dir
from modelscope.pipelines import pipeline
from modelscope.utils.config import Config
from modelscope.utils.constant import ModelFile
from modelscope.utils.input_output import (
call_pipeline_with_json, get_pipeline_information_by_pipeline,
get_task_input_examples, pipeline_output_to_service_base64_output)
class ModelJsonTest:
def __init__(self):
self.api = HubApi()
def test_single(self, model_id: str, model_revision=None):
# get model_revision & task info
cache_root = get_cache_dir()
configuration_file = os.path.join(cache_root, model_id,
ModelFile.CONFIGURATION)
if not model_revision:
model_revision = self.api.list_model_revisions(
model_id=model_id)[0]
if not os.path.exists(configuration_file):
configuration_file = model_file_download(
model_id=model_id,
file_path=ModelFile.CONFIGURATION,
revision=model_revision)
cfg = Config.from_file(configuration_file)
task = cfg.safe_get('task')
# init pipeline
ppl = pipeline(
task=task, model=model_id, model_revision=model_revision)
pipeline_info = get_pipeline_information_by_pipeline(ppl)
# call pipeline
data = get_task_input_examples(task)
print(task, data)
infer_result = call_pipeline_with_json(pipeline_info, ppl, data)
result = pipeline_output_to_service_base64_output(task, infer_result)
return result
if __name__ == '__main__':
model_list = [
'damo/nlp_structbert_nli_chinese-base',
'damo/nlp_structbert_word-segmentation_chinese-base',
'damo/nlp_structbert_zero-shot-classification_chinese-base',
'damo/cv_unet_person-image-cartoon_compound-models',
'damo/nlp_structbert_sentiment-classification_chinese-tiny',
'damo/nlp_csanmt_translation_zh2en',
'damo/nlp_rom_passage-ranking_chinese-base',
'damo/ofa_image-caption_muge_base_zh',
'damo/nlp_raner_named-entity-recognition_chinese-base-ecom-50cls',
'damo/nlp_structbert_sentiment-classification_chinese-ecommerce-base',
'damo/text-to-video-synthesis',
'qwen/Qwen-7B',
'qwen/Qwen-7B-Chat',
'ZhipuAI/ChatGLM-6B',
]
tester = ModelJsonTest()
for model in model_list:
try:
res = tester.test_single(model)
print(f'\nmodel_id {model} call_pipeline_with_json run ok.\n')
except BaseException as e:
print(
f'\nmodel_id {model} call_pipeline_with_json run failed: {e}.\n'
)