| | |
| |
|
| | import logging |
| | import os |
| |
|
| | import json |
| | import requests |
| |
|
| | from swift.version import __version__ |
| |
|
| |
|
| | |
| | class ModelTag(object): |
| | _URL = os.environ.get('MODEL_TAG_URL', None) |
| |
|
| | |
| | BATCH_COMMIT_RESULT_URL = f'{_URL}/batchCommitResult' |
| | |
| | BATCH_REFRESH_STAGE_URL = f'{_URL}/batchRefreshStage' |
| | |
| | QUERY_MODEL_STAGE_URL = f'{_URL}/queryModelStage' |
| |
|
| | HEADER = {'Content-Type': 'application/json'} |
| |
|
| | |
| | MODEL_SKIP = 0 |
| | MODEL_FAIL = 1 |
| | MODEL_PASS = 2 |
| |
|
| | class ItemResult(object): |
| |
|
| | def __init__(self): |
| | self.result = 0 |
| | self.name = '' |
| | self.info = '' |
| |
|
| | def to_json(self): |
| | return {'name': self.name, 'result': self.result, 'info': self.info} |
| |
|
| | def __init__(self): |
| | self.job_name = '' |
| | self.job_id = '' |
| | self.model = '' |
| | self.sdk_version = '' |
| | self.image_version = '' |
| | self.domain = '' |
| | self.task = '' |
| | self.source = '' |
| | self.stage = '' |
| | |
| | self.item_result = [] |
| |
|
| | |
| | def _post_request(self, url, param): |
| | try: |
| | logging.info(url + ' query: ' + str(json.dumps(param, ensure_ascii=False))) |
| | res = requests.post(url=url, headers=self.HEADER, data=json.dumps(param, ensure_ascii=False).encode('utf8')) |
| | if res.status_code == 200: |
| | logging.info(f'{url} post结果: ' + res.text) |
| | res_json = json.loads(res.text) |
| | if int(res_json['errorCode']) == 200: |
| | return res_json['content'] |
| | else: |
| | logging.error(res.text) |
| | else: |
| | logging.error(res.text) |
| | except Exception as e: |
| | logging.error(e) |
| |
|
| | return None |
| |
|
| | |
| | def batch_commit_result(self): |
| | try: |
| | param = { |
| | 'sdkVersion': |
| | self.sdk_version, |
| | 'imageVersion': |
| | self.image_version, |
| | 'source': |
| | self.source, |
| | 'jobName': |
| | self.job_name, |
| | 'jobId': |
| | self.job_id, |
| | 'modelList': [{ |
| | 'model': self.model, |
| | 'domain': self.domain, |
| | 'task': self.task, |
| | 'itemResult': self.item_result |
| | }] |
| | } |
| | return self._post_request(self.BATCH_COMMIT_RESULT_URL, param) |
| |
|
| | except Exception as e: |
| | logging.error(e) |
| |
|
| | return |
| |
|
| | |
| | def batch_refresh_stage(self): |
| | try: |
| | param = { |
| | 'sdkVersion': self.sdk_version, |
| | 'imageVersion': self.image_version, |
| | 'source': self.source, |
| | 'stage': self.stage, |
| | 'modelList': [{ |
| | 'model': self.model, |
| | 'domain': self.domain, |
| | 'task': self.task |
| | }] |
| | } |
| | return self._post_request(self.BATCH_REFRESH_STAGE_URL, param) |
| |
|
| | except Exception as e: |
| | logging.error(e) |
| |
|
| | return |
| |
|
| | |
| | def query_model_stage(self): |
| | try: |
| | param = { |
| | 'sdkVersion': self.sdk_version, |
| | 'model': self.model, |
| | 'stage': self.stage, |
| | 'imageVersion': self.image_version |
| | } |
| | return self._post_request(self.QUERY_MODEL_STAGE_URL, param) |
| |
|
| | except Exception as e: |
| | logging.error(e) |
| |
|
| | return None |
| |
|
| | |
| | """ |
| | model_tag = ModelTag() |
| | model_tag.model = "XXX" |
| | model_tag.sdk_version = "0.3.7" |
| | model_tag.domain = "nlp" |
| | model_tag.task = "word-segmentation" |
| | item = model_tag.ItemResult() |
| | item.result = model_tag.MODEL_PASS |
| | item.name = "ALL" |
| | item.info = "" |
| | model_tag.item_result.append(item.to_json()) |
| | """ |
| |
|
| | def commit_ut_result(self): |
| | if self._URL is not None and self._URL != '': |
| | self.job_name = 'UT' |
| | self.source = 'dev' |
| | self.stage = 'integration' |
| |
|
| | self.batch_commit_result() |
| | self.batch_refresh_stage() |
| |
|
| |
|
| | def commit_model_ut_result(model_name, ut_result): |
| | model_tag = ModelTag() |
| | model_tag.model = model_name.replace('damo/', '') |
| | model_tag.sdk_version = __version__ |
| | |
| | |
| | item = model_tag.ItemResult() |
| | item.result = ut_result |
| | item.name = 'ALL' |
| | item.info = '' |
| | model_tag.item_result.append(item.to_json()) |
| | model_tag.commit_ut_result() |
| |
|