Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
65 lines (57 loc) · 2.85 KB
/
Copy path.env.example
File metadata and controls
65 lines (57 loc) · 2.85 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
# Copy to .env.local and fill in. The worker + web tier load .env.local.
# --- LiveKit (user-provided) ---
LIVEKIT_URL=
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
# --- Deepgram STT/TTS (user-provided) ---
DEEPGRAM_API_KEY=
# --- Databricks auth for the LLM (openai.responses.LLM) AND the Lakebase pool ---
# Set BOTH: host = the workspace URL; token = a PAT, or a short-lived bearer from
# `databricks auth token --profile DEFAULT -o json` (access_token). WorkspaceClient()
# also reads these env vars, so the pool + gateway calls use the same creds.
DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
DATABRICKS_TOKEN=
# --- Lakebase (verified: lakebase-search-contract.md) ---
LAKEBASE_ENDPOINT=projects/your-project/branches/production/endpoints/primary
LAKEBASE_DATABASE=databricks_postgres
UG_SCHEMA=ug
# --- Unity Gateway models (verified: model-routing-contract.md) ---
UG_MODEL_STANDARD=system.ai.gpt-5-nano
UG_MODEL_PREMIUM=system.ai.gpt-5-5
UG_MODEL_VIP=system.ai.gpt-6-sol
UG_MODEL_FALLBACK=system.ai.gpt-5-5
UG_EMBED_MODEL=system.ai.gte-large-en
UG_GEN_MODEL=system.ai.gpt-5-4
# --- Agent + optional tracing (fail-soft if trace vars blank) ---
AGENT_NAME=ug-agent
OTEL_SERVICE_NAME=ug-voice-agent
DATABRICKS_TRACE_CATALOG=
DATABRICKS_TRACE_SCHEMA=
DATABRICKS_TRACE_TABLE_PREFIX=
# Only needed to read traces back through the MLflow client; trace export does not use them. Tracing itself switches on when DATABRICKS_TRACE_CATALOG, _SCHEMA and _TABLE_PREFIX above are all set.
MLFLOW_EXPERIMENT_NAME=
MLFLOW_TRACING_SQL_WAREHOUSE_ID=
# --- Plan 5: AI Decide (per-turn voice-mode decision) ---
# AI Decide decides the voice mode each turn by calling the Databricks ai_decide function. It needs
# ai_decide enabled on the workspace (admin -> Previews). Without it, explicit requests such as
# "switch to the spooky voice" still work through the rule-based check. UG_AI_DECIDE=0 is the kill
# switch: no decision calls, the agent stays in the standard voice.
UG_AI_DECIDE=1
UG_DECIDE_TIMEOUT_S=3.0
UG_DECIDE_CUE_WAIT_S=0.8
# --- Plan 5: Halloween voice (ElevenLabs) ---
# ELEVEN_API_KEY is a secret: set it in your gitignored .env.local for local runs, and never put a
# value in this committed file. The deployed app reads it from the elevenlabs-api-key app resource.
# The ElevenLabs voice needs BOTH ELEVEN_API_KEY and UG_HALLOWEEN_VOICE_ID. If either is blank,
# Halloween mode uses the Deepgram fallback voice (UG_HALLOWEEN_FALLBACK_VOICE), without tags.
ELEVEN_API_KEY=
# The ElevenLabs voice id (the owner's pick, chosen by ear).
UG_HALLOWEEN_VOICE_ID=
# elevenlabs | openai | deepgram
UG_HALLOWEEN_TTS=elevenlabs
# Only eleven_v3* models perform inline [tags]; any other model gets none.
UG_HALLOWEEN_TTS_MODEL=eleven_v3_conversational
UG_HALLOWEEN_STABILITY=0.5
UG_HALLOWEEN_FALLBACK_VOICE=aura-2-zeus-en
# Only when UG_HALLOWEEN_TTS=openai (secret, same rule as above):
OPENAI_API_KEY=