Update app.py
Browse files
app.py
CHANGED
|
@@ -4,6 +4,38 @@ import re
|
|
| 4 |
import gradio as gr
|
| 5 |
from google import genai
|
| 6 |
from google.genai import types
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
|
| 8 |
TAGS_FILE = "tags.json"
|
| 9 |
|
|
|
|
| 4 |
import gradio as gr
|
| 5 |
from google import genai
|
| 6 |
from google.genai import types
|
| 7 |
+
from huggingface_hub import hf_hub_download, HfApi
|
| 8 |
+
|
| 9 |
+
REPO_ID = "Denny1911/Keywords" # 例如 "tw_developer/my-song-tags"
|
| 10 |
+
FILENAME = "tags.json"
|
| 11 |
+
HF_TOKEN = os.environ.get("HF_TOKEN") # 在 Space 的 Settings 裡設定你的 HF Token
|
| 12 |
+
|
| 13 |
+
def load_tags_from_cloud():
|
| 14 |
+
"""從雲端 Dataset 下載最新 JSON"""
|
| 15 |
+
try:
|
| 16 |
+
filepath = hf_hub_download(repo_id=REPO_ID, filename=FILENAME, repo_type="dataset", token=HF_TOKEN)
|
| 17 |
+
with open(filepath, "r", encoding="utf-8") as f:
|
| 18 |
+
return json.load(f)
|
| 19 |
+
except Exception:
|
| 20 |
+
# 萬一雲端還沒檔案,給予預設種子
|
| 21 |
+
return {"情緒基調": ["溫柔療癒"], "視覺畫面": ["璀璨星空"], "適用場景": ["深夜沉思"], "風格曲風": ["華語流行"]}
|
| 22 |
+
|
| 23 |
+
def save_tags_to_cloud(tags_data):
|
| 24 |
+
"""將更新後的 JSON 直接推回雲端 Dataset 儲存"""
|
| 25 |
+
# 先在本地暫存寫入
|
| 26 |
+
with open(FILENAME, "w", encoding="utf-8") as f:
|
| 27 |
+
json.dump(tags_data, f, ensure_ascii=False, indent=2)
|
| 28 |
+
|
| 29 |
+
# 利用 API 把檔案推上雲端 Dataset,這樣不論重啟幾次都不會掉資料!
|
| 30 |
+
api = HfApi()
|
| 31 |
+
api.upload_file(
|
| 32 |
+
path_or_fileobj=FILENAME,
|
| 33 |
+
path_in_repo=FILENAME,
|
| 34 |
+
repo_id=REPO_ID,
|
| 35 |
+
repo_type="dataset",
|
| 36 |
+
token=HF_TOKEN
|
| 37 |
+
)
|
| 38 |
+
|
| 39 |
|
| 40 |
TAGS_FILE = "tags.json"
|
| 41 |
|