forked from juspay/clairvoyance
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
206 lines (164 loc) · 7.44 KB
/
.env.example
File metadata and controls
206 lines (164 loc) · 7.44 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
# Server Configuration
PORT=8000
HOST="0.0.0.0"
UVICORN_RELOAD=true
UVICORN_LOG_LEVEL="info"
# Set to "dev" for development (enables colored logs) or "production" for JSON logs.
ENVIRONMENT="dev"
# Production log level - set to "INFO" or "DEBUG" (default: "DEBUG")
# Only applies when ENVIRONMENT="production"
PROD_LOG_LEVEL="DEBUG"
AUTOMATIC_CONNECT_BLOCKED_ORIGINS=""
# Gemini Proxy Configuration
GEMINI_API_KEY=
GEMINI_MODEL="gemini-2.0-flash-live-001"
RESPONSE_MODALITY="AUDIO"
# Pipecat Agent Configuration
DAILY_API_KEY=
DAILY_API_URL="https://api.daily.co/v1"
AZURE_OPENAI_API_KEY=
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_MODEL="gpt-4o-automatic"
GOOGLE_CREDENTIALS_JSON=
ENABLE_NOISE_REDUCE_FILTER=true
# AIC (AI Coustics) Audio Filter Configuration
ENABLE_AIC_FILTER=true
AICOUSTICS_LICENSE_KEY=
AIC_ENHANCEMENT_LEVEL=1.0
AIC_VOICE_GAIN=1.2
AIC_NOISE_GATE_ENABLE=true
# Krisp Audio Filter Configuration
ENABLE_KRISP_FILTER=false
KRISP_MODEL_PATH="/app/models/voice/krisp/krisp-viva-tel-v2.kef"
# TTS Configuration
ELEVENLABS_API_KEY=
ELEVENLABS_VOICE_ID="bQQWtYx9EodAqMdkrNAc"
ELEVENLABS_MODEL_ID="eleven_flash_v2_5"
ELEVENLABS_VOICE_SPEED=1.15
ELEVENLABS_TTS_SPEED=1.10
ELEVENLABS_BB_VOICE_ID="bQQWtYx9EodAqMdkrNAc"
# VAD settings
VAD_CONFIDENCE=0.85
VAD_MIN_VOLUME=0.75
DISABLE_SILERO_VAD=false # Set to true when using STT provider with built-in VAD (e.g., Deepgram)
# WebSocket keepalive settings
WS_PING_INTERVAL=5
WS_PING_TIMEOUT=10
# Enable or disable tracing
ENABLE_TRACING=false
# Enable or disable text sanitization
SANITIZE_TEXT_FOR_TTS=false
# Remote Automatic MCP Tools Server
ENABLE_BREEZE_MCP=true
# Breeze MCP Shop Filtering Configuration
# If SHOPS_FOR_BREEZE_MCP is empty, MCP client runs for ALL shops when ENABLE_BREEZE_MCP=true
# If SHOPS_FOR_BREEZE_MCP has values, MCP client runs only for those specific shops
SHOPS_FOR_BREEZE_MCP="d2cstore-beta"
# Chart Generation Configuration
MAX_CHARTS_PER_TURN=1
BREEZE_MCP_ENDPOINT_PATH="/ai/neurolink"
TWILIO_ACCOUNT_SID=""
TWILIO_AUTH_TOKEN=""
TWILIO_WEBSOCKET_URL=""
# Webhook Authentication
ORDER_CONFIRMATION_WEBHOOK_SECRET_KEY=""
ORDER_CONFIRMATION_TOKEN=""
# Database Configuration
POSTGRES_USER=""
POSTGRES_PASSWORD=""
POSTGRES_HOST=""
POSTGRES_PORT="5432"
POSTGRES_DB="clairvoyance"
# Connection pool settings
POSTGRES_POOL_SIZE=5
POSTGRES_MAX_OVERFLOW=10
POSTGRES_POOL_RECYCLE=3600
# AWS Configuration
SKIP_KMS_DECRYPT=false
AWS_REGION="us-east-1"
AWS_ACCESS_KEY_ID=""
AWS_SECRET_ACCESS_KEY=""
JWT_SECRET_KEY="your_jwt_secret_key_here"
JWT_ALGORITHM="HS256"
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=60
# Session inactivity timeout
AUTOMATIC_SESSION_INACTIVITY_TIMEOUT=900.0
MAX_DAILY_SESSION_LIMIT=1800
AZURE_BREEZE_BUDDY_OPENAI_MODEL='gpt-4o-automatic'
# Human-in-the-Loop (HITL) Configuration
HITL_ENABLE=true
HITL_ACTIONS=create,update,delete,pause
LIGHTHOUSE_APP_URL='http://localhost:5173'
ENABLE_ALL_METRICS_FROM_CKH='true'
BREEZE_DEFAULT_SALES_TAB='SALES'
# --- STT Configuration ---
STT_PROVIDER="google" # Options: google, assemblyai, openai, deepgram, soniox
# OpenAI STT Configuration
ENFORCED_OPENAI_STT_MODEL="whisper-1"
AUTOMATIC_OPENAI_STT_PROMPT="Transcribe Indian languages accurately. Recognize and render Indian numbers (lakhs, crores, etc.) in their natural spoken form. Ensure business and financial terms are captured with precision. Always include proper names, numbers, and technical terms exactly as spoken, without modification."
# Deepgram STT Configuration (when STT_PROVIDER=deepgram)
DEEPGRAM_API_KEY= # Your Deepgram API key
DEEPGRAM_MODEL="nova-3-general" # Deepgram model (nova-3-general recommended)
DEEPGRAM_LANGUAGE="en" # Single language for transcription (used when multi-language options are disabled)
DEEPGRAM_ENDPOINTING=true # Smart turn detection
DEEPGRAM_VAD_EVENTS=true # Voice activity detection events
DEEPGRAM_UTTERANCE_END_MS=1000 # Wait time before utterance end (ms)
DEEPGRAM_NO_DELAY=true # Real-time processing
DEEPGRAM_SMART_FORMAT=true # Smart formatting (phones, dates, currency)
DEEPGRAM_PUNCTUATE=true # Add punctuation
DEEPGRAM_NUMERALS=true # Convert numbers to numerals (important for Indian numbers)
DEEPGRAM_PROFANITY_FILTER=false # Filter profanity (disabled for business)
DEEPGRAM_DIARIZE=false # Speaker identification (disabled for single speaker)
# Language Detection (streaming API supports only 'multi' for auto-detection or single language)
DEEPGRAM_AUTO_DETECT_LANGUAGE=false # Auto-detect any language (uses 'multi' parameter)
# Soniox STT Configuration (when STT_PROVIDER=soniox)
# 🔥 SOLVES 0.5-SECOND PAUSE ISSUE: Soniox intelligent endpoint detection prevents mid-sentence cutoffs
SONIOX_API_KEY= # Your Soniox API key (required)
SONIOX_MODEL="stt-rt-preview" # Real-time optimized model
SONIOX_LANGUAGE_HINTS="en" # Language hints (comma-separated: en,hi for Indian English)
SONIOX_CONTEXT="business analytics, payments, Indian English, lakhs, crores, Juspay, e-commerce" # Business domain context
SONIOX_ENABLE_NON_FINAL_TOKENS=true # Enable real-time interim results
SONIOX_MAX_NON_FINAL_TOKENS_DURATION_MS=0 # No limit on interim token duration
SONIOX_VAD_FORCE_TURN_ENDPOINT=false # 🔥 CRITICAL: false = Soniox endpoint detection (recommended)
# true = External VAD (may cause pause issues)
# IMPORTANT: When using Soniox endpoint detection, set DISABLE_SILERO_VAD=true to avoid conflicts
# Fal.ai Smart Turn (Cloud-based, requires API key)
ENABLE_FAL_SMART_TURN=false
FAL_SMART_TURN_API_KEY= #your_fal_api_key_here
# MCP Write Access Control Configuration
# Controls access to write operations (create, update, delete, etc.) at the tool initialization level
# Users not in this list will not see write tools in their interface, improving UX
AUTOMATIC_WRITE_ACTIONS_AUTHORIZED_USERS=user1@mail.com,user2@mail.com,...
AUTOMATIC_ACTIONS_REQUIRE_AUTH=create_euler_offer,delete_euler_offer,...
# Proxy Configuration
AWS_PROXY_HOST=localhost
AWS_PROXY_PORT=80
# LangFuse Configuration
LANGFUSE_SECRET_KEY=''
LANGFUSE_PUBLIC_KEY=''
LANGFUSE_BASEURL=https://us.cloud.langfuse.com
# Mem0 Configuration
MEM0_API_KEY=""
MEM0_ENABLED=false
AWS_BREEZE_PORTAL_URL="http://localhost:5173"
GCP_BREEZE_PORTAL_URL="http://localhost:5174"
DEFAULT_ANNOUNCEMENT_BANNER_BACKGROUND_COLOR=#714acd
DEFAULT_ANNOUNCEMENT_BANNER_TEXT_COLOR=#714acd
DEVCYCLE_SERVER_KEY= # Your DevCycle server key for feature flag management
DEVCYCLE_WEBHOOK_SECRET= # Secret token for DevCycle webhook authentication (query param)
# Redis Configuration
# Simple configuration - only these variables needed
REDIS_HOST=localhost
REDIS_PORT=6379
# Optional: For Redis cluster setup
REDIS_CLUSTER_NODES=redis1:6379,redis2:6380,redis3:6381
LANGFUSE_EVALUATORS="breeze buddy outcome correctness, latency evaluator" # name of the evaluator
SLACK_WEBHOOK_URL="" # slack webhook url to send alerts
SLACK_TAG_USERS="@john.doe,@jane.smith,@dev.team" # comma-separated list of users to tag in Slack alerts
# Background Tasks Configuration
ENABLE_BACKGROUND_TASKS=true # Enable/disable the entire background task scheduler (default: true)
BACKGROUND_TASKS_LOOP_INTERVAL_SECONDS=60 # How often the scheduler checks for tasks to run (in seconds, default: 60)
# Langfuse Score Monitoring Configuration
ENABLE_BB_LANGFUSE_MONITORING_LOOP=false # Enable/disable Langfuse score monitoring task only (default: false)
SCORE_CHECK_INTERVAL_SECONDS=600 # Check interval for Langfuse scores (10 minutes)
DAILY_SUMMARY_HOUR = "21" # Hour of the day (0-23) to send daily summary alerts (default: 21 for 9 PM)