-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
129 lines (113 loc) · 3.13 KB
/
.env.example
File metadata and controls
129 lines (113 loc) · 3.13 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
# ===================
# Application
# ===================
APP_NAME=SigmaPilot Lens
DEBUG=false
LOG_LEVEL=INFO
LOG_FORMAT=json
# ===================
# Database
# ===================
DATABASE_URL=postgresql://lens:lens_password@localhost:5432/lens
DB_POOL_SIZE=5
DB_MAX_OVERFLOW=10
RETENTION_DAYS=180
# ===================
# Redis
# ===================
REDIS_URL=redis://localhost:6379/0
REDIS_MAX_CONNECTIONS=10
# ===================
# Security
# ===================
# Network-based security: API is only accessible from internal Docker network
# No API keys required - all external requests are rejected at network level
# ===================
# Rate Limiting
# ===================
RATE_LIMIT_PER_MIN=60
RATE_LIMIT_BURST=120
RATE_LIMIT_ENABLED=true
# ===================
# Queue Configuration
# ===================
RETRY_MAX=5
RETRY_BACKOFF=exponential_jitter
RETRY_BASE_DELAY_MS=2000
RETRY_MAX_DELAY_MS=30000
DLQ_ENABLED=true
CONSUMER_GROUP=lens-workers
CONSUMER_BATCH_SIZE=10
# ===================
# Feature Profile
# ===================
# Options: trend_follow_v1, crypto_perps_v1, full_v1
FEATURE_PROFILE=trend_follow_v1
TIMEFRAMES=15m,1h,4h
# ===================
# Stale Data Thresholds (seconds)
# ===================
STALE_MID_S=5
STALE_L2_S=10
STALE_CTX_S=60
STALE_CANDLE_MULTIPLIER=2
# ===================
# Market Data Providers
# ===================
PROVIDER_PRIMARY=hyperliquid
PROVIDER_TIMEOUT_MS=10000
PROVIDER_RETRY_COUNT=3
HYPERLIQUID_BASE_URL=https://api.hyperliquid.xyz
HYPERLIQUID_WS_URL=wss://api.hyperliquid.xyz/ws
# ===================
# AI Models
# ===================
# Comma-separated list of enabled models (chatgpt, gemini, claude, deepseek)
AI_MODELS=chatgpt,gemini,claude,deepseek
# REQUIRED: Must explicitly choose AI mode - no default to prevent accidents
# Set to true for production to use real AI models
# Set to false for development/testing (returns deterministic stub decisions)
# Application will fail to start if not explicitly set
USE_REAL_AI=false
# ChatGPT Configuration
MODEL_CHATGPT_PROVIDER=openai
MODEL_CHATGPT_API_KEY=
MODEL_CHATGPT_MODEL_ID=gpt-4o
MODEL_CHATGPT_TIMEOUT_MS=30000
MODEL_CHATGPT_MAX_TOKENS=1000
MODEL_CHATGPT_PROMPT_PATH=prompts/chatgpt_wrapper_v1.md
# Gemini Configuration
MODEL_GEMINI_PROVIDER=google
MODEL_GEMINI_API_KEY=
MODEL_GEMINI_MODEL_ID=gemini-1.5-pro
MODEL_GEMINI_TIMEOUT_MS=30000
MODEL_GEMINI_MAX_TOKENS=1000
MODEL_GEMINI_PROMPT_PATH=prompts/gemini_wrapper_v1.md
# Claude Configuration
MODEL_CLAUDE_PROVIDER=anthropic
MODEL_CLAUDE_API_KEY=
MODEL_CLAUDE_MODEL_ID=claude-sonnet-4-20250514
MODEL_CLAUDE_TIMEOUT_MS=30000
MODEL_CLAUDE_MAX_TOKENS=1000
MODEL_CLAUDE_PROMPT_PATH=prompts/claude_wrapper_v1.md
# DeepSeek Configuration
MODEL_DEEPSEEK_PROVIDER=deepseek
MODEL_DEEPSEEK_API_KEY=
MODEL_DEEPSEEK_MODEL_ID=deepseek-chat
MODEL_DEEPSEEK_TIMEOUT_MS=30000
MODEL_DEEPSEEK_MAX_TOKENS=1000
MODEL_DEEPSEEK_PROMPT_PATH=prompts/deepseek_wrapper_v1.md
# ===================
# WebSocket
# ===================
WS_ENABLED=true
WS_PING_INTERVAL_S=30
WS_PING_TIMEOUT_S=10
WS_MAX_CONNECTIONS=100
# ===================
# Observability
# ===================
METRICS_ENABLED=true
METRICS_PATH=/metrics
HEALTH_PATH=/health
READY_PATH=/ready