mirror of
https://github.com/primedigitaltech/market-assistant.git
synced 2026-07-21 23:41:39 +08:00
normalize_message_content 经 strip_thinking_leaks;支持 MA_LLM_PRESERVE_THINKING_IN_OUTPUT;修复 text 凭据单测在含 .env 时的干扰。 Made-with: Cursor
83 lines
4.6 KiB
Plaintext
83 lines
4.6 KiB
Plaintext
# =============================================================================
|
||
# 唯一环境变量模板:复制为同目录 .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_* + OPENAI_VISION_MODEL)---
|
||
# OPENAI_API_KEY=sk-your-key-here
|
||
# OPENAI_BASE_URL=https://llm.example.com/v1
|
||
# OPENAI_VISION_MODEL=Qwen/Qwen3-Omni-30B-A3B
|
||
# 若 ② 选方案 A:纯文本默认也走 ① 的 Key/基址,但可只用下面两枚变量「只拆纯文本」:任一项不设则回退 ①
|
||
# OPENAI_TEXT_API_KEY=(与配料/视觉同网关不同 Key、或分账号)
|
||
# OPENAI_TEXT_BASE_URL=(可仅换路径/集群,仍与 ① 同域名)
|
||
# 若 OPENAI_BASE_URL=https://llm.rekeymed.com/v1,可用 Key 调 GET /v1/models 看 id;以下为某次查询示例(以实际返回为准):
|
||
# Qwen/Qwen3-Omni-30B-A3B
|
||
# openai/gpt-oss-120b
|
||
# zai-org/GLM-4.5-Air
|
||
# 纯文本专用模型名(不填时回退 OPENAI_VISION_MODEL / LLM_MODEL 等;与多模可不同)
|
||
# OPENAI_TEXT_MODEL=
|
||
# 别名:LLM_API_KEY、LLM_BASE_URL、LLM_MODEL、LLM_TEXT_API_KEY、LLM_TEXT_BASE_URL
|
||
|
||
# --- LLM ② 纯文本(报告/策略/关键词等 call_llm;与 ②-B~②-D 多选一,只让一条 MA_LLM_TEXT_PROVIDER 生效,换方案时先改/注释本行再启别节)---
|
||
# 方案 A(默认)= 经 openai_gateway:纯文本读 OPENAI_TEXT_*(若有)否则 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
|
||
|
||
# 默认会剥掉混在「模型 content」里的思考标签块(如 redacted_thinking / think 成对),内部仍可开思考;调试要原样保留时:
|
||
# MA_LLM_PRESERVE_THINKING_IN_OUTPUT=1
|
||
|
||
# --- 可选:流水线侧 LLM 开关 ---
|
||
# MA_SKIP_LLM_KEYWORD_SUGGEST=1
|
||
# MA_ENABLE_LLM_COMMENT_SENTIMENT=1
|
||
# MA_SKIP_LLM_COMMENT_SENTIMENT=1
|