a1b80566bb
- config.py / .env.example / docker-compose.yml:默认模型改为 qwen3:1.7b(备选 qwen3:4b),compose 同步拉取 - 经 runtime_settings 注入 summarize/query/classify 三用途,改默认值即全局生效 - README / CLAUDE.md / 前端 Settings.vue 占位符同步更新
108 lines
3.3 KiB
Bash
108 lines
3.3 KiB
Bash
# ===========================================
|
||
# 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
|