-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
152 lines (138 loc) · 4.35 KB
/
Copy path.env.example
File metadata and controls
152 lines (138 loc) · 4.35 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
# Application
APP_ENV=local
LOG_LEVEL=INFO
API_HOST=0.0.0.0
API_PORT=8000
CORS_ORIGINS=http://localhost:3000,http://localhost:3001
# Development auth
RAG_DEV_AUTH_ENABLED=true
RAG_DEV_USER_ID=00000000-0000-0000-0000-000000000001
# Account auth (JWT). Required in production: a real secret of 32+ characters.
RAG_AUTH_JWT_SECRET=replace-with-local-jwt-secret
RAG_AUTH_ACCESS_TOKEN_TTL_MINUTES=60
RAG_AUTH_LOGIN_RATE_LIMIT_PER_MINUTE=10
RAG_AUTH_REGISTER_RATE_LIMIT_PER_MINUTE=3
# Database
POSTGRES_DB=rag_llm_services
POSTGRES_USER=rag_app
POSTGRES_PASSWORD=replace-with-local-password
DATABASE_URL=postgresql+psycopg://rag_app:replace-with-local-password@postgres:5432/rag_llm_services
# Redis
REDIS_URL=redis://redis:6379/0
# Rate limiting
RATE_LIMIT_ENABLED=true
RATE_LIMIT_BACKEND=redis
RATE_LIMIT_REQUESTS_PER_WINDOW=120
RATE_LIMIT_WINDOW_SECONDS=60
# Queue and worker
QUEUE_PROVIDER=celery
CELERY_BROKER_URL=redis://redis:6379/1
CELERY_RESULT_BACKEND=redis://redis:6379/2
INGESTION_QUEUE_NAME=ingestion
INGESTION_TASK_MAX_RETRIES=3
INGESTION_TASK_RETRY_BACKOFF_SECONDS=5
INGESTION_TASK_RETRY_BACKOFF_MAX_SECONDS=300
INGESTION_TASK_RETRY_JITTER=true
INGESTION_JOB_STALE_AFTER_SECONDS=3600
QUEUE_VISIBILITY_TIMEOUT_SECONDS=3600
RETRIEVAL_CACHE_TTL_SECONDS=300
WORKER_POOL=threads
WORKER_CONCURRENCY=4
WORKER_METRICS_ENABLED=true
WORKER_METRICS_HOST=0.0.0.0
WORKER_METRICS_PORT=9108
WORKER_METRICS_HOST_PORT=9108
# Object storage
MINIO_ENDPOINT=http://minio:9000
MINIO_ACCESS_KEY=replace-with-local-minio-access-key
MINIO_SECRET_KEY=replace-with-local-minio-secret
MINIO_BUCKET=rag-documents
# LLM gateway
LLM_PROVIDER=fake
DEEPSEEK_API_KEY=replace-with-your-deepseek-api-key
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-v4-flash
DEEPSEEK_API_MODE=responses
DEEPSEEK_ALLOW_CHAT_COMPLETIONS_FALLBACK=false
DEEPSEEK_FALLBACK_REASON=
DEEPSEEK_MAX_RETRIES=2
DEEPSEEK_RETRY_BACKOFF_SECONDS=0.25
DEEPSEEK_ESTIMATED_INPUT_CACHE_MISS_USD_PER_1M=0.00
DEEPSEEK_ESTIMATED_INPUT_CACHE_HIT_USD_PER_1M=0.00
DEEPSEEK_ESTIMATED_OUTPUT_USD_PER_1M=0.00
RUN_DEEPSEEK_LIVE_TESTS=false
LLM_MAX_INPUT_TOKENS=12000
LLM_MAX_OUTPUT_TOKENS=2048
LLM_DAILY_ESTIMATED_COST_LIMIT_USD=5.00
LLM_REQUEST_TIMEOUT_SECONDS=60
# RAG
RAG_CONTEXT_TOKEN_BUDGET=6000
RAG_VECTOR_TOP_K=10
RAG_KEYWORD_TOP_K=10
RAG_RERANK_TOP_K=8
RAG_RRF_K=60
RAG_RRF_VECTOR_WEIGHT=1.0
RAG_RRF_KEYWORD_WEIGHT=1.0
EMBEDDING_PROVIDER=bge-m3
EMBEDDING_MODEL=BAAI/bge-m3
RERANKER_PROVIDER=bge
RERANKER_MODEL=BAAI/bge-reranker-v2-m3
# RAG evaluation
EVAL_DATASET_PATH=evals/datasets/baseline-learning-rag.jsonl
EVAL_REPORTS_DIR=evals/reports/local
EVAL_TOP_K=5
EVAL_RETRIEVAL_HIT_RATE_THRESHOLD=1.0
EVAL_RECALL_AT_K_THRESHOLD=0.8
EVAL_MRR_THRESHOLD=0.8
EVAL_NDCG_AT_K_THRESHOLD=0.8
EVAL_CONTEXT_RELEVANCE_THRESHOLD=0.5
EVAL_ANSWER_RELEVANCE_THRESHOLD=0.65
EVAL_CITATION_CORRECTNESS_THRESHOLD=1.0
EVAL_CITATION_RECALL_THRESHOLD=0.8
EVAL_FAITHFULNESS_THRESHOLD=0.6
EVAL_RUN_STALE_AFTER_SECONDS=3600
# OpenAI Agents SDK integration
OPENAI_TRACING_DISABLED=true
AGENT_TOOL_MAX_RESULTS=5
AGENT_TOOL_MAX_CONTEXT_CHUNKS=5
AGENT_TOOL_MAX_CHUNK_CHARS=1200
AGENT_TOOL_MAX_CONTEXT_CHARS=6000
AGENT_TOOL_MAX_DOCUMENTS=20
AGENT_HISTORY_MAX_MESSAGES=8
AGENT_HISTORY_MAX_CHARS=12000
# n8n
N8N_BASE_URL=http://n8n:5678
N8N_IMAGE=docker.n8n.io/n8nio/n8n:2.37.11
N8N_HOST=localhost
N8N_PORT=5678
N8N_PROTOCOL=http
N8N_WEBHOOK_URL=http://localhost:5678/
N8N_METRICS=true
N8N_METRICS_INCLUDE_DEFAULT_METRICS=true
N8N_METRICS_INCLUDE_QUEUE_METRICS=true
N8N_API_KEY=replace-with-local-n8n-api-key
N8N_ENCRYPTION_KEY=replace-with-local-n8n-encryption-key
N8N_NOTIFICATION_WEBHOOK_URL=
N8N_STUDY_TOPIC=RAG fundamentals
GENERIC_TIMEZONE=Asia/Bangkok
RAG_API_BASE_URL=http://host.docker.internal:8000/api/v1
RAG_WORKFLOW_OWNER_ID=00000000-0000-0000-0000-000000000001
# Observability
PROMETHEUS_IMAGE=prom/prometheus:v2.55.1
PROMETHEUS_BASE_URL=http://prometheus:9090
PROMETHEUS_PORT=9090
PROMETHEUS_RETENTION_TIME=15d
POSTGRES_EXPORTER_IMAGE=quay.io/prometheuscommunity/postgres-exporter:v0.15.0
POSTGRES_EXPORTER_PORT=9187
REDIS_EXPORTER_IMAGE=oliver006/redis_exporter:v1.62.0
REDIS_EXPORTER_PORT=9121
CADVISOR_IMAGE=gcr.io/cadvisor/cadvisor:v0.49.1
CADVISOR_PORT=8080
GRAFANA_IMAGE=grafana/grafana:13.2.1
GRAFANA_PORT=3000
GRAFANA_BASE_URL=http://grafana:3000
GRAFANA_ADMIN_USER=admin
GRAFANA_ADMIN_PASSWORD=replace-with-local-grafana-password
# Frontend
WEB_PORT=3001
RAG_BACKEND_ORIGIN=http://localhost:8000