Spaces:
Running
Running
| # CarePath unified runtime — one FastAPI service, two products. | |
| # Defaults below are the keyless demo profile: the whole app must boot with no | |
| # API keys (mock interpreter providers, mock ASR + offline LLM for the scriber). | |
| # Ready-made profiles: .env.local.example (keyless demo), .env.ckey.example | |
| # (real Gipformer ASR + CKey LLM). | |
| # --- Scriber (scribe/carepath, routes /api/v1/*) --- | |
| APP_ENV=local | |
| ASR_PROVIDER=gipformer | |
| GIPFORMER_QUANTIZE=int8 | |
| GIPFORMER_NUM_THREADS=4 | |
| GIPFORMER_DECODING_METHOD=modified_beam_search | |
| GIPFORMER_CHUNK_SECONDS=20 | |
| # Long-audio segmentation: overlap (default) | vad | fixed. | |
| # overlap = overlapping windows merged with seam de-duplication (no word loss | |
| # at chunk boundaries; no extra model). | |
| # vad = split on silence; requires GIPFORMER_VAD_MODEL (repo_id:filename or | |
| # a local silero_vad.onnx path). Falls back to overlap if unavailable. | |
| # fixed = legacy non-overlapping 20s windows. | |
| GIPFORMER_SEGMENTATION=overlap | |
| GIPFORMER_OVERLAP_SECONDS=2 | |
| GIPFORMER_MAX_SEGMENT_SECONDS=20 | |
| GIPFORMER_VAD_MODEL= | |
| # Set LLM_PROVIDER=offline for a deterministic no-key fallback. | |
| # Set LLM_PROVIDER=ckey for CKey OpenAI-compatible chat completions. | |
| LLM_PROVIDER=offline | |
| LLM_BASE_URL=https://api.openai.com/v1 | |
| LLM_MODEL=gpt-4.1-mini | |
| LLM_API_KEY= | |
| LLM_TIMEOUT_SECONDS=60 | |
| # If a network LLM provider fails, fall back to the offline generator so a | |
| # request never errors out (recommended for live demos). | |
| LLM_FALLBACK_OFFLINE=true | |
| # Retrieval | |
| MEDICAL_LEXICON_PATH=data/medical_lexicon.json | |
| RETRIEVAL_TOP_K=5 | |
| # Backend: lexical (default) | semantic | hybrid. semantic/hybrid use the | |
| # Vietnamese bi-encoder and need the optional sentence-transformers + pyvi deps. | |
| RETRIEVAL_BACKEND=lexical | |
| SEMANTIC_MODEL_NAME=bkai-foundation-models/vietnamese-bi-encoder | |
| # Safety/demo | |
| ALLOW_MOCK_ASR=false | |
| TEAM_CODE= | |
| SOAP_RATE_LIMIT_PER_IP_HOUR=3 | |
| SOAP_RATE_LIMIT_PER_IP_DAY=10 | |
| SOAP_RATE_LIMIT_GLOBAL_DAY=100 | |
| # Cross-origin frontends for both APIs. Clear this value for same-origin-only | |
| # production; list every Vite development origin when developing against either API. | |
| CORS_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 | |
| # Public Vercel site used by the Interpreter's “Tất cả chức năng” link when | |
| # its frontend is built into the Space image. Set as a Docker build arg. | |
| VITE_PUBLIC_SITE_URL=https://carepath-omega.vercel.app | |
| # --- Interpreter (interpreter/app, routes /api/* + /ws/*) --- | |
| # PROVIDER_MODE=mock runs deterministic providers with zero keys (the demo | |
| # profile). PROVIDER_MODE=cloud is a later track: it needs the two API keys | |
| # below and a non-default ADMIN_TOKEN (startup refuses "change-me"). | |
| PROVIDER_MODE=mock | |
| ANTHROPIC_API_KEY= | |
| OPENAI_API_KEY= | |
| ADMIN_TOKEN=change-me | |
| CONFIDENCE_THRESHOLD=0.7 | |
| RETENTION_DAYS=30 | |
| MAX_TURN_AUDIO_BYTES=10485760 | |
| # sqlite is fine for the demo (ephemeral on HF Spaces); point at Postgres etc. | |
| # for anything that must survive a container restart. | |
| DATABASE_URL=sqlite:///./carepath.db | |
| OPENAI_TRANSCRIBE_MODEL=gpt-4o-transcribe | |
| CLAUDE_MT_MODEL=claude-sonnet-5 | |
| CLAUDE_REVIEWER_MODEL=claude-sonnet-5 | |
| PROVIDER_TIMEOUT_SECONDS=30 | |