File size: 8,239 Bytes
7ecdf4a
20edea9
 
 
 
15f1210
 
 
 
 
 
 
 
 
20edea9
 
 
 
15f1210
 
20edea9
 
 
 
 
15f1210
20edea9
 
 
15f1210
20edea9
 
 
eb1414a
 
 
 
 
 
 
 
20edea9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15f1210
 
 
 
20edea9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15f1210
 
 
 
20edea9
 
 
15f1210
20edea9
 
 
15f1210
20edea9
 
 
 
15f1210
20edea9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# QModel 6 Configuration Template
# ==================================
# Copy this to .env and update values for your environment

# LLM Backend Selection
# Options: "gguf" (local GGUF file), "ollama", "hf" (HuggingFace), or "lmstudio"
LLM_BACKEND=gguf

# ─────────────────────────────────────────────────────────────────────
# GGUF BACKEND (if LLM_BACKEND=gguf) β€” self-contained, no external daemon
# ─────────────────────────────────────────────────────────────────────
GGUF_MODEL_PATH=./models/Qwen3.6-27B-Q4_K_M.gguf
GGUF_N_CTX=4096              # Context window size
GGUF_N_GPU_LAYERS=-1         # -1 = offload all layers to GPU (Metal on Mac)

# ─────────────────────────────────────────────────────────────────────
# OLLAMA BACKEND (if LLM_BACKEND=ollama)
# ─────────────────────────────────────────────────────────────────────
# OLLAMA_HOST=http://localhost:11434
# OLLAMA_MODEL=qwen3.6:27b
# Available models: llama3.1, mistral, neural-chat, openhermes

# ─────────────────────────────────────────────────────────────────────
# HUGGINGFACE BACKEND (if LLM_BACKEND=hf)
# ─────────────────────────────────────────────────────────────────────
# HF_MODEL_NAME=Qwen/Qwen3-8B
# HF_DEVICE=auto              # Options: auto, cuda, cpu
# HF_MAX_NEW_TOKENS=2048
# Popular models:
#   - Qwen/Qwen3-8B (excellent Arabic)
#   - mistralai/Mistral-7B-Instruct-v0.2
#   - meta-llama/Llama-2-13b-chat-hf

# ─────────────────────────────────────────────────────────────────────
# LM STUDIO BACKEND (if LLM_BACKEND=lmstudio)
# ─────────────────────────────────────────────────────────────────────
# LMSTUDIO_URL=http://localhost:1234
# LMSTUDIO_MODEL=qwen2.5-7b-instruct   # Model loaded in LM Studio

# ─────────────────────────────────────────────────────────────────────
# EMBEDDING MODEL (shared by all backends)
# ─────────────────────────────────────────────────────────────────────
EMBED_MODEL=intfloat/multilingual-e5-large

# ─────────────────────────────────────────────────────────────────────
# DATA FILES
# ─────────────────────────────────────────────────────────────────────
FAISS_INDEX=QModel.index
METADATA_FILE=metadata.json

# ─────────────────────────────────────────────────────────────────────
# RETRIEVAL SETTINGS
# ─────────────────────────────────────────────────────────────────────
TOP_K_SEARCH=20         # Candidate pool size
TOP_K_RETURN=5          # Final results returned to user

# ─────────────────────────────────────────────────────────────────────
# GENERATION SETTINGS
# ─────────────────────────────────────────────────────────────────────
TEMPERATURE=0.2         # 0.0=deterministic, 1.0=creative
MAX_TOKENS=2048         # Max output length

# ─────────────────────────────────────────────────────────────────────
# SAFETY & QUALITY
# ─────────────────────────────────────────────────────────────────────
# Confidence threshold: Below this score, skip LLM and return "not found"
# Prevents hallucinations but may miss valid results
# Range: 0.0-1.0 (default 0.30)
# Tune up (0.50+) for stricter, tune down (0.20) for looser
CONFIDENCE_THRESHOLD=0.30

# Hadith boost: Score bonus when intent=hadith
# Prevents Quran verses from outranking relevant Hadiths
HADITH_BOOST=0.08

# Quran boost: Score bonus when intent=tafsir/quran
# Prevents Hadiths from outranking relevant Quran verses
QURAN_BOOST=0.12

# ─────────────────────────────────────────────────────────────────────
# RANKING
# ─────────────────────────────────────────────────────────────────────
RERANK_ALPHA=0.6        # 60% dense (embedding), 40% sparse (BM25)

# ─────────────────────────────────────────────────────────────────────
# CACHING
# ─────────────────────────────────────────────────────────────────────
CACHE_SIZE=512          # Max cache entries
CACHE_TTL=3600          # Cache expiry in seconds

# ─────────────────────────────────────────────────────────────────────
# SECURITY
# ─────────────────────────────────────────────────────────────────────
ALLOWED_ORIGINS=*       # CORS origins (restrict in production: origin1.com,origin2.com)

# ─────────────────────────────────────────────────────────────────────
# USAGE EXAMPLES
# ─────────────────────────────────────────────────────────────────────
#
# Self-contained (GGUF, e.g. HF Spaces):
#   LLM_BACKEND=gguf
#   GGUF_MODEL_PATH=./models/Qwen3.6-27B-Q4_K_M.gguf
#
# Development (Ollama):
#   LLM_BACKEND=ollama
#   OLLAMA_HOST=http://localhost:11434
#   OLLAMA_MODEL=qwen3.6:27b
#
# Production (HuggingFace GPU):
#   LLM_BACKEND=hf
#   HF_MODEL_NAME=Qwen/Qwen3-8B
#   HF_DEVICE=cuda
#
# Production (HuggingFace CPU):
#   LLM_BACKEND=hf
#   HF_MODEL_NAME=Qwen/Qwen3-8B
#   HF_DEVICE=cpu