CareerForge-AI / 一键部署.sh
Oscarli's picture
Upload 8 files
a7829b6 verified
#!/bin/bash
# 颜色定义
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
clear
echo -e "${CYAN}"
cat << "EOF"
╔═══════════════════════════════════════════════════════════════╗
║ ║
║ 🚀 CareerForge AI - 一键部署到 Hugging Face ║
║ ║
║ 让 AI 助力你的职业发展! ║
║ ║
╚═══════════════════════════════════════════════════════════════╝
EOF
echo -e "${NC}"
echo ""
# 检查当前目录
if [ ! -f "app.py" ] || [ ! -f "Dockerfile" ]; then
echo -e "${RED}❌ 错误:请在 CareerForge-完整代码包 文件夹中运行此脚本${NC}"
echo ""
echo "当前目录:$(pwd)"
echo "请确保包含以下文件:"
echo " • app.py"
echo " • requirements.txt"
echo " • Dockerfile"
echo " • README.md"
echo " • static/index.html"
echo ""
exit 1
fi
echo -e "${GREEN}✅ 检测到所有必需文件${NC}"
echo ""
# 显示文件列表
echo -e "${BLUE}📁 即将部署以下文件:${NC}"
echo " ✓ app.py - 后端服务器"
echo " ✓ requirements.txt - Python 依赖"
echo " ✓ Dockerfile - Docker 配置"
echo " ✓ README.md - Space 说明"
echo " ✓ static/index.html - 前端应用"
echo ""
# 步骤 1:获取用户信息
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${YELLOW}📝 步骤 1/5: 配置部署信息${NC}"
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
read -p "请输入你的 Hugging Face 用户名: " HF_USERNAME
if [ -z "$HF_USERNAME" ]; then
echo -e "${RED}❌ 用户名不能为空${NC}"
exit 1
fi
read -p "请输入 Space 名称 [默认: careerforge-ai]: " SPACE_NAME
SPACE_NAME=${SPACE_NAME:-careerforge-ai}
echo ""
echo -e "${GREEN}✅ 用户名: ${CYAN}$HF_USERNAME${NC}"
echo -e "${GREEN}✅ Space 名称: ${CYAN}$SPACE_NAME${NC}"
echo -e "${GREEN}✅ Space 地址: ${BLUE}https://huggingface.co/spaces/$HF_USERNAME/$SPACE_NAME${NC}"
echo ""
read -p "信息正确吗?(y/n) " -n 1 -r
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo -e "${YELLOW}⚠️ 已取消${NC}"
exit 1
fi
echo ""
# 步骤 2:检查 Git
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${YELLOW}🔍 步骤 2/5: 检查 Git 环境${NC}"
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
if ! command -v git &> /dev/null; then
echo -e "${RED}❌ Git 未安装${NC}"
echo ""
echo "请先安装 Git:"
echo " Mac: brew install git"
echo " Windows: https://git-scm.com/download/win"
echo ""
exit 1
fi
echo -e "${GREEN}✅ Git 已安装: $(git --version)${NC}"
echo ""
# 配置 Git 用户信息(如果未配置)
if [ -z "$(git config user.name)" ]; then
read -p "请输入 Git 用户名: " GIT_NAME
git config user.name "$GIT_NAME"
echo -e "${GREEN}✅ 已设置 Git 用户名${NC}"
fi
if [ -z "$(git config user.email)" ]; then
read -p "请输入 Git 邮箱: " GIT_EMAIL
git config user.email "$GIT_EMAIL"
echo -e "${GREEN}✅ 已设置 Git 邮箱${NC}"
fi
echo ""
# 步骤 3:初始化 Git 仓库
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${YELLOW}📦 步骤 3/5: 初始化 Git 仓库${NC}"
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
if [ -d ".git" ]; then
echo -e "${YELLOW}⚠️ Git 仓库已存在,跳过初始化${NC}"
else
echo "正在初始化 Git 仓库..."
git init
echo -e "${GREEN}✅ Git 仓库初始化完成${NC}"
fi
echo ""
# 步骤 4:添加远程仓库
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${YELLOW}🔗 步骤 4/5: 配置远程仓库${NC}"
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
REMOTE_URL="https://huggingface.co/spaces/$HF_USERNAME/$SPACE_NAME"
# 检查是否已有 origin
if git remote | grep -q "origin"; then
echo "移除旧的 origin..."
git remote remove origin
fi
echo "添加远程仓库: $REMOTE_URL"
git remote add origin $REMOTE_URL
echo -e "${GREEN}✅ 远程仓库配置完成${NC}"
echo ""
# 步骤 5:提交并推送
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${YELLOW}🚀 步骤 5/5: 提交并推送代码${NC}"
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
echo "添加所有文件..."
git add .
echo "提交更改..."
git commit -m "Initial commit: Deploy CareerForge AI to Hugging Face Space"
echo ""
echo -e "${BLUE}╔═══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${BLUE}║ ║${NC}"
echo -e "${BLUE}║ ⚠️ 准备推送到 Hugging Face ║${NC}"
echo -e "${BLUE}║ ║${NC}"
echo -e "${BLUE}╚═══════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "${YELLOW}接下来会要求你输入:${NC}"
echo ""
echo -e " ${CYAN}Username:${NC} $HF_USERNAME"
echo -e " ${CYAN}Password:${NC} 使用你的 Hugging Face Access Token"
echo ""
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${YELLOW}🔑 如何获取 Access Token:${NC}"
echo ""
echo " 1️⃣ 访问: ${BLUE}https://huggingface.co/settings/tokens${NC}"
echo " 2️⃣ 点击 'New token' 按钮"
echo " 3️⃣ 选择 'write' 权限 ⚠️"
echo " 4️⃣ 点击 'Generate'"
echo " 5️⃣ 复制生成的 token(以 hf_ 开头)"
echo ""
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
read -p "准备好 Token 了吗?按回车继续推送..."
echo ""
echo "正在推送到 Hugging Face..."
echo ""
if git push origin main 2>&1; then
echo ""
echo -e "${GREEN}╔═══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}║ ║${NC}"
echo -e "${GREEN}║ 🎉🎉🎉 推送成功!🎉🎉🎉 ║${NC}"
echo -e "${GREEN}║ ║${NC}"
echo -e "${GREEN}╚═══════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "${GREEN}✅ CareerForge AI 已成功上传到 Hugging Face!${NC}"
echo ""
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
echo -e "${RED}⚠️ 重要:还需要完成最后一步!${NC}"
echo ""
echo -e "${CYAN}📍 请访问你的 Space 设置页面:${NC}"
echo -e " ${BLUE}$REMOTE_URL/settings${NC}"
echo ""
echo -e "${CYAN}🔐 添加 DeepSeek API Key:${NC}"
echo ""
echo " 1️⃣ 点击 'Settings' 标签"
echo " 2️⃣ 找到 'Repository secrets' 部分"
echo " 3️⃣ 点击 'New secret' 按钮"
echo " 4️⃣ 填写:"
echo -e " Name: ${GREEN}DEEPSEEK_API_KEY${NC}"
echo -e " Value: ${GREEN}sk-你的DeepSeek API密钥${NC}"
echo " 5️⃣ 点击 'Add' 按钮"
echo ""
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
echo -e "${CYAN}💡 获取 DeepSeek API Key:${NC}"
echo ""
echo " 1. 访问: ${BLUE}https://platform.deepseek.com${NC}"
echo " 2. 注册并登录"
echo " 3. 点击左侧 'API Keys'"
echo " 4. 创建新密钥"
echo " 5. 充值 ¥10-20"
echo ""
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
echo -e "${CYAN}⏳ 配置完成后:${NC}"
echo ""
echo " • 等待 3-5 分钟让 Space 构建"
echo " • 访问 App 标签测试功能"
echo " • 生成一份简历试试!"
echo ""
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
echo -e "${CYAN}🌐 你的应用地址:${NC}"
echo -e " ${BLUE}$REMOTE_URL${NC}"
echo ""
echo -e "${CYAN}📊 查看构建日志:${NC}"
echo -e " ${BLUE}$REMOTE_URL?logs=build${NC}"
echo ""
echo -e "${GREEN}祝你使用愉快!🚀✨${NC}"
echo ""
else
echo ""
echo -e "${RED}╔═══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${RED}║ ║${NC}"
echo -e "${RED}║ ❌ 推送失败 ║${NC}"
echo -e "${RED}║ ║${NC}"
echo -e "${RED}╚═══════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "${YELLOW}可能的原因:${NC}"
echo ""
echo " 1. Access Token 不正确或权限不足"
echo " 2. Space 尚未在 Hugging Face 创建"
echo " 3. 网络连接问题"
echo " 4. Token 已过期"
echo ""
echo -e "${YELLOW}解决方法:${NC}"
echo ""
echo " 1. 确保先在 HF 网站创建 Space:"
echo -e " ${BLUE}https://huggingface.co/new-space${NC}"
echo " 2. 确保 SDK 选择了 'Docker'"
echo " 3. 获取新的 Access Token(需要 write 权限):"
echo -e " ${BLUE}https://huggingface.co/settings/tokens${NC}"
echo " 4. 检查网络连接"
echo ""
echo " 然后重新运行此脚本。"
echo ""
fi