51dc8dc4f6
- FastAPI + Qdrant + Redis + Ollama 技术栈 - L1→L2→L3→chunk 四层分层检索(dense + sparse RRF 融合) - 文档三级总结与 2.5 级回退 - query 解析路由与分类 - /admin 管理页面
75 lines
1.8 KiB
Bash
75 lines
1.8 KiB
Bash
# ===========================================
|
||
# 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
|