# 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](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](retrieval/README.md)。