Files
dish-image/retrieval/static/index.html
T
陈世睿 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

60 lines
2.3 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片名称检索测试台</title>
<link rel="stylesheet" href="/style.css">
</head>
<body>
<header>
<h1>图片名称检索测试台</h1>
<p class="sub">基于<b>图片名称</b>的三路检索对比:BM25 关键词 / 向量 BGE-M3 / RRF 融合。图片目录已固定,直接搜即可。</p>
</header>
<!-- 索引状态 -->
<section class="panel">
<div id="status" class="info muted">连接服务中…</div>
<div id="buildBar" class="buildbar hidden">
<div class="bar"><div id="barFill" class="fill"></div></div>
<span id="buildText"></span>
</div>
</section>
<!-- 检索 -->
<section class="panel">
<div class="row">
<input id="q" class="query" type="text" placeholder="输入查询词,例如:红烧肉 / 碳酸饮料 / 甜点 / 辣的川菜" disabled>
<label class="sel">返回<input id="topk" type="number" value="20" min="1" max="100" style="width:56px"></label>
<button id="search" class="btn primary" disabled>搜索</button>
</div>
<details class="adv">
<summary>高级:融合(RRF)参数</summary>
<div class="row">
<label class="sel">RRF k <input id="rrfk" type="number" value="60" min="1" max="500" style="width:64px"></label>
<label class="sel">BM25 权重 <input id="wbm" type="number" value="1.0" step="0.1" min="0" style="width:64px"></label>
<label class="sel">向量 权重 <input id="wvec" type="number" value="1.0" step="0.1" min="0" style="width:64px"></label>
</div>
</details>
</section>
<!-- 结果:三列 -->
<section id="results" class="results">
<div class="column" data-kind="bm25">
<h2>① BM25 关键词 <span class="cnt" id="cnt-bm25"></span></h2>
<div class="cards" id="col-bm25"></div>
</div>
<div class="column" data-kind="vector">
<h2>② 向量 BGE-M3 <span class="cnt" id="cnt-vector"></span></h2>
<div class="cards" id="col-vector"></div>
</div>
<div class="column" data-kind="fusion">
<h2>③ RRF 融合 <span class="cnt" id="cnt-fusion"></span></h2>
<div class="cards" id="col-fusion"></div>
</div>
</section>
<script src="/app.js"></script>
</body>
</html>