forked from sentient-agi/ROMA
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
317 lines (233 loc) · 10 KB
/
.env.example
File metadata and controls
317 lines (233 loc) · 10 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
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
# ROMA-DSPy Environment Configuration
# Copy this file to .env and fill in your actual values
# ==============================================================================
# Storage Configuration (S3 + goofys)
# ==============================================================================
# Base storage path - mounted S3 bucket location (must be same on host and E2B)
# Default: /opt/sentient
STORAGE_BASE_PATH=/opt/sentient
# S3 bucket name for persistent storage (existing bucket)
ROMA_S3_BUCKET=roma-shared
# AWS region for S3 bucket
AWS_REGION=us-east-1
# ==============================================================================
# AWS Credentials
# ==============================================================================
# AWS Access Key ID
# - For S3 access via goofys: use your AWS credentials
# - For local MinIO (MLflow artifacts): set to MINIO_ROOT_USER (default: minioadmin)
AWS_ACCESS_KEY_ID=your_aws_access_key_id
# AWS Secret Access Key
# - For S3 access via goofys: use your AWS credentials
# - For local MinIO (MLflow artifacts): set to MINIO_ROOT_PASSWORD (default: minioadmin123)
AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key
# ==============================================================================
# LLM API Keys
# ==============================================================================
# OpenAI API Key (for GPT models)
OPENAI_API_KEY=your_openai_api_key
# Anthropic API Key (only if NOT using OpenRouter)
ANTHROPIC_API_KEY=your_anthropic_api_key
# Google GenAI API Key (only if NOT using OpenRouter)
GOOGLE_API_KEY=your_google_api_key
# Fireworks AI API Key (optional)
FIREWORKS_API_KEY=your_fireworks_api_key
# OpenRouter API Key (RECOMMENDED - single key for all models)
OPENROUTER_API_KEY=your_openrouter_api_key
# Serper API Key (for web search functionality)
SERPER_API_KEY=your_serper_api_key
# ==============================================================================
# MCP Server API Keys
# ==============================================================================
# Add API keys for any MCP (Model Context Protocol) servers you are using.
# These are passed to MCP servers configured in your profiles (config/profiles/*.yaml)
# Common MCP servers that require API keys:
# Exa API Key (for web search via MCP)
EXA_API_KEY=your_exa_api_key
# Brave Search API Key (for web search via MCP)
# BRAVE_API_KEY=your_brave_api_key
# Add any additional MCP server API keys here as needed
# Example: YOUR_MCP_SERVICE_API_KEY=your_key_here
# ==============================================================================
# E2B Configuration
# ==============================================================================
# E2B API Key (for code execution sandboxes)
E2B_API_KEY=your_e2b_api_key
# E2B Template ID (E2B v2 template with runtime S3 mounting)
# Build templates: just e2b-build (dev) or just e2b-build-prod (production)
# Development template (default): roma-dspy-sandbox-dev
# Production template: roma-dspy-sandbox
# Default: "roma-dspy-sandbox-dev" if not set
# For production, set: E2B_TEMPLATE_ID=roma-dspy-sandbox
E2B_TEMPLATE_ID=roma-dspy-sandbox-dev
# E2B sandbox timeout in seconds (default: 300 = 5 minutes)
E2B_TIMEOUT=300
# ==============================================================================
# Crypto/Finance API Keys (for toolkit usage)
# ==============================================================================
# DefiLlama API Key (optional, for Pro features)
DEFILLAMA_API_KEY=your_defillama_api_key
# Arkham Intelligence API Key (for on-chain analytics)
ARKHAM_API_KEY=your_arkham_api_key
# Binance API credentials (optional, for trading features)
BINANCE_API_KEY=your_binance_api_key
BINANCE_API_SECRET=your_binance_api_secret
# CoinGecko API Key (optional, for Pro API)
COINGECKO_API_KEY=your_coingecko_api_key
# Coinglass API Key (for derivatives market data)
COINGLASS_API_KEY=your_coinglass_api_key
# ==============================================================================
# Database Configuration (PostgreSQL)
# ==============================================================================
# PostgreSQL connection (for checkpoints and execution tracking)
POSTGRES_ENABLED=true
POSTGRES_DB=roma_dspy
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
# Full database URL (auto-constructed if not set)
# DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/roma_dspy
# PostgreSQL pool settings
POSTGRES_POOL_SIZE=5
POSTGRES_MAX_OVERFLOW=10
POSTGRES_POOL_TIMEOUT=30.0
SQL_ECHO=false
# ==============================================================================
# API Server Configuration
# ==============================================================================
# API server host and port
API_HOST=0.0.0.0
API_PORT=8000
# Number of API workers (for production)
API_WORKERS=4
# ==============================================================================
# ROMA-DSPy Runtime Configuration
# ==============================================================================
# Environment (development, testing, production)
ROMA_ENV=development
# Maximum decomposition depth
ROMA_MAX_DEPTH=5
# Verbose logging
ROMA_VERBOSE=false
# Enable debug logging
ROMA_ENABLE_LOGGING=true
# ==============================================================================
# Resilience Configuration
# ==============================================================================
# Retry settings
ROMA_RETRY_ENABLED=true
ROMA_MAX_RETRIES=3
ROMA_RETRY_STRATEGY=exponential_backoff
# Circuit breaker settings
ROMA_CIRCUIT_BREAKER_ENABLED=true
ROMA_FAILURE_THRESHOLD=5
# ==============================================================================
# Cache Configuration
# ==============================================================================
# Enable DSPy caching
ROMA_CACHE_ENABLED=true
ROMA_CACHE_DISK=true
ROMA_CACHE_MEMORY=true
# DSPy cache directory
DSPY_CACHE_DIR=.cache/dspy
# ==============================================================================
# Checkpoint Configuration
# ==============================================================================
# Enable checkpointing
ROMA_CHECKPOINT_ENABLED=true
# Checkpoint storage path
ROMA_CHECKPOINT_PATH=.checkpoints
# Maximum checkpoints to keep
ROMA_MAX_CHECKPOINTS=10
# Checkpoint retention (hours)
ROMA_CHECKPOINT_MAX_AGE_HOURS=24.0
# Compress checkpoints
ROMA_CHECKPOINT_COMPRESS=true
# Verify checkpoint integrity
ROMA_CHECKPOINT_VERIFY=true
# ==============================================================================
# Logging Configuration
# ==============================================================================
# Log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
LOG_LEVEL=INFO
# Log directory (null = console only)
LOG_DIR=null
# Console format (minimal, default, detailed)
LOG_CONSOLE_FORMAT=default
# File format (default, detailed, json)
LOG_FILE_FORMAT=detailed
# Colorize console output
LOG_COLORIZE=true
# JSON serialization
LOG_SERIALIZE=false
# Log rotation size
LOG_ROTATION=100 MB
# Log retention period
LOG_RETENTION=30 days
# Log compression
LOG_COMPRESSION=zip
# Intercept standard library logging
LOG_INTERCEPT_STDLIB=true
# Full traceback on errors
LOG_BACKTRACE=true
# Show variable values in logs (disable in production)
LOG_DIAGNOSE=false
# Thread-safe logging
LOG_ENQUEUE=true
# ==============================================================================
# Observability Configuration (MLflow)
# ==============================================================================
# Enable MLflow tracking
MLFLOW_ENABLED=false
# Disable MLflow span logging without changing other MLflow features
ROMA_DISABLE_MLFLOW_SPANS=false
# MLflow tracking URI (single variable)
# - If running ROMA locally (not in Docker): set to http://127.0.0.1:<port>
# - If running ROMA inside docker-compose: set to http://mlflow:5000
# You can change the host port with MLFLOW_PORT; container port is always 5000.
MLFLOW_TRACKING_URI=http://127.0.0.1:5000
# MLflow experiment name
MLFLOW_EXPERIMENT=ROMA-DSPy
# MLflow port (for docker-compose)
MLFLOW_PORT=5000
# MLflow S3 artifact storage (MinIO)
# - If running locally (not in Docker): set endpoint to http://localhost:9000
# - If running inside docker-compose: set to http://minio:9000 (done automatically)
# These are REQUIRED for artifact storage to work with local MinIO
MLFLOW_DEFAULT_ARTIFACT_ROOT=s3://mlflow
MLFLOW_S3_ENDPOINT_URL=http://localhost:9000
AWS_S3_ENDPOINT_URL=http://localhost:9000
# ==============================================================================
# Observability Configuration (Weights & Biases)
# ==============================================================================
# Weights & Biases (W&B) API Key
# Get your API key from: https://wandb.ai/authorize
# Used for experiment tracking during GEPA optimization (optional)
# If not set, W&B features will be disabled (use_wandb: false in config)
WANDB_API_KEY=your_wandb_api_key
# ==============================================================================
# MinIO Configuration (S3-compatible storage for Docker)
# ==============================================================================
# MinIO root credentials (used by docker-compose for artifact storage)
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin123
# MinIO ports
MINIO_PORT=9000
MINIO_CONSOLE_PORT=9001
# ==============================================================================
# Docker Configuration
# ==============================================================================
# Ports for docker-compose
POSTGRES_PORT=5432
API_PORT=8000
MLFLOW_PORT=5000
# ==============================================================================
# Optional: Local Development Overrides
# ==============================================================================
# For local development without S3, you can use a local directory
# Uncomment and set to a local path (e.g., ${HOME}/roma_storage)
# Note: This won't work with E2B - only for local testing
# STORAGE_BASE_PATH=${HOME}/roma_storage
# For local development without PostgreSQL
# POSTGRES_ENABLED=false