# ============================================================================= # 唯一环境变量模板:复制为同目录 .env 后填写(.env 勿提交仓库) # copy .env.example .env (Windows) # cp .env.example .env (Linux/macOS) # # 阅读方式:每节以 “# --- ... ---” 开头,首行说明「干什么、和哪几节互斥」; # 要换跑法时,按该节里的注释行取消注释,并把其它方案里会冲突的 MA_LLM* / 凭据 改回注释。 # ============================================================================= # --- 数据工作区根目录(可选;不填=本仓库根目录,数据在 ./data/JD/;数据盘与代码分离时再填绝对路径须可写)--- # LOW_GI_PROJECT_ROOT=D:\data\low-gi-workspace # --- Django(站点密钥与调试;生产须改 SECRET 与 DEBUG)--- DJANGO_SECRET_KEY=please-change-me DJANGO_DEBUG=True DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1 # 可选:SQLite 绝对路径;不填则使用 backend/db.sqlite3 # DJANGO_SQLITE_PATH=D:\PythonProject\Low GI\market_assistant\backend\db.sqlite3 # --- 浏览器访问前端时的 Origin(开发:Vite 5173;生产改为实际域名;与 CORS/CSRF 成对改)--- CORS_ALLOWED_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 CSRF_TRUSTED_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 # --- LLM ① 自建/兼容网关(与 pipeline.openai_gateway 共用;商详多模、配料/视觉等走 OPENAI_*。若 ② 选方案 A,纯文本也读同一套 Key、BASE_URL,仅「文本模型名」可经 OPENAI_TEXT_MODEL 与 OPENAI_VISION_MODEL 不同;与 ① 完全独立网关/Key 时需改 ②-B~②-D)--- # OPENAI_API_KEY=sk-your-key-here # OPENAI_BASE_URL=https://llm.example.com/v1 # OPENAI_VISION_MODEL=Qwen/Qwen3-Omni-30B-A3B # 若 OPENAI_BASE_URL=https://llm.rekeymed.com/v1,可用同一 Key 调 GET /v1/models 查看当前账号可见的 model id;以下为某次查询示例(以实际返回为准): # Qwen/Qwen3-Omni-30B-A3B # openai/gpt-oss-120b # zai-org/GLM-4.5-Air # 仅当 ② 选「方案 A」且要在自建上单独换「只文本补全」模型时填写;不填时回退为视觉模型名或网关默认 # OPENAI_TEXT_MODEL= # 别名:LLM_API_KEY、LLM_BASE_URL、LLM_MODEL # --- LLM ② 纯文本(报告/策略/关键词等 call_llm;与 ②-B~②-D 多选一,只让一条 MA_LLM_TEXT_PROVIDER 生效,换方案时先改/注释本行再启别节)--- # 方案 A(默认)= 经 openai_gateway 调你「当前 .env 里」的 OPENAI_*(不绑死 ① 里某条示例,可换任意兼容网关);要换 B=官站、C=Kimi、D=DeepSeek 时,把下面这行改成 openai_official|kimi|deepseek 等,并去对应小节填凭据 MA_LLM_TEXT_PROVIDER=crawler_openai_compatible # --- ②-B 纯文本用 OpenAI 官站(仅当 MA=openai_official / openai_chatgpt / chatgpt;与 ②-A、②-C 互斥;凭据与 ① 可不同)--- # MA_LLM_TEXT_PROVIDER=openai_official # OPENAI_OFFICIAL_API_KEY=sk-... # OPENAI_OFFICIAL_BASE_URL=https://api.openai.com/v1 # OPENAI_OFFICIAL_TEXT_MODEL=gpt-4o-mini # OPENAI_OFFICIAL_CONTEXT_WINDOW=128000 # OPENAI_OFFICIAL_TIMEOUT=600 # --- ②-C 纯文本用 Kimi / Moonshot 兼容(仅当 MA=kimi / moonshot / kimi_moonshot;与 ②-A、②-B 互斥;配料/视觉仍只走 ① 的 OPENAI_*)--- # MA_LLM_TEXT_PROVIDER=kimi # KIMI_API_KEY=sk-... # KIMI_BASE_URL=https://api.moonshot.cn/v1 # KIMI_TEXT_MODEL=moonshot-v1-8k # KIMI_CONTEXT_WINDOW=8192 # 别名:MOONSHOT_API_KEY、KIMI_MODEL、MOONSHOT_MODEL # KIMI_TIMEOUT=600 # --- ②-D 纯文本用 DeepSeek 官方(仅当 MA=deepseek / deep_seek;与 ②-A~②-C 互斥;配料/视觉仍只走 ① 的 OPENAI_*)--- # MA_LLM_TEXT_PROVIDER=deepseek # DEEPSEEK_API_KEY=sk-... # DEEPSEEK_BASE_URL=https://api.deepseek.com/v1 # 思考模式(官方 Thinking Mode,默认开):关=0;力度 high|max(https://api-docs.deepseek.com/guides/thinking_mode) # DEEPSEEK_THINKING=1 # DEEPSEEK_REASONING_EFFORT=high # 未填 DEEPSEEK_TEXT_MODEL 时:开思考默认 deepseek-v4-pro,关思考默认 deepseek-chat # DEEPSEEK_TEXT_MODEL=deepseek-v4-pro # DEEPSEEK_CONTEXT_WINDOW=64000 # 别名:DEEPSEEK_MODEL # DEEPSEEK_TIMEOUT=600 # --- 报告/策略:部分 LLM 块单独温度(默认 0.1;与上面 MA 无冲突)--- # MA_STRATEGY_LLM_TEMPERATURE=0.1 # --- 可选:流水线侧 LLM 开关 --- # MA_SKIP_LLM_KEYWORD_SUGGEST=1 # MA_ENABLE_LLM_COMMENT_SENTIMENT=1 # MA_SKIP_LLM_COMMENT_SENTIMENT=1