-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy path.env
More file actions
244 lines (193 loc) · 7.2 KB
/
Copy path.env
File metadata and controls
244 lines (193 loc) · 7.2 KB
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
# Environment for local Qdrant + MCP server (SSE)
# Qdrant (vector DB) runs as docker service "qdrant". The MCP server connects to it internally.
QDRANT_URL=http://qdrant:6333
# QDRANT_API_KEY= # not needed for local
# Repository mode: 0=single-repo (default), 1=multi-repo
# Single-repo: All files go into one collection (COLLECTION_NAME)
# Multi-repo: Each subdirectory gets its own collection
MULTI_REPO_MODE=0
# Single unified collection for seamless cross-repo search
# Default: "codebase" - all your code in one collection for unified search
# This enables searching across multiple repos/workspaces without fragmentation
COLLECTION_NAME=codebase
# Embedding settings (FastEmbed model)
EMBEDDING_MODEL=BAAI/bge-base-en-v1.5
EMBEDDING_PROVIDER=fastembed
# FastMCP server settings (SSE transport)
FASTMCP_HOST=0.0.0.0
FASTMCP_PORT=8000
FASTMCP_INDEXER_PORT=8001
# Optional: customize tool descriptions (uncomment to use)
TOOL_STORE_DESCRIPTION="Store reusable code snippets for later retrieval. The 'information' is a clear NL description; include the actual code in 'metadata.code' and add 'metadata.language' (e.g., python, typescript) and 'metadata.path' when known. Use this whenever you generate or refine a code snippet."
TOOL_FIND_DESCRIPTION="Search for relevant code snippets using multiple phrasings of the query (multi-query). Prefer results where metadata.language matches the target file and metadata.path is relevant. You may pass optional filters (language, path_prefix, kind) which the server applies server-side. Include 'metadata.code', 'metadata.path', and 'metadata.language' in responses."
# Optional: local cross-encoder reranker (ONNX)
# Baked into Docker image at /app/models/ - no host mount needed
RERANKER_ONNX_PATH=/app/models/reranker.onnx
RERANKER_TOKENIZER_PATH=/app/models/tokenizer.json
# Reranker toggles and tuning
# Increased TOPN and RETURN_M for better final ranking
RERANKER_ENABLED=1
RERANKER_TOPN=100
RERANKER_RETURN_M=20
RERANKER_TIMEOUT_MS=3000
# Safety: minimum rerank timeout floor (ms) to avoid cold-start timeouts
RERANK_TIMEOUT_FLOOR_MS=1000
# Optional warmups (disabled by default)
EMBEDDING_WARMUP=0
RERANK_WARMUP=0
# In-process execution (faster; falls back to subprocess on failure)
HYBRID_IN_PROCESS=1
RERANK_IN_PROCESS=1
# Query Optimization (adaptive HNSW_EF tuning for 2x faster simple queries)
QUERY_OPTIMIZER_ADAPTIVE=1
QUERY_OPTIMIZER_MIN_EF=64
QUERY_OPTIMIZER_MAX_EF=512
QUERY_OPTIMIZER_SIMPLE_THRESHOLD=0.3
QUERY_OPTIMIZER_COMPLEX_THRESHOLD=0.7
QUERY_OPTIMIZER_SIMPLE_FACTOR=0.5
QUERY_OPTIMIZER_SEMANTIC_FACTOR=1.0
QUERY_OPTIMIZER_COMPLEX_FACTOR=2.0
QUERY_OPTIMIZER_DENSE_THRESHOLD=0.2
QUERY_OPTIMIZER_COLLECTION_SIZE=10000
QDRANT_EF_SEARCH=128
# AST-based code understanding (semantic chunking for 20-30% better precision)
USE_TREE_SITTER=1
INDEX_USE_ENHANCED_AST=1
INDEX_SEMANTIC_CHUNKS=1
# Hybrid/rerank defaults
HYBRID_EXPAND=0
HYBRID_PER_PATH=1
HYBRID_SYMBOL_BOOST=0.35
HYBRID_RECENCY_WEIGHT=0.1
RERANK_EXPAND=1
# Memory integration (SSE + Qdrant)
MEMORY_SSE_ENABLED=true
MEMORY_MCP_URL=http://mcp:8000/sse
MEMORY_MCP_TIMEOUT=6
# Local LLM expansion via Ollama (mini model)
LLM_PROVIDER=ollama
OLLAMA_HOST=http://host.docker.internal:11434
LLM_EXPAND_MODEL=phi3:mini
LLM_EXPAND_MAX=0
# PRF defaults (enabled by default)
PRF_ENABLED=1
# ReFRAG mode: compact gating + micro-chunking
REFRAG_MODE=1
MINI_VECTOR_NAME=mini
MINI_VEC_DIM=64
MINI_VEC_SEED=1337
HYBRID_MINI_WEIGHT=1.0
# Micro-chunking controls (token-based)
# Smaller chunks = more precise retrieval (8 tokens ~= 2-3 lines of code)
INDEX_MICRO_CHUNKS=0
MICRO_CHUNK_TOKENS=24
MICRO_CHUNK_STRIDE=48
# Optional: gate-first using mini vectors to prefilter dense search
REFRAG_GATE_FIRST=1
REFRAG_CANDIDATES=200
# Lexical vector settings
LEX_VECTOR_NAME=lex
LEX_VECTOR_DIM=4096
# Multi-hash: each token hashes to N buckets (reduces collision impact)
LEX_MULTI_HASH=5
# Bigrams: off (original settings)
LEX_BIGRAMS=0
LEX_BIGRAM_WEIGHT=0.7
# Sparse lexical vectors: disabled
LEX_SPARSE_MODE=0
LEX_SPARSE_NAME=lex_sparse
# Output shaping for micro spans
# Conservative settings
MICRO_OUT_MAX_SPANS=3
MICRO_MERGE_LINES=4
MICRO_BUDGET_TOKENS=1500
MICRO_TOKENS_PER_LINE=32
# Answer shaping (enforce concise responses from context_answer)
CTX_SUMMARY_CHARS=0
CTX_SNIPPET_CHARS=400
# Decoder-path ReFRAG
REFRAG_DECODER=1
REFRAG_RUNTIME=llamacpp
REFRAG_ENCODER_MODEL=BAAI/bge-base-en-v1.5
REFRAG_PHI_PATH=/work/models/refrag_phi_768_to_dmodel.bin
REFRAG_SENSE=heuristic
REFRAG_PSEUDO_DESCRIBE=1
# Llama.cpp sidecar (optional)
# Use docker network hostname from containers; localhost remains ok for host-side runs if LLAMACPP_URL not exported
LLAMACPP_URL=http://host.docker.internal:8081
LLAMACPP_TIMEOUT_SEC=300
DECODER_MAX_TOKENS=4000
REFRAG_DECODER_MODE=prompt # prompt|soft
REFRAG_COMMIT_DESCRIBE=1
REFRAG_SOFT_SCALE=1.0
LLAMACPP_USE_GPU=1
LLAMACPP_GPU_LAYERS=32
LLAMACPP_THREADS=6
LLAMACPP_GPU_SPLIT=
LLAMACPP_EXTRA_ARGS=
# Operational safeguards and timeouts
MAX_MICRO_CHUNKS_PER_FILE=200
QDRANT_TIMEOUT=20
MEMORY_AUTODETECT=1
MEMORY_COLLECTION_TTL_SECS=300
SMART_SYMBOL_REINDEXING=1
MAX_CHANGED_SYMBOLS_RATIO=0.6
# Watcher-safe defaults (recommended)
# These are applied to the watcher service via docker-compose.yml.
# Uncomment to apply globally if you are not using compose overrides.
# QDRANT_TIMEOUT=60
# MAX_MICRO_CHUNKS_PER_FILE=200
# INDEX_UPSERT_BATCH=128
# INDEX_UPSERT_RETRIES=5
# INDEX_UPSERT_BACKOFF=0.5
WATCH_DEBOUNCE_SECS=4
# Duplicate Streamable HTTP MCP instances (run alongside SSE)
FASTMCP_HTTP_TRANSPORT=http
FASTMCP_HTTP_PORT=8002
FASTMCP_HTTP_HEALTH_PORT=18002
FASTMCP_INDEXER_HTTP_PORT=8003
FASTMCP_INDEXER_HTTP_HEALTH_PORT=18003
MAX_EMBED_CACHE=16384
HYBRID_RESULTS_CACHE=128
HYBRID_RESULTS_CACHE_ENABLED=1
INDEX_CHUNK_LINES=60
INDEX_CHUNK_OVERLAP=10
USE_GPU_DECODER=0
# Development Remote Upload Configuration
HOST_INDEX_PATH=./dev-workspace
# Cross-Codebase Isolation (multi-repo search scoping)
# When enabled, search results are automatically filtered to the current repo
REPO_AUTO_FILTER=1
# Explicitly set current repo (overrides auto-detection from git/directory)
# CURRENT_REPO=
# Post-rerank symbol boost: ensures exact symbol matches rank highest
POST_RERANK_SYMBOL_BOOST=1.0
# Rerank blend weight: ratio of rerank score vs fusion score (0.0-1.0)
RERANK_BLEND_WEIGHT=0.6
# info_request() tool settings (simplified codebase retrieval)
INFO_REQUEST_LIMIT=10
INFO_REQUEST_CONTEXT_LINES=5
# INFO_REQUEST_EXPLAIN_DEFAULT=0
# INFO_REQUEST_RELATIONSHIPS=0
# TOON output format (Token-Oriented Object Notation)
# When enabled, search results use compact TOON encoding to reduce token usage
TOON_ENABLED=0
# GLM (ZhipuAI) decoder backend
GLM_API_KEY=
GLM_API_BASE=https://api.z.ai/api/coding/paas/v4/
GLM_MODEL=glm-4.6
GLM_MODEL_FAST=glm-4.5
# Parallel pseudo-tag generation (indexing speedup)
# Set to 4 for 4x parallel GLM calls during indexing; 1 = sequential (default)
PSEUDO_BATCH_CONCURRENCY=4
# MiniMax M2 decoder backend
MINIMAX_API_KEY=
MINIMAX_API_BASE=https://api.minimax.io/v1
MINIMAX_MODEL=MiniMax-M2
COMMIT_VECTOR_SEARCH=0
STRICT_MEMORY_RESTORE=1
CTXCE_AUTH_ENABLED=0
CTXCE_AUTH_ADMIN_TOKEN=change-me-admin-token
# MCP_INDEXER_URL=http://127.0.0.1:30810/mcp
# Multi-hash: each token hashes to N buckets (reduces collision impact)
REMOTE_UPLOAD_GIT_MAX_COMMITS=500