CareerNexus 职联:岗位能力图谱构建与动态演化分析平台(挑战杯 XH-202621)
- 全链路:多源JD接入/清洗交叉验证/结构化抽取(星火+离线双通道)/时序知识图谱/新岗位发现/演化分析/人岗匹配/学习路径 - WebUI 五视图:驾驶舱/图谱工作台/岗位演化/匹配(单人+批量)/学习路径 - 设置中心(config.json)/Token鉴权/SQLite状态库/语义向量通道(BGE-M3本地或联网API) - 71 个 pytest 用例;数据目录仅保留结构(.gitkeep),数据由 scripts/generate_dataset.py 复现
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
#!/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 "=========================================="
|
||||
Reference in New Issue
Block a user