import os import sys import subprocess import streamlit as st def clone_repo(): # 从环境变量中获取 GitHub Token github_token = os.getenv('GH_TOKEN') if github_token is None: st.error("GitHub token is not set. Please set the GH_TOKEN secret in your Space settings.") return False # 使用 GitHub Token 进行身份验证并克隆仓库 clone_command = f'git clone https://{github_token}@github.com/mamba-ai/translate_agent.git' if os.path.exists('translate_agent'): # st.warning("Repository already exists.") return True else: # st.info("Cloning repository...") result = subprocess.run(clone_command, shell=True, capture_output=True, text=True) if result.returncode == 0: # st.success("Repository cloned successfully!") repo_dir = 'translate_agent' # 将仓库路径添加到 Python 模块搜索路径中 sys.path.append(os.path.abspath(repo_dir)) return True else: st.error(f"Failed to clone repository: {result.stderr}") return False if clone_repo(): # 克隆成功后导入模块 import translate_agent.agent as ta # 创建一个语言选项列表 languages_src = ["中国語", "日本語"] languages_tgt = ["日本語", "中国語"] lang_country_map = { "中国語": "China", "日本語": "Japan", } # 设置页面标题 st.title("MambaTranslate デモ") # 用户选择源语言和目标语言 source_lang = st.selectbox("ソース言語を選択", list(languages_src)) target_lang = st.selectbox("ターゲット言語を選択", list(languages_tgt)) country = lang_country_map[target_lang] print(f"Source language: {source_lang}; Target language: {target_lang}; Country: {country}") # 输入要翻译的文本 source_text = st.text_area("翻訳するテキストを入力", height=200) print(f"Source text:\n\n{source_text}\n------------\n") # 按钮触发翻译 if st.button("Translate"): if source_text: with st.spinner("Translating..."): translation = ta.translate( source_lang=source_lang, target_lang=target_lang, source_text=source_text, country=country, ) st.success("翻訳完了!") st.text_area("翻訳されたテキスト", translation, height=200) else: st.warning("翻訳するテキストを入力してください。") else: # st.error("Repository could not be cloned. Please check the settings and try again.") pass