#!/usr/bin/env bash # 对 S01–S10 跑全部抽取任务(输入是 prepare.py 生成的规范化 PDF),结果在 evals/out/runs/<名字>//。 # 用法(仓库根目录):evals/run_all.sh <名字> [run_extract.py 的其他参数] # 换模型:BD_AI_MODELS='{"reasoning": "deepseek-v4-pro"}' evals/run_all.sh pro set -euo pipefail name=$1; shift root=$(cd "$(dirname "$0")/.." && pwd) cd "$root/server" for id in S01 S02 S03 S04 S05 S06 S07 S08 S09 S10; do echo "$id" ../.venv/bin/python ../evals/run_extract.py "../evals/out/docs/$id/normalized.pdf" "../evals/out/runs/$name/$id" "$@" \ > /dev/null 2> "../evals/out/runs/$name.$id.log" & # 同时最多 3 份(每份内部 8 路并发调用模型) # macOS 的 bash 3.2 在 $(…) 子 shell 里看不到后台任务,先写到文件再数 while jobs -r > "$root/evals/out/runs/.jobs" && [ "$(wc -l < "$root/evals/out/runs/.jobs")" -ge 3 ]; do sleep 2; done done wait echo done