# =========================================== # QMDSearch 环境变量配置 # =========================================== # --- 应用 --- APP_PORT=8000 LOG_LEVEL=info # --- 嵌入模型 --- # openai | local EMBEDDING_PROVIDER=openai OPENAI_API_KEY=sk-xxx OPENAI_BASE_URL=https://api.openai.com/v1 EMBEDDING_MODEL=text-embedding-3-small EMBEDDING_DIMENSION=1536 # --- Qdrant --- QDRANT_PORT=6333 QDRANT_DASHBOARD_PORT=6334 # --- Redis --- REDIS_PORT=6379 # --- Ollama 本地模型(文档三级总结)--- OLLAMA_PORT=11434 OLLAMA_MODEL=qwen2.5:1.5b # 备选模型: qwen2.5:3b(更好的总结质量,需更多内存) # EMBEDDING_PROVIDER=local 时使用的 Ollama 嵌入模型 OLLAMA_EMBEDDING_MODEL=bge-m3 # --- 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