This repository was archived by the owner on Jul 6, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 84
Expand file tree
/
Copy path.env.example
More file actions
150 lines (140 loc) · 7.08 KB
/
Copy path.env.example
File metadata and controls
150 lines (140 loc) · 7.08 KB
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# === LLM 配置 ===
# 选择 LLM 提供商: openai (默认) 或 anthropic
LLM_PROVIDER=openai
# OpenAI 配置(LLM_PROVIDER=openai 时需要)
# API Key 填在 OPENAI_API_KEY,不要填在 OPENAI_BASE_URL
OPENAI_API_KEY=
# 留空 = 官方 https://api.openai.com/v1
# 小米 MiMo OpenAI 兼容网关(二选一,以控制台为准):
# OPENAI_BASE_URL=https://api.xiaomimimo.com/v1
# OPENAI_BASE_URL=https://api.mimo-v2.com/v1
OPENAI_BASE_URL=https://api.xiaomimimo.com/v1
# 显式声明兼容小米网关(可选;或设 LLM_MODEL=mimo-v2-omni / BASE_URL 含 xiaomimimo、mimo-v2)
# OPENAI_COMPAT=mimo
# 模型名(与所用接口一致)。OpenAI:gpt-4o;小米:mimo-v2-omni;Orchestrator 默认读此值覆盖 Agent 模型
LLM_MODEL=mimo-v2-omni
# 三级模型名(base_agent 模块级默认值;未设时分别回退到以下默认)
# LLM_MODEL_FAST=mimo-v2-flash
# LLM_MODEL_PRO=mimo-v2-pro
# LLM_MODEL_OMNI=mimo-v2-omni
# OCR 模型输出 token 上限(默认 2048;快识路径取 max(env, override) 再 clamp 至 8192)
# LLM_OCR_MAX_TOKENS=2048
# 通用 Agent 输出 token 上限(base_agent 默认 2048;video_analyzer 默认 1024)
# LLM_MAX_COMPLETION_TOKENS=2048
# LLM 采样温度(base_agent 默认 0;screenshot_api/video_analyzer 默认 0.3)
# LLM_TEMPERATURE=0
# 结果可复现种子(非空时传入;部分网关/模型可能不支持)
# LLM_SEED=
# 网关不支持 response_format=json_object 时可设 1
# LLM_SKIP_JSON_RESPONSE_FORMAT=1
# MiMo 视频理解(video_url):采样帧率,官方示例多为 2;过高增加 token 与耗时
# MIMO_VIDEO_FPS=2
# 视频解码分辨率策略:default | max(见平台「视频理解」文档)
# MIMO_VIDEO_MEDIA_RESOLUTION=default
# 兼容旧名:与 MIMO_VIDEO_FPS 二选一即可
# 视频快识路径默认 fps=4(代码内),利于扫到更多花字帧;可降到 2 省 token
# QUICK_RECOGNIZE_VIDEO_FPS=4
# 快识 video_url 默认 media_resolution=max(仅快识,不影响 diagnose 里未传参的默认)
# QUICK_RECOGNIZE_VIDEO_MEDIA_RESOLUTION=max
# 快识专用:首轮结构化 JSON 输出 token 上限(默认 4096)
# QUICK_RECOGNIZE_VIDEO_MAX_COMPLETION_TOKENS=4096
# 第二轮专向听写 subtitle_lines(默认 8192,上限夹紧 8192 防网关拒单)
# QUICK_RECOGNIZE_VIDEO_TRANSCRIPT_MAX_COMPLETION_TOKENS=8192
# 综合裁判最终报告 JSON 较长,截断会导致「非 JSON」解析失败(默认 6144)
# JUDGE_MAX_COMPLETION_TOKENS=6144
# 视觉诊断师多模态(封面图)输出 token 上限(默认 2500)
# VISUAL_AGENT_MAX_COMPLETION_TOKENS=2500
# 单 Agent / 辩论单席 LLM 超时(秒),避免 asyncio.gather 永久等待
# AGENT_LLM_TIMEOUT_SEC=90
# DEBATE_LLM_TIMEOUT_SEC=90
# 综合裁判超时(秒)
# JUDGE_LLM_TIMEOUT_SEC=180
# 多模态封面长边像素上限(缩小后 JPEG 再送模型;默认 1280,范围 [256, 4096])
# VISION_MAX_EDGE=1280
# JPEG 压缩质量(默认 85,范围 [60, 95])
# VISION_JPEG_QUALITY=85
# 快识:图片 JSON 输出 token 上限(代码默认 2048 且限制在 256~8192,过大易被网关拒绝)
# QUICK_RECOGNIZE_MAX_COMPLETION_TOKENS=2048
# 快识 OCR 兜底 token 上限(代码默认 2048 且限制在 512~8192;JSON 易被截断时可调到 4096)
# QUICK_RECOGNIZE_OCR_MAX_TOKENS=2048
# 快识:长边像素上限(超过才压 JPEG;默认 1280;偏小更快、极小字可能略损)
# QUICK_RECOGNIZE_MAX_EDGE=1280
# 快识 JPEG 压缩质量(默认 92)
# QUICK_RECOGNIZE_JPEG_QUALITY=92
# Anthropic 配置(LLM_PROVIDER=anthropic 时需要)
ANTHROPIC_API_KEY=sk-ant-your-anthropic-key-here
# === 前端(写入 frontend/.env / .env.local,变量须以 VITE_ 开头)===
# 流式诊断最长等待(毫秒)。多 Agent 诊断常需数分钟;过短会误判超时并只显示演示数据(默认 600000 = 10 分钟)
# VITE_DIAGNOSE_MAX_WAIT_MS=600000
# === 服务器配置 ===
BACKEND_PORT=8000
FRONTEND_PORT=5173
# 视频上传单文件上限(MB,默认 300)。与时长无关:高码率/4K 录屏很短也会很大。上限封顶 1024。
# 若调高,请同步改 frontend/src/components/UploadZone.tsx 中 VIDEO_MAX_MB,否则前端会先拦截。
# MAX_VIDEO_UPLOAD_MB=300
# === 视频理解(MiMo video_url:整段视频,非仅抽帧)===
# CDN 上传接口配置:服务端将视频上传到 CDN 后,把公网 URL 交给 MiMo 拉取。
CDN_UPLOAD_URL=
CDN_UPLOAD_FIELD=file
# 可选:临时视频落盘目录(默认 backend/data/temp_videos)
# TEMP_VIDEO_DIR=backend/data/temp_videos
# === 视频口播转写(OpenAI 兼容 /audio/transcriptions,非 TTS)===
# 需本机安装 ffmpeg。只要填了 OPENAI_WHISPER_BASE_URL,就必须填 OPENAI_WHISPER_API_KEY(勿用 MiMo Key)。
# 默认开启(代码默认值为 1);快识路径默认关闭(VIDEO_STT_ENABLED=0);可显式开关:
# VIDEO_STT_ENABLED=0
# VIDEO_STT_ENABLED=1
#
# OpenAI 官方 Whisper:
# OPENAI_WHISPER_BASE_URL=https://api.openai.com/v1
# OPENAI_WHISPER_API_KEY=sk-...
# WHISPER_MODEL=whisper-1
#
# 硅基流动 ASR(创建语音转文本,勿与 TTS「上传参考音频」upload-voice 混淆):
# 文档:https://docs.siliconflow.cn/cn/api-reference/audio/create-audio-transcriptions
# upload-voice 文档:https://docs.siliconflow.cn/cn/api-reference/audio/upload-voice (仅 TTS 音色,不用于 ASR)
# OPENAI_WHISPER_BASE_URL=https://api.siliconflow.cn/v1
# OPENAI_WHISPER_API_KEY=<硅基控制台 API Key>
# WHISPER_MODEL=TeleAI/TeleSpeechASR
# WHISPER_MODEL=FunAudioLLM/SenseVoiceSmall
# 硅基部分模型可不传 language:VIDEO_STT_LANGUAGE= (空)
#
# 音频总时长上限(秒,默认 3600,范围 [60, 14400])
# VIDEO_STT_MAX_AUDIO_SECONDS=3600
# 长视频分段转写(秒,默认 480,范围 [30, 1200]);调小更稳但请求次数更多
# VIDEO_STT_SEGMENT_SECONDS=480
# STT HTTP 超时(秒,默认 240,范围 [60, 600])
# VIDEO_STT_TIMEOUT_SEC=240
# 转写语言(默认 zh;显式设空串则不传 language 参数)
# VIDEO_STT_LANGUAGE=zh
# 优先请求 verbose_json(带 segments);网关不支持会自动回退(默认 1)
# VIDEO_STT_PREFER_VERBOSE_JSON=1
# === 安全配置 ===
# 管理员密码(二选一;同时设置则 ADMIN_PASSWORD_SHA512 优先):
# ADMIN_PASSWORD_SHA512=<sha512 hex hash of your password>
# ADMIN_PASSWORD=<your plaintext password,启动时自动哈希>
#
# 管理员登录速率限制(窗口内最大尝试次数)
# ADMIN_MAX_ATTEMPTS_PER_WINDOW=8
# ADMIN_RATE_LIMIT_WINDOW_SEC=300
#
# 全局 API 速率限制
# API_RATE_LIMIT_WINDOW_SEC=60
# API_RATE_LIMIT_PER_WINDOW=30
#
# 诊断/优化等高消耗端点速率限制(更严格)
# DIAGNOSE_RATE_LIMIT_PER_WINDOW=8
#
# CORS 覆盖域名(生产环境设置;留空则使用默认域名)
# CORS_ORIGIN_OVERRIDE=https://yourdomain.com
#
# 请求体大小上限(MB,含文件上传;默认 350MB)
# MAX_REQUEST_BODY_MB=350
#
# 输入字段长度限制
# MAX_TITLE_LENGTH=200
# MAX_CONTENT_LENGTH=10000
# MAX_CATEGORY_LENGTH=50
# MAX_TAGS_LENGTH=500
#
# 临时视频目录总大小上限(MB,默认 4096;超过则清理最旧文件)
# TEMP_VIDEO_DIR_MAX_TOTAL_MB=4096