Files
enginex-r200-asr/utils/service.py
2025-08-19 16:23:51 +08:00

47 lines
1.8 KiB
Python

import os
import sys
from utils.helm import deploy_chart, gen_chart_tarball
from utils.logger import logger
import yaml
UNIT_TEST = os.getenv("UNIT_TEST", 0)
def register_sut(st_config, resource_name, **kwargs):
st_config_values = st_config.get("values", {})
docker_image = st_config_values["docker_image"]
image_pull_policy = st_config_values["image_pull_policy"]
chart_tar_fp, chart_values = gen_chart_tarball(docker_image, image_pull_policy)
sut_service_name, _ = deploy_chart(
resource_name,
int(os.getenv("readiness_timeout", 60 * 3)),
chart_fileobj=chart_tar_fp,
extra_values=st_config_values,
restart_count_limit=int(os.getenv('restart_count', 3)),
)
chart_tar_fp.close()
sut_service_port = str(chart_values["service"]["port"])
return "ws://{}:{}".format(sut_service_name, sut_service_port)
def start_server(submit_config_filepath: str, language: str):
resource_name = "model-server"
# 读取提交配置 & 修改配置信息 & 启动被测服务
with open(submit_config_filepath, "r") as fp:
st_config = yaml.safe_load(fp)
from utils.helm import resource_check
if language == "zh":
image = "harbor-contest.4pd.io/yuxiaojie/judge_flow/asr-live-iluvatar/asr_engine_zh_semantic:contest-v0"
elif language == "en":
image = "harbor-contest.4pd.io/yuxiaojie/judge_flow/asr-live-iluvatar/asr_engine_en_semantic:contest-v0"
else:
image = ""
st_config["values"] = resource_check(st_config.get("values", {}), image)
sut_url = register_sut(st_config, resource_name)
print(sut_url)
return sut_url
if __name__ == '__main__':
start_server("/Users/yu/Documents/code-work/asr-live-iluvatar/script/config.yaml")