Bloom_Ware / .env.example
LawrenceBai's picture
feat: overhaul MCP architecture with structured tool schemas, comprehensive care-mode skill definitions, and enhanced test coverage for pipelines and service integration.
79df050
Raw
History Blame Contribute Delete
3.2 kB
# Bloom Ware environment variables
# Copy to .env and fill real values locally. Do not commit real secrets.
# ===== Application Runtime =====
ENVIRONMENT=development
HOST=0.0.0.0
PORT=7860
CORS_ORIGINS=*
# ===== Authentication =====
JWT_SECRET_KEY=replace-with-random-secret
ACCESS_TOKEN_EXPIRE_MINUTES=30
# ===== Firebase / Firestore =====
FIREBASE_PROJECT_ID=your-firebase-project-id
FIREBASE_CREDENTIALS_JSON=
FIREBASE_SERVICE_ACCOUNT_JSON_BASE64=
FIREBASE_SERVICE_ACCOUNT_PATH=
# ===== Google OAuth =====
GOOGLE_CLIENT_ID=your-google-oauth-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-google-oauth-client-secret
GOOGLE_REDIRECT_URI=http://localhost:8080/auth/google/callback
# ===== Google Cloud 語音(STT/TTS)— 與 Firebase、OAuth 登入「不同專案/不同憑證」=====
#
# 三種 Google 身分請分開設定,勿混用:
# (1) Firebase / Firestore → FIREBASE_PROJECT_ID + FIREBASE_* 服務帳戶
# (2) Google OAuth(網站登入)→ GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET
# (3) 語音 GCP(Speech + TTS)→ 專案 ID 字串例:supervisor-project;控制台「專案編號」僅供對照,API 請用專案 ID
#
# 已啟用 API:Cloud Speech-to-Text、Cloud Text-to-Speech。
# - TTS(REST):使用 GOOGLE_TTS_API_KEY 或 GOOGLE_SPEECH_API_KEY(與 GOOGLE_API_KEY 可同一支)
# - STT v2「串流」:官方為 gRPC,必須使用「語音專案」的服務帳戶 OAuth(GOOGLE_SPEECH_*);僅 API Key 無法走現有串流實作
#
# 語音專案 STT 必備(擇一):GOOGLE_SPEECH_CREDENTIALS_JSON / GOOGLE_SPEECH_SERVICE_ACCOUNT_JSON_BASE64 / GOOGLE_SPEECH_SERVICE_ACCOUNT_PATH
GOOGLE_SPEECH_PROJECT_ID=supervisor-project
GOOGLE_SPEECH_CREDENTIALS_JSON=
GOOGLE_SPEECH_SERVICE_ACCOUNT_JSON_BASE64=
GOOGLE_SPEECH_SERVICE_ACCOUNT_PATH=
# 語音專案預設 ID(未單獨設 GOOGLE_SPEECH_PROJECT_ID 時亦會參考);勿只填專案「編號」
GOOGLE_CLOUD_PROJECT_ID=supervisor-project
GOOGLE_STT_ACCESS_TOKEN=
GOOGLE_API_KEY=your-google-api-key-for-tts-and-rest
GOOGLE_SPEECH_API_KEY=
GOOGLE_TTS_API_KEY=
GOOGLE_STT_LOCATION=global
GOOGLE_STT_RECOGNIZER_ID=_
GOOGLE_STT_AUTO_LANGUAGE_CODES=cmn-Hant-TW,en-US,ja-JP
GOOGLE_TTS_LANGUAGE_CODE=cmn-TW
GOOGLE_TTS_DEFAULT_VOICE=cmn-TW-Wavenet-A
# ===== OpenAI Agent =====
OPENAI_API_KEY=your-openai-api-key
OPENAI_BASE_URL=https://sub2api.flowatelier.com
OPENAI_MODEL=gpt-5.4
OPENAI_TIMEOUT=30
OPENAI_RESPONSES_TIMEOUT=90
OPENAI_USE_RESPONSES=true
OPENAI_MODEL_CONTEXT_WINDOW=1000000
OPENAI_MODEL_AUTO_COMPACT_TOKEN_LIMIT=900000
OPENAI_ENABLE_WEB_SEARCH=true
OPENAI_ENABLE_REMOTE_MCP=true
OPENAI_REMOTE_MCP_SERVERS_JSON=[]
OPENAI_ENABLE_SKILLS=true
USE_GPT_INTENT=true
GPT_INTENT_MODEL=gpt-5.4
# ===== External Data APIs =====
WEATHER_API_KEY=your-weather-api-key
TAVILY_API_KEY=your-newsdata-api-key
EXCHANGE_API_KEY=your-exchange-api-key
OPENROUTESERVICE_API_KEY=your-openrouteservice-api-key
TDX_CLIENT_ID=your-tdx-client-id
TDX_CLIENT_SECRET=your-tdx-client-secret
# ===== Background Jobs =====
ENABLE_BACKGROUND_JOBS=true
# ===== Environment Context =====
ENV_CONTEXT_DISTANCE_THRESHOLD=100
ENV_CONTEXT_HEADING_THRESHOLD=25
ENV_CONTEXT_TTL_SECONDS=300