惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
MyScale Blog
MyScale Blog
I
InfoQ
爱范儿
爱范儿
Microsoft Security Blog
Microsoft Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
T
Tailwind CSS Blog
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Blog of Author Tim Ferriss
B
Blog
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
雷峰网
雷峰网
Recent Announcements
Recent Announcements
量子位
B
Blog RSS Feed

博客园 - 立体风

autohotkey2.0 Send keys参数分析 autohotkey2.0 盲从模式 windows 10 下 vscode 编写编译一个 nana c++ 库的示例程序 vscode 插件 cmake-tools 输出内容解读 Claude Code 处理中文乱码问题 python 启动器命令 py 答惑 windows 下 python 3.11 的版本问题 pip 安装 老版本 pytorch 的一个容易迷惑的错误 sentence transformer 例子及说明 Sentence Transformers 介绍 Webnovel Writer 6.2.1 项目分析 windows 10 LTSC 版 安装 Terminal autohotkey2.0 脚本运行机制 windows wsl2 安装 gentoo 的步骤 windows 10 LTSC版 打开 wsl2 autohotkey 提示词 编译安装最新版 perl rust 做到“快并且安全” 的逻辑思路 rust 和 go 语言的核心目的 用 vim 查看文件的格式和编码 throughput 和 efficient 词义 python 以字符数量分割文档 (三) python 以字符数量分割文档 (二) python 以字符数量分割文档 (一) GNU Bash 参考手册(中文版)(六) GNU Bash 参考手册(中文版)(五) GNU Bash 参考手册(中文版)(四) GNU Bash 参考手册(中文版)(三) GNU Bash 参考手册(中文版)(二) GNU Bash 参考手册(中文版)(一)
Jina Reranker 替代方案:改用 ModelScope 模型
立体风 · 2026-08-20 · via 博客园 - 立体风

Jina Reranker 替代方案:改用 ModelScope 模型

适用项目:webnovel-writer v6.2.1
问题:把默认的 Jina Reranker(jina-reranker-v3)替换为 ModelScope 上的模型,或其他 OpenAI 兼容的 rerank 服务。

代码层面的结论

  • Rerank 客户端(webnovel-writer/scripts/data_modules/api_client.pyRerankAPIClient)本身就支持任意 OpenAI 兼容的 rerank 接口(Jina/Cohere 格式),Jina 只是默认值,不是硬编码;
  • 请求格式:POST {RERANK_BASE_URL}/v1/rerank,body 为 {"query", "documents", "model", "top_n"}
  • 响应解析只认 results[].relevance_score 字段(rag_adapter.py:1087);
  • Rerank 是"软"失败:调用失败只跳过重排(保留原排序继续检索),不会像 Embedding 那样导致整体降级 BM25——所以换错配置最坏结果是"重排静默失效",不会崩。

三个替代方案

方案 A:ModelScope 云端 API(推荐先 curl 验证)

ModelScope 的推理端点 api-inference.modelscope.cn 提供 OpenAI 兼容接口(本项目 Embedding 默认就是它)。Rerank 可同样指向它。书项目根目录的 .env 改为:

EMBED_BASE_URL=https://api-inference.modelscope.cn/v1
EMBED_MODEL=Qwen/Qwen3-Embedding-8B
EMBED_API_KEY=你的modelscope_key

RERANK_BASE_URL=https://api-inference.modelscope.cn/v1
RERANK_MODEL=Qwen/Qwen3-Reranker-4B
RERANK_API_KEY=你的modelscope_key

代码会把 URL 拼成 https://api-inference.modelscope.cn/v1/rerank改之前先用 curl 验证端点和返回字段(这一步很关键,因为解析器只认 relevance_score):

curl -s https://api-inference.modelscope.cn/v1/rerank \
  -H "Authorization: Bearer 你的modelscope_key" \
  -H "Content-Type: application/json" \
  -d '{"model": "Qwen/Qwen3-Reranker-4B", "query": "萧炎修炼", "documents": ["萧炎在密室突破斗师", "药老讲解炼丹"]}'

确认返回里有 results 数组且每项带 index + relevance_score,再改 .env。若返回字段是 score 而不是 relevance_score,会被代码静默忽略(重排无效但不出错),这种情况换方案 B 或 C。

ModelScope 上的模型选择:

模型 特点
Qwen/Qwen3-Reranker-4B 性价比首选
Qwen/Qwen3-Reranker-0.6B 最快,约 1.2GB
Qwen/Qwen3-Reranker-8B 最强,32K 上下文

方案 B:阿里云百炼 DashScope(官方确认的 OpenAI 兼容 rerank)

代码里已内置 DashScope 兼容路径(_is_dashscope_url / _build_dashscope_urlapi_client.py:278-317),且接口格式与解析字段完全匹配(返回 relevance_score):

RERANK_BASE_URL=https://dashscope.aliyuncs.com/compatible-api/v1
RERANK_MODEL=qwen3-rerank
RERANK_API_KEY=你的dashscope_key

qwen3-rerank 就是 Qwen3-Reranker 的云上服务版,支持 100+ 语言、单次最多 500 篇文档。

方案 C:ModelScope 权重本地部署(离线/不想付 API 费)

下载权重后用 vLLM / Xinference 起一个 OpenAI 兼容的 /rerank 服务,再把 RERANK_BASE_URL 指到 http://localhost:端口/v1 即可——代码对 URL 无域名限制。注意 Qwen3-Reranker 是生成式(decoder-only)模型,不能用 AutoModelForSequenceClassification 加载,推荐直接走 vLLM 部署。

操作步骤汇总

  1. 先 curl 验证端点与返回字段(上面的命令);
  2. 改配置:编辑书项目根目录的 .env(初始化时生成的 .env.example 可复制),只改 RERANK_* 三行;
  3. 生效与验证
    • 配置加载顺序是:进程环境变量 > 书项目根 .env > ~/.claude/webnovel-writer/.envdocs/guides/rag-and-config.md)——如果你之前在 shell 里 export 过旧的 RERANK_*,它会覆盖 .env,先清掉;

    • 之后跑一次 /webnovel-write 或检索相关查询,观察有没有 [ERR] Rerank ... 输出(没有 = 正常;有 = 端点/Key/模型名问题);

    • 想查整体状态可跑:

      python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<书根>" doctor --format text
      

      看 RAG 检查项。

注意事项

  • RERANK_API_KEY 留空会导致请求 401 失败(软失败,只是不重排);
  • 多本书时建议每本书单独配 .env,避免串配置。

参考来源