# ================================ # 必需配置 - 请替换为您的实际密钥 # ================================ # 阿里云百炼 AI (DashScope) - LLM + ASR + TTS 服务 AI_BAILIAN_API_KEY=your_dashscope_api_key_here # Provider API Key 加密密钥(必填;生产环境请替换为随机长字符串,部署后保持不变) APP_AI_CONFIG_ENCRYPTION_KEY=change_me_provider_api_key_encryption_key # ================================ # 文字服务配置 # ================================ # LM Studio 本地 Provider(可选) # PROVIDER_LMSTUDIO_API_KEY=lm-studio # Moonshot AI / Kimi (https://platform.moonshot.cn/) PROVIDER_KIMI_API_KEY= PROVIDER_KIMI_MODEL=kimi-k2.6 # DeepSeek (https://platform.deepseek.com/) PROVIDER_DEEPSEEK_API_KEY= PROVIDER_DEEPSEEK_MODEL=deepseek-v4-flash # 智谱 AI / GLM (https://open.bigmodel.cn/) PROVIDER_GLM_API_KEY= PROVIDER_GLM_MODEL=glm-5 # 自定义 OpenAI 兼容 Provider 示例: # 添加后需在 application.yml 的 app.ai.providers 中配置对应的 base-url 和 model # PROVIDER_MYPROVIDER_API_KEY=your_api_key_here # ================================ # 可选配置 - 与根目录 docker-compose.yml 对齐(本地 bootRun 连 compose 起的依赖时勿改) # ================================ # PostgreSQL(compose 默认:库 interview_guide / 用户 postgres / 密码 password / 映射端口 5432) POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_DB=interview_guide POSTGRES_USER=postgres POSTGRES_PASSWORD=password # Redis(compose 映射 6379) REDIS_HOST=localhost REDIS_PORT=6379 # RustFS / S3 兼容存储(docker-compose.dev.yml 默认凭证为 rustfsadmin,API 映射 9000) APP_STORAGE_ENDPOINT=http://localhost:9000 APP_STORAGE_ACCESS_KEY=rustfsadmin APP_STORAGE_SECRET_KEY=rustfsadmin APP_STORAGE_BUCKET=interview-guide # AI 模型配置(默认: qwen3.5-flash) AI_MODEL=qwen3.5-flash # 语音面试(可选):多段 STT 合并后再触发面试官;ASR 句间静音阈值(越大越不易句中切开) # APP_VOICE_USER_UTTERANCE_DEBOUNCE_MS=1600 # APP_VOICE_ASR_SILENCE_MS=1000 # 应用启动时是否预热开场白音频;会调用云端 TTS,默认关闭 # APP_VOICE_OPENING_AUDIO_WARMUP_ENABLED=false # 语音面试上下文压缩(默认开启)。enabled=false 是唯一关闭方式,仅本地排查用; # mode 可选 NONE(不摘要不裁窗口,仍有字符硬预算)/ WINDOW(窗口+硬预算)/ SUMMARY(摘要+窗口+硬预算,默认) # 预算定义:摘要字符数 + 近期历史格式化后字符数 <= MAX_HISTORY_CHARS,且摘要 <= MAX_SUMMARY_CHARS # APP_VOICE_INTERVIEW_CONTEXT_COMPRESSION_ENABLED=true # APP_VOICE_INTERVIEW_CONTEXT_COMPRESSION_MODE=SUMMARY # APP_VOICE_INTERVIEW_CONTEXT_COMPRESSION_WINDOW_SIZE=20 # APP_VOICE_INTERVIEW_CONTEXT_COMPRESSION_SUMMARY_BATCH_SIZE=10 # APP_VOICE_INTERVIEW_CONTEXT_COMPRESSION_MAX_HISTORY_CHARS=12000 # APP_VOICE_INTERVIEW_CONTEXT_COMPRESSION_MAX_SUMMARY_CHARS=4000