Spaces:
Build error
Build error
Download frontend/ui_admin.py from Lawrencelv/AIAnalystAgent: direct link, hf CLI and curl.
- Browser
- Download file 2.15 kB
-
https://huggingface.co/spaces/Lawrencelv/AIAnalystAgent/resolve/main/frontend/ui_admin.py
- Command line
-
hf download hf://spaces/Lawrencelv/AIAnalystAgent/frontend/ui_admin.py
-
curl -L -o ui_admin.py https://huggingface.co/spaces/Lawrencelv/AIAnalystAgent/resolve/main/frontend/ui_admin.py
2.15 kB
| import gradio as gr | |
| from datetime import datetime | |
| ADMIN_PASSWORD = "CLDAI" | |
| def render_admin_ui(is_admin_state): | |
| # 管理员主面板(登录成功后显示) | |
| with gr.Column(visible=False) as admin_panel: | |
| gr.Markdown("### 🛠️ 管理员控制面板") | |
| kb_files = gr.File(file_types=[".pdf", ".docx"], file_count="multiple", label="📘 上传参考资料文件") | |
| prompt_file = gr.File(file_types=[".txt", ".docx"], label="🧠 上传 Prompt 文档") | |
| template_file = gr.File(file_types=[".docx"], label="📄 上传报告输出模版") | |
| api_key_file = gr.File(file_types=[".txt"], label="🔑 上传 API Key 文件(每行一个)") | |
| preset_btn = gr.Button("⚙️ 执行预设构建") | |
| admin_status = gr.Textbox(label="管理员状态 / 执行日志", lines=6) | |
| def run_preset(kb, prompt, template, keyfile): | |
| now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") | |
| return f"✅ 执行预设构建成功\n时间:{now}" | |
| preset_btn.click( | |
| fn=run_preset, | |
| inputs=[kb_files, prompt_file, template_file, api_key_file], | |
| outputs=admin_status | |
| ) | |
| # ✅ 只保留一段登录区域 | |
| with gr.Row(): | |
| with gr.Column(): | |
| pwd_input = gr.Textbox( | |
| label="🔐 请输入管理员密码:", | |
| placeholder="请输入密码", | |
| type="password", | |
| value="", # 确保无默认值 | |
| show_label=True, | |
| interactive=True | |
| ) | |
| login_btn = gr.Button("登录") | |
| login_status = gr.Textbox(label="登录状态", lines=1, interactive=False) | |
| def verify_login(pwd): | |
| if pwd == ADMIN_PASSWORD: | |
| return True, "✅ 登录成功" | |
| else: | |
| return False, "❌ 密码错误,请重试" | |
| login_btn.click(fn=verify_login, inputs=pwd_input, outputs=[is_admin_state, login_status]) | |
| def show_admin_panel(is_admin): | |
| return gr.update(visible=is_admin) | |
| is_admin_state.change(fn=show_admin_panel, inputs=is_admin_state, outputs=admin_panel) | |