ClareCourseWare / PUSH_TO_HF.md
claudqunwang's picture
Add teacher agent, docs, and project updates; ClareVoiceV1 remains untracked (nested repo)
fbe1c8a

推送到 Hugging Face Space(claudqunwang/ClareVoice)

之前「整库 force 推送」和「只换 UI」的区别

之前的做法(整库 force 推送) 只换 UI(推荐)
操作 git push huggingface main --force,把本地整份项目推上去 先 clone HF 上现有 Space,只新增 web 前端 + 后端 api,改 Dockerfile,再普通 push
结果 HF 上所有内容被本地项目完全覆盖,你在 HF 上改过的 app.py、config、Dockerfile、README 等都会变成本地版本 HF 上现有文件全部保留,只多出 web/api/ 和一个新的 Dockerfile,运行时改用 React UI
你的改动 会丢失 会保留(原有文件仍在仓库里)

所以:不想覆盖在 HF 上的改动、只想换成 React UI 时,不要用 force 推送整库,而是按下面「只换 UI」的步骤做。


做法一:只换 UI(保留你在 HF 上的所有改动)

本机执行(需已安装 git、node、python):

# 1. 克隆 HF 上当前的 Space(保留你的历史与改动)
git clone https://huggingface.co/spaces/claudqunwang/ClareVoice
cd ClareVoice

# 2. 从本地 Clare 项目复制「仅 UI 相关」内容(不覆盖你已有的文件)
#    把下面的 /path/to/AI_Agent_Clare-main 改成你本机项目路径
PROJECT=/Users/qunwang/AI_Agent_Clare-main

cp -r "$PROJECT/web" .
cp -r "$PROJECT/api" .

# 3. 用「产品版」Dockerfile 替换当前的(改为构建 web + 跑 FastAPI 提供 React UI)
cp "$PROJECT/Dockerfile" .

# 4. 为 FastAPI 增加依赖(Space 原 requirements 可能没有)
echo "fastapi>=0.111.0" >> requirements.txt
echo "uvicorn[standard]>=0.30.0" >> requirements.txt
echo "python-multipart>=0.0.9" >> requirements.txt

# 5. 提交并推送(普通 push,不 force)
git add web/ api/ Dockerfile requirements.txt
git status   # 确认只多了 web、api 和 Dockerfile
git commit -m "Switch to React product UI (web + api), keep existing files"
git push

这样 HF 上会多出 web/api/ 和新的 Dockerfile原有 app.py、config.py、clare_core.py 等都不会被覆盖;之后 Space 会用新 Dockerfile 构建并显示 React UI。

注意:新 Dockerfile 的启动命令是 uvicorn api.server:app,即运行时用的是 api/ 里的后端(api/config.py、api/clare_core.py 等)。若你之前在 HF 上只改了根目录的 config、clare_core,那些修改不会自动出现在新 UI 的后端里;若需要沿用,可以把根目录的配置或逻辑同步到 api/ 下,或再改 Dockerfile 的 working directory 让 api 使用根目录模块(需自行改 import 路径)。


做法二:整库覆盖(不保留 HF 上的改动)

仅当你确定要用本地项目完全替换 Space 内容时再用:

cd /Users/qunwang/AI_Agent_Clare-main
git push -u huggingface main --force

这会用本地整份项目(含 GENAI COURSES、当前 README、.gitignore 等)覆盖 HF 上的 ClareVoice,你在 HF 上做过的任何修改都会丢失。