# Copyright (c) Alibaba, Inc. and its affiliates. import os from functools import partial from typing import List, Union import gradio as gr from packaging import version from transformers.utils import strtobool import swift from swift.llm import DeployArguments, EvalArguments, ExportArguments, RLHFArguments, SwiftPipeline, WebUIArguments from swift.ui.llm_eval.llm_eval import LLMEval from swift.ui.llm_export.llm_export import LLMExport from swift.ui.llm_infer.llm_infer import LLMInfer from swift.ui.llm_train.llm_train import LLMTrain locale_dict = { 'title': { 'zh': '🚀SWIFT: 轻量级大模型训练推理框架', 'en': '🚀SWIFT: Scalable lightWeight Infrastructure for Fine-Tuning and Inference' }, 'sub_title': { 'zh': '请查看 ' 'SWIFT 文档来查看更多功能,使用SWIFT_UI_LANG=en环境变量来切换英文界面', 'en': 'Please check ' 'SWIFT Documentation for more usages, Use SWIFT_UI_LANG=zh variable to switch to Chinese UI', }, 'star_beggar': { 'zh': '喜欢SWIFT就动动手指给我们加个star吧🥺 ', 'en': 'If you like SWIFT, ' 'please take a few seconds to star us🥺 ' }, } class SwiftWebUI(SwiftPipeline): args_class = WebUIArguments args: args_class def run(self): lang = os.environ.get('SWIFT_UI_LANG') or self.args.lang share_env = os.environ.get('WEBUI_SHARE') share = strtobool(share_env) if share_env else self.args.share server = os.environ.get('WEBUI_SERVER') or self.args.server_name port_env = os.environ.get('WEBUI_PORT') port = int(port_env) if port_env else self.args.server_port LLMTrain.set_lang(lang) LLMInfer.set_lang(lang) LLMExport.set_lang(lang) LLMEval.set_lang(lang) with gr.Blocks(title='SWIFT WebUI', theme=gr.themes.Base()) as app: try: _version = swift.__version__ except AttributeError: _version = '' gr.HTML(f"