Spaces:
Sleeping
Sleeping
改用 Docker SDK 部署,繞開 HF 免費層級 Gradio SDK 強制 ZeroGPU 的限制
Browse filesHF 目前的平台政策:免費層級的 Gradio SDK Space 一律跑 ZeroGPU,啟動時
要求偵測到 @spaces.GPU 標記的函式;本專案是純 CPU 應用(scikit-learn/
scipy/matplotlib),沒有這類函式,導致 Gradio SDK 直接啟動失敗
(runtime error: No @spaces.GPU function detected during startup)。
- 新增 Dockerfile:python:3.11-slim 基底,安裝 fonts-noto-cjk(matplotlib
圖表標題與座標軸多為中文,容器內建 Linux 沒有中文字型會變方框;
app_agent.py 的 _find_cjk_font() 候選清單本來就含 Noto Sans CJK
TC/SC,裝了字型套件即可直接吃到,不用改程式碼),pip 安裝
requirements.txt 內容,EXPOSE 7860,CMD 執行 app.py
- 新增 .dockerignore,排除 sessions/、.env、.git 等不該進映像檔的內容
- README.md frontmatter 的 sdk 從 gradio 改成 docker,移除 Docker SDK
用不到的 sdk_version/app_file,改加 app_port: 7860 對應
Dockerfile 的 EXPOSE
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- .dockerignore +16 -0
- Dockerfile +39 -0
- README.md +13 -3
.dockerignore
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 建置映像檔時不需要進容器的東西(跟 .gitignore 邏輯一致,這裡是防呆:
|
| 2 |
+
# 就算有人直接對整個工作目錄 docker build,也不會把執行期產生的資料、
|
| 3 |
+
# 本機密鑰或開發用檔案打進映像檔)
|
| 4 |
+
sessions/
|
| 5 |
+
.git/
|
| 6 |
+
.env
|
| 7 |
+
__pycache__/
|
| 8 |
+
*.pyc
|
| 9 |
+
.venv/
|
| 10 |
+
.gradio/
|
| 11 |
+
.vscode/
|
| 12 |
+
.idea/
|
| 13 |
+
.claude/
|
| 14 |
+
_dev_launch.py
|
| 15 |
+
系統方法論述.md
|
| 16 |
+
系統方法論述.docx
|
Dockerfile
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Hugging Face Space(Docker SDK)用的容器設定。
|
| 2 |
+
#
|
| 3 |
+
# 為什麼不用 Gradio SDK:HF 免費層級的 Gradio SDK Space 現在預設跑在
|
| 4 |
+
# ZeroGPU 上(HF 平台政策),啟動時要求偵測到 @spaces.GPU 標記的函式,
|
| 5 |
+
# 本專案是純 CPU 應用(scikit-learn/scipy/matplotlib,完全不用 GPU),
|
| 6 |
+
# 沒有這種函式,Gradio SDK 會直接啟動失敗。改用 Docker SDK:由這份
|
| 7 |
+
# Dockerfile 自己控制執行環境,不吃 Gradio SDK 的 ZeroGPU 預設規則,
|
| 8 |
+
# 一樣可以跑在免費的 CPU 硬體上。
|
| 9 |
+
|
| 10 |
+
FROM python:3.11-slim
|
| 11 |
+
|
| 12 |
+
# fonts-noto-cjk:matplotlib 圖表(特徵重要性、分群圖等)標題與座標軸
|
| 13 |
+
# 都是中文,容器內建的 Linux 沒有任何中文字型,沒裝的話中文會變成方框。
|
| 14 |
+
# app_agent.py 的 _find_cjk_font() 本來就把 "Noto Sans CJK TC"/
|
| 15 |
+
# "Noto Sans CJK SC" 排在候選字型清單裡(原本是留給 Linux 部署用的),
|
| 16 |
+
# 裝了這個套件就能直接吃到,不用改程式碼。
|
| 17 |
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 18 |
+
fonts-noto-cjk \
|
| 19 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 20 |
+
|
| 21 |
+
WORKDIR /app
|
| 22 |
+
|
| 23 |
+
# 先只複製 requirements 檔案再裝套件,Docker layer cache 才會生效——
|
| 24 |
+
# 之後只改程式碼、沒改依賴套件時,重新建置不用重跑 pip install。
|
| 25 |
+
COPY requirements.txt .
|
| 26 |
+
RUN pip install --no-cache-dir --upgrade pip \
|
| 27 |
+
&& pip install --no-cache-dir -r requirements.txt \
|
| 28 |
+
&& pip install --no-cache-dir python-dotenv
|
| 29 |
+
|
| 30 |
+
COPY . .
|
| 31 |
+
|
| 32 |
+
# HF Docker Space 的容器以非 root、UID 1000 執行;sessions/ 是執行期才會
|
| 33 |
+
# 建立與寫入的資料夾(session 上傳檔、分析產出),這裡先建好並開放寫入
|
| 34 |
+
# 權限,避免執行期因權限不足寫入失敗。
|
| 35 |
+
RUN mkdir -p sessions && chmod -R 777 sessions
|
| 36 |
+
|
| 37 |
+
EXPOSE 7860
|
| 38 |
+
|
| 39 |
+
CMD ["python", "app.py"]
|
README.md
CHANGED
|
@@ -3,13 +3,23 @@ title: 譯彩紛呈:重譯文本分析系統 TransPrism II
|
|
| 3 |
emoji: "\U0001F308"
|
| 4 |
colorFrom: blue
|
| 5 |
colorTo: indigo
|
| 6 |
-
sdk:
|
| 7 |
-
|
| 8 |
-
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
license: mit
|
| 11 |
---
|
| 12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
# 譯彩紛呈:重譯文本分析系統
|
| 14 |
|
| 15 |
**TransPrism: An Analytical Framework for Retranslation II|分析引擎 Spectra Engine**
|
|
|
|
| 3 |
emoji: "\U0001F308"
|
| 4 |
colorFrom: blue
|
| 5 |
colorTo: indigo
|
| 6 |
+
sdk: docker
|
| 7 |
+
app_port: 7860
|
|
|
|
| 8 |
pinned: false
|
| 9 |
license: mit
|
| 10 |
---
|
| 11 |
|
| 12 |
+
<!--
|
| 13 |
+
2026-08-22:sdk 從 gradio 改成 docker。原因:HF 免費層級的 Gradio SDK
|
| 14 |
+
Space 現在強制跑 ZeroGPU(平台政策,見 Space 建立畫面的提示:「On the
|
| 15 |
+
free tier, Gradio Spaces run on ZeroGPU. Subscribe to PRO for unlocking
|
| 16 |
+
free cpu-basic flavor」),啟動時要求偵測到 @spaces.GPU 標記的函式,
|
| 17 |
+
本專案是純 CPU 應用,沒有這種函式會直接啟動失敗。改用 Docker SDK
|
| 18 |
+
(見專案根目錄 Dockerfile)繞開這條規則,一樣是免費 CPU 硬體。
|
| 19 |
+
sdk_version/app_file 是 Gradio SDK 專用欄位,Docker SDK 不需要,已移除;
|
| 20 |
+
改加 app_port 對應 Dockerfile 的 EXPOSE 7860。
|
| 21 |
+
-->
|
| 22 |
+
|
| 23 |
# 譯彩紛呈:重譯文本分析系統
|
| 24 |
|
| 25 |
**TransPrism: An Analytical Framework for Retranslation II|分析引擎 Spectra Engine**
|