Spaces:
Sleeping
Sleeping
feat: overhaul MCP architecture with structured tool schemas, comprehensive care-mode skill definitions, and enhanced test coverage for pipelines and service integration.
79df050 | # 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 | |