Views
No views yet
yt-dlp 抓取视频 + 顶层评论 + 元数据;web_search 走 Tavily 公网搜索);demo/
├── run_people_online_tavily.sh # 入口脚本(可迁移版,REPO_ROOT 自动取本目录)
├── requirements.txt # Python 依赖(已清理为本地可安装格式)
├── README.md # 本文件
├── inference/
│ ├── fetch_youtube_online.py # 第 1 步:yt-dlp 抓视频/评论 -> work_dir
│ ├── run_people_quality_inference.py # 第 2 步:单条筛选推理入口
│ ├── attractive_leads_prompt.py # system / user prompt 构造
│ ├── eval.py # 核心:五工具多轮推理 + Tavily/图搜 + HTML
│ └── video_dr_bridge.py # 桥接层:复用 video_dr_gen 的帧处理/工具逻辑
└── video_dr_gen/ # VideoDR SFT 构造代码(帧抽取、bbox、图搜/web搜实现)
├── assemble_sft_dataset.py # NEW_SYSTEM_PROMPT 等
├── config.py # MARS / gateway / 默认帧参数等常量
├── prompts.py # PHASE1/PHASE2/BASE system prompts
└── utils.py # normalize_bbox / crop_frame / image_search / mars_web_search ...重要:inference/与video_dr_gen/必须保持现在的相对位置(同在demo/下)。video_dr_bridge.py按本文件父目录的父目录 / video_dr_gen定位依赖;也可用环境变量VIDEO_DR_SOURCE_ROOT显式指定其它路径。本 demo 已把用到的 4 个video_dr_gen文件打包进来并改成相对/可配置定位, 迁移后无需依赖旧机器共享盘路径。
run_people_online_tavily.sh <youtube_url>:no_proxy(内网模型直连、公网走代理),激活 conda 环境。inference/fetch_youtube_online.py
yt-dlp 下载 mp4 + info.json(含评论),规范化后写出
comments.json / metadata.json;---FETCH--- KEY=VALUE ---END--- 块把 VIDEO_ID/VIDEO_PATH/COMMENTS_FILE/ TITLE/CHANNEL/DURATION/VIEW_COUNT/VIDEO_URL 回传给 shell。inference/run_people_quality_inference.py(--web-search-backend tavily + 一组
--tavily-*),复用 eval.py::evaluate_video_tool() 的五工具多轮推理逻辑。tee 到日志文件。<work_dir>/<id>.mp4、<id>.info.json、comments.json、metadata.json
(默认 inference/online_runs/<id>_<ts>/,可用 WORK_DIR 复用避免重下)。demo/lead_filter_runs/online_<id>_<ts>/):
results.jsonl、results.html、summary.json、decision_table.csv、
images/、frame_cache/。<output_dir>.log。1cd demo
2./run_people_online_tavily.sh https://www.youtube.com/shorts/ZHI5IkRfXAM
3# 或
4VIDEO_URL=https://www.youtube.com/watch?v=XXXX ./run_people_online_tavily.sh
5# 限制评论数
6MAX_COMMENTS=50 ./run_people_online_tavily.sh <url>-- 之后透传给推理脚本,例如调温度:./run_people_online_tavily.sh <url> --temperature 0.6ffmpeg(yt-dlp 合并 mp4 必需,需在 PATH)。yt-dlp(pip 安装或系统包均可)。1/home/tione/notebook/gaozhenkun/envs/sglang/bin/python -m pip install -r requirements.txt
2# eval.py 顶层 import playwright,需要装浏览器内核:
3PLAYWRIGHT_BROWSERS_PATH=$PWD/.playwright-browsers \
4 /home/tione/notebook/gaozhenkun/envs/sglang/bin/playwright install chromium说明:当前默认使用本机/home/tione/notebook/gaozhenkun/envs/sglang环境。google-*(Vertex/Gemini)仅在--model-client vertex时才需要,默认不装也能跑。
| 变量 | 作用 | 默认值 | 迁移时是否要改 |
|---|---|---|---|
CONDA_ENV | 要激活的 conda 环境路径/名 | /home/tione/notebook/gaozhenkun/envs/sglang | 视情况 |
CONDA_BASE | conda 安装根(取 conda shell.bash hook) | /root/miniconda3 | 视情况 |
MODEL_BASE_URL | VLM 推理服务(OpenAI 兼容 /v1) | http://100.102.37.219:8008 | 是 |
MODEL_NAME | 模型名 | qwen3-vl-video-dr | 视情况 |
TAVILY_API_KEY_FILE | Tavily key 列表文件(每行一个) | demo/secrets/tavily_api_keys.txt | 视情况 |
HTTP_PROXY_URL | 公网代理(yt-dlp/Tavily 出网);直连可设为空 "" | http://127.0.0.1:17890 | 是 |
YT_DLP | yt-dlp 可执行路径 | 自动探测 | 视情况 |
VIDEO_DR_SOURCE_ROOT | VideoDR 依赖目录 | 默认用打包的 demo/video_dr_gen | 一般不用改 |
VIDEO_DEEP_RESEARCH_DATA_ROOT | 本地批量数据/评测数据根目录 | demo/local_data | 可选 |
VIDEO_DEEP_RESEARCH_SECRETS_DIR | 本地 secret 文件目录 | demo/secrets | 可选 |
PLAYWRIGHT_BROWSERS_PATH | Playwright 浏览器内核目录 | demo/.playwright-browsers | 可选 |
export TAVILY_API_KEY=... 或 TAVILY_API_KEYS=k1,k2。1export CONDA_ENV=/home/tione/notebook/gaozhenkun/envs/sglang
2export CONDA_BASE=/root/miniconda3
3export MODEL_BASE_URL=http://<your-vlm-host>:8000
4export TAVILY_API_KEY=tvly-xxxxxxxx
5export HTTP_PROXY_URL="" # 直连,不走代理
6./run_people_online_tavily.sh <youtube_url>web_search 在本 demo 中走 Tavily。MARS_RETRIEVAL_ADDRESS / MARS_SUMMARIZER_ADDRESS
默认空字符串,只有显式 export 后才会探测内网 MARS/summarizer。image_search 默认读取 GATEWAY_URL / GATEWAY_TOKEN / SERPER_API_KEY /
OSS_ACCESS_KEY_ID 等环境变量;未配置时工具会返回配置缺失错误,但不会依赖旧机器明文路径。1# 模型服务可达?
2curl "$MODEL_BASE_URL/v1/models"
3# 源码闭包可导入?(应输出 IMPORT_OK)
4cd demo/inference && python -c "import fetch_youtube_online, run_people_quality_inference; print('IMPORT_OK')"