feat: 接入 BGE-M3 本地嵌入默认配置 + 新增 Qwen3-Reranker 重排

- .env.example 嵌入默认改为本地 BGE-M3(EMBEDDING_PROVIDER=local, dim=1024),NAS 全新部署即用
- 新增 app/services/reranker.py:基于 Ollama /api/rerank 的 cross-encoder 重排服务
- retriever 在 chunk 候选阶段接入语义精排,调用失败优雅降级为 RRF 顺序
- docker-compose 拉取 qwen3-reranker:0.6b,OLLAMA_MAX_LOADED_MODELS 提至 3
- .gitignore 排除 .workbuddy/ 与 .trae/(防止误提交项目记忆与 IDE spec)
- 新增 reranker 单元与集成测试,全量测试 529 passed
This commit is contained in:
2026-08-01 00:08:38 +08:00
parent 6c6f690788
commit 6ae91679e2
8 changed files with 320 additions and 9 deletions
+10 -3
View File
@@ -7,12 +7,14 @@ APP_PORT=8000
LOG_LEVEL=info
# --- 嵌入模型 ---
# openai | local
EMBEDDING_PROVIDER=openai
# openai | local。默认走本地 Ollama 的 BGE-M3(多语言榜首、dense+sparse 一体,零 API 成本)
EMBEDDING_PROVIDER=local
# 以下为 EMBEDDING_PROVIDER=openai 时启用的 OpenAI 兼容配置(本地模式可留空)
OPENAI_API_KEY=sk-xxx
OPENAI_BASE_URL=https://api.openai.com/v1
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIMENSION=1536
# 维度需与所选嵌入模型一致:BGE-M3 为 1024;切换 OpenAI 时改回 1536
EMBEDDING_DIMENSION=1024
# --- Qdrant ---
QDRANT_PORT=6333
@@ -28,6 +30,11 @@ OLLAMA_MODEL=qwen2.5:1.5b
# EMBEDDING_PROVIDER=local 时使用的 Ollama 嵌入模型
OLLAMA_EMBEDDING_MODEL=bge-m3
# --- 重排模型(cross-encoder,经 Ollama /api/rerank 对 chunk 候选精排)---
# 启用后显著提升最终 Top-K 相关性;需 Ollama 已拉取 RERANKER_MODEL(见 docker-compose
RERANKER_ENABLED=true
RERANKER_MODEL=qwen3-reranker:0.6b
# --- NAS 持久化 ---
NAS_DATA_DIR=./data