Spaces:
Sleeping
Sleeping
File size: 4,789 Bytes
92bfe31 b5cb5bb de4b0cd b5cb5bb 92bfe31 b5cb5bb 92bfe31 b5cb5bb 92bfe31 b5cb5bb 92bfe31 b5cb5bb 92bfe31 b5cb5bb 92bfe31 b5cb5bb 92bfe31 b5cb5bb | 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 | # DeepSeek AI API (OpenAI-compatible)
DEEPSEEK_API_KEY=your_deepseek_api_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_REASONER_MODEL=deepseek-reasoner
# Inference provider selection
# CI trigger marker: keep this file touchable to force backend deploy workflow runs when needed.
INFERENCE_PROVIDER=deepseek
INFERENCE_PRO_ENABLED=true
INFERENCE_PRO_PROVIDER=deepseek
INFERENCE_GPU_PROVIDER=deepseek
INFERENCE_CPU_PROVIDER=deepseek
INFERENCE_ENABLE_PROVIDER_FALLBACK=true
INFERENCE_PRO_PRIORITY_TASKS=chat,verify_solution
INFERENCE_PRO_ROUTE_HEADER_NAME=
INFERENCE_PRO_ROUTE_HEADER_VALUE=true
# task policy sets, comma-separated
INFERENCE_GPU_REQUIRED_TASKS=chat
INFERENCE_CPU_ONLY_TASKS=risk_classification,analytics_aggregation,file_parsing,auth,default_cpu
INFERENCE_INTERACTIVE_TASKS=chat,verify_solution,daily_insight
ENABLE_LLM_RISK_RECOMMENDATIONS=true
# local_space provider settings
# Accepts either runtime host (https://<owner>-<space>.hf.space) or
# Space page URL (https://huggingface.co/spaces/<owner>/<space>).
# Example: https://huggingface.co/spaces/Deign86/mathpulse-ai
INFERENCE_LOCAL_SPACE_URL=http://127.0.0.1:7860
INFERENCE_LOCAL_SPACE_GENERATE_PATH=/gradio_api/call/generate
INFERENCE_LOCAL_SPACE_TIMEOUT_SEC=180
# HF_TOKEN kept for Hugging Face Space deployment and dataset push only
# Alternative env names accepted by runtime/startup checks: HUGGING_FACE_API_TOKEN, HUGGINGFACE_API_TOKEN
HF_TOKEN=your_hf_token
FIREBASE_AUTH_PROJECT_ID=mathpulse-ai-2026
# Prefer one of the options below for backend Firestore/Admin access in deployment:
# FIREBASE_SERVICE_ACCOUNT_JSON={"type":"service_account",...}
# FIREBASE_SERVICE_ACCOUNT_FILE=/path/to/service-account.json
# DeepSeek timeout settings
INFERENCE_HF_TIMEOUT_SEC=90
INFERENCE_INTERACTIVE_TIMEOUT_SEC=55
INFERENCE_BACKGROUND_TIMEOUT_SEC=120
# Curriculum PDF storage
# Store the binary curriculum files in a Hugging Face dataset or Space repo,
# then point the backend at that repo so it downloads them at build/startup time.
CURRICULUM_SOURCE_REPO_ID=Deign86/mathpulse-curriculum
CURRICULUM_SOURCE_REPO_TYPE=dataset
CURRICULUM_SOURCE_REVISION=main
# Transactional email settings for admin-created accounts
# Primary provider: Brevo Transactional API
BREVO_API_KEY=
# Optional: Brevo MCP token (base64 JSON containing api_key) if BREVO_API_KEY is not set
BREVO_MCP_TOKEN=
# Optional SMTP fallback provider (Brevo SMTP relay)
BREVO_SMTP_LOGIN=
BREVO_SMTP_KEY=
BREVO_SMTP_HOST=smtp-relay.brevo.com
BREVO_SMTP_PORT=587
MAIL_FROM_ADDRESS=noreply@mathpulse.ai
MAIL_FROM_NAME=MathPulse AI
MAIL_SEND_TIMEOUT_SEC=15
APP_LOGIN_URL=https://mathpulse.ai
# Optional: absolute http(s) URL used as the email header avatar image.
# If unset, backend derives this from APP_LOGIN_URL + /avatar/avatar_icon.png.
APP_BRAND_AVATAR_URL=
# model defaults
# Global default model for all tasks.
INFERENCE_MODEL_ID=deepseek-chat
INFERENCE_ENFORCE_QWEN_ONLY=true
INFERENCE_QWEN_LOCK_MODEL=deepseek-chat
INFERENCE_MAX_NEW_TOKENS=8192
INFERENCE_TEMPERATURE=0.2
INFERENCE_TOP_P=0.9
INFERENCE_CHAT_MODEL_ID=deepseek-chat
# Temporary chat-only override for experiments (clear to roll back instantly).
# Example: Qwen/Qwen3-32B
INFERENCE_CHAT_MODEL_TEMP_OVERRIDE=
INFERENCE_CHAT_STRICT_MODEL_ONLY=true
INFERENCE_CHAT_HARD_MODEL_ID=meta-llama/Meta-Llama-3-70B-Instruct
INFERENCE_CHAT_HARD_TRIGGER_ENABLED=false
INFERENCE_CHAT_HARD_PROMPT_CHARS=650
INFERENCE_CHAT_HARD_HISTORY_CHARS=1500
INFERENCE_CHAT_HARD_KEYWORDS=step-by-step,show all steps,explain each step,justify each step,derive,derivation,proof,prove,rigorous,multi-step,word problem
CHAT_MAX_NEW_TOKENS=8192
CHAT_STREAM_NO_TOKEN_TIMEOUT_SEC=90
CHAT_STREAM_TOTAL_TIMEOUT_SEC=900
CHAT_STREAM_CONTINUATION_ENABLED=true
CHAT_STREAM_CONTINUATION_MAX_ROUNDS=2
CHAT_STREAM_CONTINUATION_MIN_NEW_CHARS=24
CHAT_STREAM_CONTINUATION_TAIL_CHARS=900
CHAT_STREAM_COMPLETION_MODE_DEFAULT=auto
# Optional: force quiz-generation model. Leave empty to use routing.task_model_map.quiz_generation.
HF_QUIZ_MODEL_ID=
HF_QUIZ_JSON_REPAIR_MODEL_ID=deepseek-chat
# retry behavior
INFERENCE_MAX_RETRIES=3
INFERENCE_BACKOFF_SEC=1.5
INFERENCE_INTERACTIVE_MAX_RETRIES=1
INFERENCE_BACKGROUND_MAX_RETRIES=3
INFERENCE_INTERACTIVE_BACKOFF_SEC=1.0
INFERENCE_BACKGROUND_BACKOFF_SEC=1.75
INFERENCE_INTERACTIVE_MAX_FALLBACK_DEPTH=1
# Max simultaneous blocking HF calls allowed from async endpoints.
HF_BLOCKING_CALL_CONCURRENCY=16
HF_ASYNC_MAX_CONNECTIONS=64
HF_ASYNC_MAX_KEEPALIVE_CONNECTIONS=32
HF_ASYNC_CONNECT_TIMEOUT_SEC=10.0
HF_ASYNC_WRITE_TIMEOUT_SEC=30.0
HF_ASYNC_POOL_TIMEOUT_SEC=10.0
# fallback model ids, comma-separated
INFERENCE_FALLBACK_MODELS=
# async generation controls
ENABLE_ASYNC_GENERATION=true
ASYNC_TASK_TTL_SECONDS=3600
ASYNC_TASK_MAX_ITEMS=400
|