Files
CareerNexus/init.sh
T
RoyirinRosmontis a10442d78c CareerNexus 职联:岗位能力图谱构建与动态演化分析平台(挑战杯 XH-202621)
- 全链路:多源JD接入/清洗交叉验证/结构化抽取(星火+离线双通道)/时序知识图谱/新岗位发现/演化分析/人岗匹配/学习路径
- WebUI 五视图:驾驶舱/图谱工作台/岗位演化/匹配(单人+批量)/学习路径
- 设置中心(config.json)/Token鉴权/SQLite状态库/语义向量通道(BGE-M3本地或联网API)
- 71 个 pytest 用例;数据目录仅保留结构(.gitkeep),数据由 scripts/generate_dataset.py 复现
2026-08-03 13:15:35 +08:00

82 lines
3.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# ============================================================
# CareerNexus 职联 初始化脚本(Linux / macOS / Git Bash)
# 作用:建虚拟环境 → 装依赖 → 写离线默认配置(触发首次引导)→ 生成数据集
# 用法:bash init.sh 或 chmod +x init.sh && ./init.sh
# ============================================================
set -e
cd "$(dirname "$0")"
echo "=========================================="
echo " CareerNexus 职联 · 初始化"
echo "=========================================="
# ---------- 1. 检查 Python(跳过 WindowsApps 商店占位 stub) ----------
PY=""
for cand in python python3 py; do
command -v "$cand" >/dev/null 2>&1 || continue
# 跳过 Microsoft Store 占位 stub(运行 --version 无输出)
case "$(command -v "$cand")" in *WindowsApps*) continue;; esac
ver=$("$cand" --version 2>/dev/null)
if [ -n "$ver" ]; then PY="$cand"; PYVER="$ver"; break; fi
done
if [ -z "$PY" ]; then
echo "[错误] 未找到可用的 Python 3.11+(检测到商店占位 stub 不算)"
echo " 请安装 Python 并加入 PATH,或安装后重试"
exit 1
fi
echo "[1/5] Python 版本: $PYVER ($PY)"
# ---------- 2. 创建虚拟环境 ----------
if [ ! -f ".venv/bin/python" ] && [ ! -f ".venv/Scripts/python.exe" ]; then
echo "[2/5] 创建虚拟环境 .venv ..."
$PY -m venv .venv
else
echo "[2/5] 虚拟环境已存在,跳过"
fi
# Windows venv 与 POSIX venv 路径兼容
if [ -f ".venv/bin/python" ]; then
VENV_PY=.venv/bin/python
else
VENV_PY=.venv/Scripts/python.exe
fi
# ---------- 3. 安装依赖(镜像站优先,失败回退官方源) ----------
echo "[3/5] 安装依赖(清华镜像站)..."
if ! "$VENV_PY" -m pip install -q -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple; then
echo "镜像站失败,改用官方源重试..."
"$VENV_PY" -m pip install -q -r requirements.txt
fi
# ---------- 4. 写入离线默认配置(config.json) ----------
# mode=demo 离线演示模式;guided=false 使首次启动弹出"初始设置"引导;
# 已有配置先备份为 config.json.bak
if [ -f config.json ]; then
echo "[4/5] 检测到已有 config.json,备份为 config.json.bak"
cp -f config.json config.json.bak
fi
echo "[4/5] 写入离线默认配置 config.json ..."
cat > config.json <<'EOF'
{
"mode": "demo",
"guided": false,
"embed_provider": "local"
}
EOF
# ---------- 5. 生成自备数据集 ----------
if [ ! -d "data/jd_raw" ]; then
echo "[5/5] 生成自备数据集(seed=2026)..."
"$VENV_PY" scripts/generate_dataset.py
else
echo "[5/5] 数据集已存在,跳过(需重建请运行 $VENV_PY scripts/generate_dataset.py)"
fi
echo ""
echo "=========================================="
echo " 初始化完成!当前为离线演示模式"
echo " 启动:$VENV_PY main.py"
echo " 首次启动会弹出「初始设置」,可在其中配置"
echo " 星火 LLM 密钥与语义向量模型(亦可跳过)"
echo "=========================================="