Files
kplam a1b80566bb feat: 升级 Ollama 本地模型 qwen2.5:1.5b → qwen3:1.7b
- config.py / .env.example / docker-compose.yml:默认模型改为 qwen3:1.7b(备选 qwen3:4b),compose 同步拉取
- 经 runtime_settings 注入 summarize/query/classify 三用途,改默认值即全局生效
- README / CLAUDE.md / 前端 Settings.vue 占位符同步更新
2026-08-01 00:28:50 +08:00

108 lines
3.3 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ===========================================
# QMDSearch 环境变量配置
# ===========================================
# --- 应用 ---
APP_PORT=8000
LOG_LEVEL=info
# --- 嵌入模型 ---
# 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
# 维度需与所选嵌入模型一致:BGE-M3 为 1024;切换 OpenAI 时改回 1536
EMBEDDING_DIMENSION=1024
# --- Qdrant ---
QDRANT_PORT=6333
QDRANT_DASHBOARD_PORT=6334
# --- Redis ---
REDIS_PORT=6379
# --- Ollama 本地模型(文档三级总结)---
OLLAMA_PORT=11434
OLLAMA_MODEL=qwen3:1.7b
# 备选模型: qwen3:4b(更好的总结质量,需更多内存)
# 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
# --- 检索参数 ---
# L2 语义检索召回数量
RETRIEVAL_TOP_K=20
# L3 重排后返回数量
RETRIEVAL_FINAL_K=5
# --- 文档入库参数 ---
# 低于此字符数触发 2.5 级回退
SUMMARY_MIN_TEXT_LENGTH=500
# --- 入库异步任务 ---
# 入库后台任务并发上限
INGEST_MAX_CONCURRENCY=2
# 任务状态 Redis 保留秒数(进行中与已完成,默认 24 小时)
INGEST_TASK_TTL_DONE=86400
# 失败任务状态 Redis 保留秒数(默认 7 天)
INGEST_TASK_TTL_FAILED=604800
# --- 知识分类(taxonomy---
# taxonomy JSON 文件路径,留空使用内置默认类目集
TAXONOMY_PATH=
# 分类置信度低于此值归入 uncategorized
CLASSIFY_CONFIDENCE_THRESHOLD=0.6
# query 路由命中类目数上限,超过走全库兜底
CLASSIFY_MAX_CATEGORIES=3
# --- 分层检索参数 ---
# L1 层候选文档数
L1_DOC_TOP_N=10
# L2 层候选 section 数
L2_SECTION_TOP_N=5
# L3 层定位数
L3_TOP_N=10
# 是否启用稀疏检索
SPARSE_ENABLED=true
# Redis 缓存秒数
CACHE_TTL=300
# --- 分块参数 ---
# chunk 超长二次切分阈值(字符数)
CHUNK_MAX_CHARS=800
# --- 认证(JWT---
# JWT 签名密钥,生产环境必须设置为足够长的随机串;留空则启动时自动生成(仅开发用)
JWT_SECRET_KEY=
# JWT 签名算法
JWT_ALGORITHM=HS256
# token 有效期(分钟),默认 24 小时
JWT_EXPIRE_MINUTES=1440
# 是否开放 POST /api/v1/auth/register 注册接口
AUTH_REGISTER_ENABLED=true
# 启动时自动创建的默认管理员用户名
DEFAULT_ADMIN_USERNAME=admin
# 默认管理员密码,留空则不创建默认管理员
DEFAULT_ADMIN_PASSWORD=
# --- 检索结果 AI 总结 ---
# 参与总结的最大 hit 条数(控制 prompt 长度)
RESULT_SUMMARY_MAX_HITS=5
# --- 文件上传 ---
# 原始文件保存目录(相对路径以工作目录为基)
UPLOAD_DIR=./uploads
# 单文件大小上限(MB
UPLOAD_MAX_SIZE_MB=20
# 允许上传的扩展名(逗号分隔,含点号,全小写)
UPLOAD_ALLOWED_EXTENSIONS=.txt,.md,.html,.htm,.pdf,.docx