陈世睿 74caa9d112 初始化 dish-image:菜品图爬虫 + 图片名称检索平台
- crawler/:豆果(主)/下厨房/Bing 爬虫 + dishes.jsonl(3056 菜→9167 图映射)+ verify_repair 按 URL 重下
- retrieval/:三路检索(BM25 + 本地 BGE-M3 向量 + RRF 融合),FastAPI + 前端;写死图片目录(默认 crawler/images,可 IMAGE_DIR 覆盖)、绑 0.0.0.0 局域网访问、启动自动建索引、服务器 serve 图片
- 图片(1.7G)与向量模型(2.3G)不进 git

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 21:32:49 +08:00

dish-image

菜品图工具集:① 爬取菜品图 + ② 基于图片名称的三路检索平台(BM25 / 本地向量 / RRF 融合)。为"比价后展示/检索菜品图"做支撑。

图片(约 9167 张 / 1.7G)和向量模型(BGE-M3 ~2.3G)不进 git。 clone 后按下面步骤重爬图、首次运行检索平台会自动下模型。

目录

  • crawler/ — 菜品图爬虫 + 菜→图映射 dishes.jsonl
  • retrieval/ — 检索平台(FastAPI + 前端),目录写死、局域网可访问

① 爬图(crawler/)

豆果 App 接口为主(质量最好):

cd crawler
python scrape_douguo.py --input 菜名.txt --out dishes.jsonl --download --per-dish 3 --workers 8 --replace

图片下到 crawler/images/,映射追加到 dishes.jsonl(断点续爬)。杀软清图后 python verify_repair.py --repair 按 URL 重下。详见 crawler/README.md

② 检索平台(retrieval/)

cd retrieval
run.bat            # 或 pip install -r requirements.txt && python server.py
  • 图片目录 = 本仓库的 crawler/images(即上一步爬的图)。
    • 具体路径:仓库在 E:\codes\dish-image 时 → E:\codes\dish-image\crawler\images
    • 想指向别处已有的图(不搬文件):启动前 set IMAGE_DIR=<绝对路径> 覆盖即可,无需改代码。
  • 启动即扫描该目录、自动建索引(BM25 + 本地 BGE-M3 向量);首次下模型 ~2.3G(走 hf-mirror),之后约 25s 加载。
  • 0.0.0.0,控制台打印局域网地址;同事同局域网打开即直接搜(无需选文件夹)。
    • 连不上多半是防火墙,管理员执行一次:netsh advfirewall firewall add rule name="dish-retrieval" dir=in action=allow protocol=TCP localport=8799

三路检索原理与接口见 retrieval/README.md

S
Description
No description provided
Readme 746 KiB
Languages
Python 87.1%
JavaScript 5.4%
CSS 4.3%
HTML 2.9%
Batchfile 0.3%