中文摘要 + TLDR + 动机/方法/结果/结论 四段笔记。API key 仅存在你的浏览器 localStorage,不上传。
LLM 设置(首次使用需填)
选提供商后,Base URL 和 Model 会自动填好。所有选项都是 OpenAI 兼容接口(Anthropic / Gemini 不在此列)。
推荐 DeepSeek(platform.deepseek.com)。
Key 只存在浏览器,不会上传。
刷新模型列表 = 拉服务端真实模型(下拉里直接选)。✏️ = 切到手动输入(填自定义 model)。
测试连接 = 验证当前 model 在服务端存不存在。
部署在 EdgeOne / Vercel / Netlify 等静态站上,浏览器直接拉 arXiv 一定会被 CORS 拦。
默认按
corsproxy.io → allorigins → thingproxy 顺序逐个试,任何一个能用就行。
想稳定建议自建:用 Cloudflare Worker 五行代码转发到 arXiv 即可。
已自动保存到本地浏览器
同步配置到 GitHub Gist(可选,给后台 pipeline 用)
在 github.com/settings/tokens
生成(classic 即可),只勾 gist scope。Token 只存在浏览器,不上传。
把当前 LLM 配置(provider / API key / Base URL / Model / CORS 代理)写进一个 secret Gist。
GitHub Actions 跑 daily pipeline 时会自动拉这个 Gist 当作 secret 源。
arXiv 代理 3 分钟自部署教程(可选,稳定后一劳永逸)
为什么需要? 浏览器拉 arXiv 一定会被 CORS 拦,公共代理(corsproxy.io / allorigins / thingproxy)经常挂。自部署一个 Cloudflare Worker 永远稳定。
- 去 Cloudflare Workers 创建 Worker(免费)
-
把下面这段代码整段粘进去,点 Deploy:
export default { async fetch(req) { const u = new URL(req.url); let target = u.pathname.replace(/^\/proxy\/?/, ''); if (!target) target = u.searchParams.get('url'); if (!/^https?:\/\//i.test(target)) return new Response('missing url', { status: 400 }); const r = await fetch(target, { headers: { 'User-Agent': 'Mozilla/5.0 (cf-worker-proxy/1.0)' }, redirect: 'follow', }); const h = new Headers(r.headers); h.set('Access-Control-Allow-Origin', '*'); h.set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); h.set('Access-Control-Allow-Headers', '*'); return new Response(r.body, { status: r.status, headers: h }); }, }; -
部署完会拿到一个
https://<name>.<sub>.workers.dev地址。 把这个地址(去掉https://)填到上面 LLM 设置里的 CORS 代理 输入框。 - 之后 arXiv 搜索永久走你自己的代理,公共代理挂了也不影响。
拖拽 PDF 到这里,或点选文件
支持单文件 ≤ 30 MB · 仅本地处理,不上传