Skip to content

Commit 0d71ff8

Browse files
author
dministrator
committed
Merge branch 'upstream/main' - sync upstream changes up to ZhuLinsen#1275
2 parents 197cde1 + a75a0c5 commit 0d71ff8

266 files changed

Lines changed: 33670 additions & 3390 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/analyze-pr/SKILL.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ gh run view <run_id> --log-failed
4141
- `Compatibility And Risk`
4242
- `Rollback Plan`
4343

44+
若 PR 涉及第三方模型 / API 兼容语义、请求参数固定值、OpenAI-compatible 路由、YAML alias、fallback 行为或运行时配置保存 / 清理 / 迁移逻辑,还要额外检查描述里是否明确写出:
45+
46+
- 官方来源链接或公告
47+
- 当前锁定依赖 / 运行时兼容范围(例如 LiteLLM 版本窗口)
48+
- 已验证的调用链路覆盖面
49+
- 旧配置是否会被静默改写、清空、迁移或保持不变
50+
- 最小回滚路径(通常是 revert 本 PR)
51+
4452
### Step 3: 优先使用 CI / Diff 证据
4553

4654
- 先根据 `gh pr checks`、PR diff、现有测试与工作流日志判断问题
@@ -98,6 +106,9 @@ gh run view <run_id> --log-failed
98106
- API / Web / Desktop:
99107
- 配置 / Docker / GitHub Actions:
100108
- fallback / 通知 / 报告结构:
109+
- 第三方依赖 / 官方约束来源:
110+
- 运行时兼容窗口 / 已覆盖链路:
111+
- 旧配置迁移或静默改写风险:
101112

102113
## Draft Review Comment
103114

.claude/skills/fix-issue/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
- 保持默认行为向后兼容,避免破坏 fallback / fail-open
3535
- 如果修复涉及用户可见行为、配置语义、CLI/API、部署、通知、报告结构,要同步更新相关文档、`docs/CHANGELOG.md``.env.example`
3636
-`docs/CHANGELOG.md` 写入条目时,在 `[Unreleased]` 段追加一行,格式为 `- [类型] 描述`,其中 `[类型]``[新功能]/[改进]/[修复]/[文档]/[测试]/[chore]` 中按本次变更内容选择;只有修复 bug 时才使用 `[修复]`**不要**`[Unreleased]` 内新增 `### 类目标题`
37-
- `README.md` 主要承载入门、运行、部署和高层能力说明;更细的模块行为、页面交互或专题说明,优先更新对应 `docs/*.md`
38-
- 如果没有更新 `README.md`,要在交付说明或 PR 描述里写清原因和实际文档落点
37+
- `README.md` 只承载项目定位、核心能力、快速开始、主要入口、赞助/合作等首页级信息;非必要不更新 README,避免持续膨胀
38+
- 更细的模块行为、页面交互、专题配置、排障说明、字段契约、实现语义和边界条件,优先更新对应 `docs/*.md`
3939

4040
### Step 4: 按改动面验证
4141

.env.example

Lines changed: 186 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@
88
# 深市:000xxx, 002xxx, 300xxx
99
STOCK_LIST=600519,300750,002594
1010

11+
# Anspire Open API Keys(支持多个,逗号分隔)
12+
# 获取: https://open.anspire.cn/?share_code=QFBC0FYC
13+
# 在未配置更高优先级 OpenAI-compatible 来源时,满足条件可复用该 key 给 Anspire 大模型网关与新闻搜索。
14+
# 下列网关与模型为当前项目示例配置;是否可用请以 Anspire 控制台与官方文档为准:
15+
# 示例网关: https://open-gateway.anspire.cn/v6
16+
# 示例模型:Doubao-Seed-2.0-lite(可覆盖为 ANSPIRE_LLM_MODEL=Doubao-Seed-2.0-pro)
17+
# 若网关有区域/版本差异,可覆盖为 ANSPIRE_LLM_BASE_URL=https://open-gateway.anspire.ai/v6
18+
ANSPIRE_API_KEYS=
19+
# ANSPIRE_LLM_MODEL=Doubao-Seed-2.0-lite
20+
# ANSPIRE_LLM_BASE_URL=https://open-gateway.anspire.cn/v6
21+
# ANSPIRE_LLM_ENABLED=true
1122
# 数据源配置
1223
# Tushare Pro Token(可选,从 https://tushare.pro/weborder/#/login?reg=834638 获取)
1324
TUSHARE_TOKEN=
@@ -20,6 +31,8 @@ TUSHARE_TOKEN=
2031
# LONGBRIDGE_ACCESS_TOKEN=
2132
# static_info 进程内缓存秒数,默认 86400;0=每次请求拉取
2233
# LONGBRIDGE_STATIC_INFO_TTL_SECONDS=86400
34+
# 连接关闭类异常后的冷却秒数,默认 15;冷却期内会临时跳过 Longbridge,避免请求级频繁重连
35+
# LONGBRIDGE_CONNECTION_COOLDOWN_SECONDS=15
2336
# Longbridge SDK 语言与 REPORT_LANGUAGE(zh/en)一致;SDK 日志写入 LOG_DIR/longbridge_sdk.log
2437
# 接入点(与 REPORT_LANGUAGE 无关;留空则用下列默认值):
2538
# LONGBRIDGE_HTTP_URL=https://openapi.longbridge.com
@@ -44,6 +57,7 @@ TUSHARE_TOKEN=
4457
# 完整说明:docs/LLM_CONFIG_GUIDE.md
4558
#
4659
# 【快速上手】填一个 API Key 即可运行,系统自动识别模型。
60+
# Anspire Open(一站式模型+搜索)→ 填 ANSPIRE_API_KEYS
4761
# Gemini(免费额度)→ 填 GEMINI_API_KEY
4862
# DeepSeek(性价比高)→ 填 DEEPSEEK_API_KEY
4963
# AIHubmix(聚合平台)→ 填 AIHUBMIX_KEY
@@ -58,6 +72,7 @@ GEMINI_API_KEY=
5872
# 多 Key 负载均衡:GEMINI_API_KEYS=key1,key2,key3
5973

6074
# DeepSeek(https://platform.deepseek.com)
75+
# 兼容默认:仅填 DEEPSEEK_API_KEY 时仍使用 deepseek-chat,并在日志提示迁移到 deepseek-v4-flash
6176
# DEEPSEEK_API_KEY=
6277

6378
# AIHubmix 聚合(https://aihubmix.com/?aff=CfMq)
@@ -81,6 +96,14 @@ GEMINI_API_KEY=
8196
# LLM_OLLAMA_MODELS=qwen3:8b
8297

8398
# 采样温度(0.0-2.0,默认 0.7;0 确定性最高,2 随机性最高)
99+
# Kimi K2.6 兼容来源:
100+
# - Moonshot API / 模型文档:https://platform.kimi.ai/docs/guide/kimi-k2-6-quickstart
101+
# - Moonshot 官方模型卡(评测默认 temperature = 1.0):https://huggingface.co/moonshotai/Kimi-K2.6
102+
# - LiteLLM OpenAI-Compatible 规范:https://docs.litellm.ai/docs/providers/openai_compatible
103+
# 当前仓库运行时依赖约束:litellm>=1.80.10,!=1.82.7,!=1.82.8,<2.0.0(显式排除 PyPI 事故版本,见 requirements.txt)。
104+
# 因此 kimi-k2.6 会自动改用 1.0,避免 API 拒绝请求;其他模型和 fallback 仍使用你配置的 LLM_TEMPERATURE。
105+
# Web 设置页 / 桌面端导入不会静默清空或改写 LLM_TEMPERATURE;只在真正发请求前按 Kimi 要求临时归一化。
106+
# 如果主模型切回非 Kimi,原本配置的温度会自动恢复;最小回滚方式是回退本次 Kimi 固定温度改动。
84107
# LLM_TEMPERATURE=0.7
85108

86109
# --- 多渠道配置(可选,也可在 Web 设置页配置)---
@@ -89,37 +112,144 @@ GEMINI_API_KEY=
89112
# 示例:DeepSeek + Gemini 双渠道
90113
# LLM_CHANNELS=deepseek,gemini
91114
# LLM_DEEPSEEK_API_KEY=sk-xxx
92-
# LLM_DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
93-
# LLM_DEEPSEEK_MODELS=deepseek-chat
115+
# LLM_DEEPSEEK_BASE_URL=https://api.deepseek.com
116+
# LLM_DEEPSEEK_MODELS=deepseek-v4-flash,deepseek-v4-pro
94117
# LLM_GEMINI_API_KEYS=key1,key2
95-
# LLM_GEMINI_MODELS=gemini-2.5-flash
118+
# LLM_GEMINI_MODELS=gemini-3.1-pro-preview
96119
#
97120
# 示例:自定义 API 端点(第三方代理 / 聚合平台 / 转发站)
98121
# LLM_CHANNELS=my_proxy
99122
# LLM_MY_PROXY_BASE_URL=https://your-proxy.example.com/v1
100123
# LLM_MY_PROXY_API_KEY=sk-xxx
101-
# LLM_MY_PROXY_MODELS=gpt-4o-mini,claude-3-5-sonnet
124+
# LLM_MY_PROXY_MODELS=gpt-5.5,claude-sonnet-4-6
102125
# LLM_MY_PROXY_PROTOCOL=openai
103126
#
104127
# 示例:Ollama 本地模型(无需 API Key)
105128
# LLM_CHANNELS=ollama
106129
# LLM_OLLAMA_BASE_URL=http://localhost:11434
107130
# LLM_OLLAMA_MODELS=qwen3:8b,llama3.2
108-
109-
# 高级:模型路由 YAML 配置(可选,参考 litellm_config.example.yaml)
131+
#
132+
# 常用厂商模板(任选其一复制到 .env;完整说明见 docs/llm-providers.md)
133+
#
134+
# Anspire Open(共享搜索与 LLM Key,OpenAI Compatible)
135+
# LLM_CHANNELS=anspire
136+
# LLM_ANSPIRE_PROTOCOL=openai
137+
# LLM_ANSPIRE_BASE_URL=https://open-gateway.anspire.cn/v6(示例)
138+
# LLM_ANSPIRE_API_KEY=sk-xxx
139+
# LLM_ANSPIRE_MODELS=Doubao-Seed-2.0-lite,Doubao-Seed-2.0-pro(示例模型)
140+
# LITELLM_MODEL=openai/Doubao-Seed-2.0-lite(示例)
141+
#
142+
# AIHubmix 聚合平台(OpenAI Compatible)
143+
# LLM_CHANNELS=aihubmix
144+
# LLM_AIHUBMIX_PROTOCOL=openai
145+
# LLM_AIHUBMIX_BASE_URL=https://aihubmix.com/v1
146+
# LLM_AIHUBMIX_API_KEY=sk-xxx
147+
# LLM_AIHUBMIX_MODELS=gpt-5.5,claude-sonnet-4-6,gemini-3.1-pro-preview
148+
# LITELLM_MODEL=openai/gpt-5.5
149+
#
150+
# OpenAI 官方
151+
# LLM_CHANNELS=openai
152+
# LLM_OPENAI_PROTOCOL=openai
153+
# LLM_OPENAI_BASE_URL=https://api.openai.com/v1
154+
# LLM_OPENAI_API_KEY=sk-xxx
155+
# LLM_OPENAI_MODELS=gpt-5.5,gpt-5.4-mini
156+
# LITELLM_MODEL=openai/gpt-5.5
157+
#
158+
# DeepSeek 官方
159+
# LLM_CHANNELS=deepseek
160+
# LLM_DEEPSEEK_PROTOCOL=deepseek
161+
# LLM_DEEPSEEK_BASE_URL=https://api.deepseek.com
162+
# LLM_DEEPSEEK_API_KEY=sk-xxx
163+
# LLM_DEEPSEEK_MODELS=deepseek-v4-flash,deepseek-v4-pro
164+
# LITELLM_MODEL=deepseek/deepseek-v4-flash
165+
#
166+
# Gemini 官方(官方协议,Base URL 留空)
167+
# LLM_CHANNELS=gemini
168+
# LLM_GEMINI_PROTOCOL=gemini
169+
# LLM_GEMINI_API_KEY=xxx
170+
# LLM_GEMINI_MODELS=gemini-3.1-pro-preview,gemini-3-flash-preview
171+
# LITELLM_MODEL=gemini/gemini-3.1-pro-preview
172+
#
173+
# Anthropic Claude 官方(官方协议,Base URL 留空)
174+
# LLM_CHANNELS=anthropic
175+
# LLM_ANTHROPIC_PROTOCOL=anthropic
176+
# LLM_ANTHROPIC_API_KEY=sk-ant-xxx
177+
# LLM_ANTHROPIC_MODELS=claude-sonnet-4-6,claude-opus-4-7
178+
# LITELLM_MODEL=anthropic/claude-sonnet-4-6
179+
#
180+
# Kimi / Moonshot(OpenAI Compatible)
181+
# LLM_CHANNELS=moonshot
182+
# LLM_MOONSHOT_PROTOCOL=openai
183+
# LLM_MOONSHOT_BASE_URL=https://api.moonshot.cn/v1
184+
# LLM_MOONSHOT_API_KEY=sk-xxx
185+
# LLM_MOONSHOT_MODELS=kimi-k2.6,kimi-k2.5
186+
# LITELLM_MODEL=openai/kimi-k2.6
187+
#
188+
# 通义千问 DashScope(OpenAI Compatible)
189+
# LLM_CHANNELS=dashscope
190+
# LLM_DASHSCOPE_PROTOCOL=openai
191+
# LLM_DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
192+
# LLM_DASHSCOPE_API_KEY=sk-xxx
193+
# LLM_DASHSCOPE_MODELS=qwen3.6-plus,qwen3.6-flash
194+
# LITELLM_MODEL=openai/qwen3.6-plus
195+
#
196+
# 智谱 GLM(OpenAI Compatible)
197+
# LLM_CHANNELS=zhipu
198+
# LLM_ZHIPU_PROTOCOL=openai
199+
# LLM_ZHIPU_BASE_URL=https://open.bigmodel.cn/api/paas/v4
200+
# LLM_ZHIPU_API_KEY=xxx
201+
# LLM_ZHIPU_MODELS=glm-5.1,glm-4.7-flash
202+
# LITELLM_MODEL=openai/glm-5.1
203+
#
204+
# MiniMax(OpenAI Compatible)
205+
# 来源:官方 OpenAI API 兼容文档 https://platform.minimax.io/docs/api-reference/text-chat
206+
# LiteLLM 通过 openai/<model> 路由到兼容 Chat Completions 的 Base URL。
207+
# LLM_CHANNELS=minimax
208+
# LLM_MINIMAX_PROTOCOL=openai
209+
# LLM_MINIMAX_BASE_URL=https://api.minimax.io/v1
210+
# LLM_MINIMAX_API_KEY=xxx
211+
# LLM_MINIMAX_MODELS=MiniMax-M2.7,MiniMax-M2.7-highspeed
212+
# LITELLM_MODEL=openai/MiniMax-M2.7
213+
#
214+
# 火山方舟 / 豆包(OpenAI Compatible,按实际开通地域调整 endpoint)
215+
# 来源:火山方舟在线推理 / Responses API 文档 https://www.volcengine.com/docs/82379/2121998
216+
# LiteLLM 通过 openai/<model> 路由到兼容 Chat Completions 的 Base URL。
217+
# LLM_CHANNELS=volcengine
218+
# LLM_VOLCENGINE_PROTOCOL=openai
219+
# LLM_VOLCENGINE_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
220+
# LLM_VOLCENGINE_API_KEY=xxx
221+
# LLM_VOLCENGINE_MODELS=doubao-seed-1-6-251015,doubao-seed-1-6-thinking-251015
222+
# LITELLM_MODEL=openai/doubao-seed-1-6-251015
223+
#
224+
# 硅基流动 SiliconFlow(OpenAI Compatible)
225+
# 来源:官方模型列表 https://docs.siliconflow.cn/quickstart/models
226+
# LLM_CHANNELS=siliconflow
227+
# LLM_SILICONFLOW_PROTOCOL=openai
228+
# LLM_SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1
229+
# LLM_SILICONFLOW_API_KEY=sk-xxx
230+
# LLM_SILICONFLOW_MODELS=deepseek-ai/DeepSeek-V3.2,Qwen/Qwen3-235B-A22B-Thinking-2507
231+
# LITELLM_MODEL=openai/deepseek-ai/DeepSeek-V3.2
232+
#
233+
# OpenRouter(OpenAI Compatible)
234+
# 来源:官方 Models API https://openrouter.ai/docs/api/api-reference/models/get-models
235+
# LLM_CHANNELS=openrouter
236+
# LLM_OPENROUTER_PROTOCOL=openai
237+
# LLM_OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
238+
# LLM_OPENROUTER_API_KEY=sk-or-xxx
239+
# LLM_OPENROUTER_MODELS=~anthropic/claude-sonnet-latest,~openai/gpt-latest
240+
# LITELLM_MODEL=openai/~anthropic/claude-sonnet-latest
241+
242+
# 高级:模型路由 YAML 配置(可选,参考 docs/examples/litellm_config.example.yaml)
110243
# LITELLM_CONFIG=./litellm_config.yaml
111244

112245
# ===================================
113246
# 搜索引擎配置(用于获取股票新闻)
114247
# ===================================
115-
#Anspire Search API Keys (支持多个,逗号分隔)
116-
# 获取: https://aisearch.anspire.cn/
117-
ANSPIRE_API_KEYS=
118248
# Bocha API Keys(中文搜索优化,支持AI摘要,支持多个,逗号分隔)
119249
# 获取: https://open.bocha.cn/
120250
# BOCHA_API_KEYS=your_bocha_key_here
121251
# MiniMax API Key(Coding Plan Web Search,支持多个,逗号分隔)
122-
# 获取: https://platform.minimaxi.com/
252+
# 获取: https://platform.minimax.io/
123253
# MINIMAX_API_KEYS=your_minimax_key_here
124254
# Tavily API Keys(支持多个,逗号分隔)
125255
TAVILY_API_KEYS=
@@ -216,6 +346,16 @@ AGENT_SKILLS=
216346
# 策略路由模式(auto=根据市场状态自动选择 / manual=使用 AGENT_SKILLS 列表)
217347
# AGENT_SKILL_ROUTING=auto
218348

349+
# 事件告警监控(schedule 模式后台轮询;触发后复用已配置通知渠道)
350+
# 兼容性说明:本节仅新增告警规则配置,不会修改模型名、provider、Base URL、LiteLLM 或 LLM 配置语义;回退只需关闭/移除事件监控配置。
351+
# 支持规则:
352+
# price_cross — 价格突破阈值,direction: above / below,字段: price
353+
# price_change_percent — 涨跌幅阈值,direction: up / down,字段: change_pct(单位:%)
354+
# volume_spike — 成交量放大,字段: multiplier(相对近 20 日均量倍数)
355+
# AGENT_EVENT_MONITOR_ENABLED=false
356+
# AGENT_EVENT_MONITOR_INTERVAL_MINUTES=5
357+
# AGENT_EVENT_ALERT_RULES_JSON=[{"stock_code":"600519","alert_type":"price_cross","direction":"above","price":1800},{"stock_code":"300750","alert_type":"price_change_percent","direction":"down","change_pct":3.0},{"stock_code":"000858","alert_type":"volume_spike","multiplier":2.5}]
358+
219359
# ===================================
220360
# 通知渠道配置(可同时配置多个,全部推送)
221361
# ===================================
@@ -269,13 +409,25 @@ AGENT_SKILLS=
269409
#
270410
# CUSTOM_WEBHOOK_URLS=https://oapi.dingtalk.com/robot/send?access_token=xxx,https://hooks.slack.com/services/xxx
271411
# CUSTOM_WEBHOOK_BEARER_TOKEN= # 可选,用于需要认证的 Webhook (Header Authorization: Bearer <token>)
272-
# WEBHOOK_VERIFY_SSL=true # 默认校验。设为 false 可支持自签名证书。警告:禁用后存在 MITM 劫持风险,仅限可信内网
412+
# CUSTOM_WEBHOOK_BODY_TEMPLATE= # 可选,全局 JSON body 模板,会覆盖 Bark/Slack/Discord 等自动 payload;推荐 $content_json/$title_json
413+
# WEBHOOK_VERIFY_SSL=true # 默认校验;影响读取该配置的 webhook-style HTTPS 通知请求。设为 false 可支持自签名证书。警告:禁用后存在 MITM 劫持风险,仅限可信内网
273414
#
274415
# 【方式六】Pushover 配置
275416
# 注册Pushover账号,并创建应用Token https://pushover.net/apps/build
276417
# PUSHOVER_USER_KEY=
277418
# PUSHOVER_API_TOKEN=
278419
#
420+
# 【方式六扩展】ntfy 配置
421+
# NTFY_URL 必须包含 topic path,例如 https://ntfy.sh/my-topic 或 https://self-hosted:port/my-topic
422+
# 系统会解析 topic,并使用 ntfy JSON publish API 发送 Markdown 文本。
423+
# NTFY_URL=
424+
# NTFY_TOKEN= # 可选,用于需要 Bearer Token 的 topic 或自建 ntfy server
425+
#
426+
# 【方式六扩展】Gotify 配置
427+
# GOTIFY_URL 是 Gotify server base URL,不包含 /message;系统会拼接 /message 并用 X-Gotify-Key Header 发送 token。
428+
# GOTIFY_URL=
429+
# GOTIFY_TOKEN= # Gotify application token
430+
#
279431
# 【方式七】PushPlus 配置(国内推送服务,推荐)
280432
# 注册PushPlus账号并获取Token https://www.pushplus.plus
281433
# PUSHPLUS_TOKEN=
@@ -320,6 +472,10 @@ AGENT_SKILLS=
320472
# 注册Server酱3账号并获取SendKey https://sc3.ft07.com/
321473
# SERVERCHAN3_SENDKEY=
322474
#
475+
# 【方式十一】AstrBot 配置
476+
# ASTRBOT_URL=
477+
# ASTRBOT_TOKEN= # 可选,用于需要 Bearer Token 的 AstrBot Webhook
478+
#
323479
# 【高级配置】消息长度限制(字节)
324480
# 超过限制会自动分批发送,一般无需修改
325481
# FEISHU_MAX_BYTES=20000 # 飞书限制约 20KB,默认 20000 字节
@@ -333,6 +489,22 @@ AGENT_SKILLS=
333489
# MD2IMG_ENGINE=wkhtmltoimage # wkhtmltoimage(默认) | markdown-to-file(emoji 更好,需 npm i -g markdown-to-file)
334490
# 转图工具:wkhtmltopdf (apt install wkhtmltopdf / brew install wkhtmltopdf),或 markdown-to-file
335491
#
492+
# 【通知路由策略】(Issue #1200 P3)
493+
# 默认留空:该类型通知发送到所有已配置渠道。填写后仅发送到列出的已配置渠道。
494+
# 允许值:wechat,feishu,telegram,email,pushover,ntfy,gotify,pushplus,serverchan3,custom,discord,slack,astrbot
495+
# NOTIFICATION_REPORT_CHANNELS=
496+
# NOTIFICATION_ALERT_CHANNELS=
497+
# NOTIFICATION_SYSTEM_ERROR_CHANNELS=
498+
#
499+
# 【通知降噪机制】(Issue #1200 P4)
500+
# 默认全部关闭;仅影响静态通知渠道,不影响机器人触发会话回执。
501+
# NOTIFICATION_DEDUP_TTL_SECONDS=0 # 同一稳定去重 key 在 TTL 内只发送一次;0 关闭
502+
# NOTIFICATION_COOLDOWN_SECONDS=0 # 同一冷却 key 在窗口内限频;0 关闭
503+
# NOTIFICATION_QUIET_HOURS= # 静默时段,格式 HH:MM-HH:MM,支持跨午夜
504+
# NOTIFICATION_TIMEZONE= # 静默时段时区,如 Asia/Shanghai;留空跟随 TZ/系统本地时区
505+
# NOTIFICATION_MIN_SEVERITY= # info,warning,error,critical;留空保持现状
506+
# NOTIFICATION_DAILY_DIGEST_ENABLED=false # 预留配置;当前不会发送每日摘要
507+
#
336508
# 【实时行情预取】(Issue #455)
337509
# PREFETCH_REALTIME_QUOTES=true # 设为 false 可禁用,避免 efinance/akshare_em 全市场拉取;tushare 为单股接口,预取仅拉首股
338510

@@ -414,6 +586,7 @@ SCHEDULE_ENABLED=false
414586
# 每日执行时间(HH:MM 格式,24小时制)
415587
SCHEDULE_TIME=18:00
416588
# 定时模式启动时是否立即执行一次分析(true/false)
589+
# 若未显式设置,定时模式会沿用 RUN_IMMEDIATELY 的运行时覆盖语义以兼容旧配置
417590
SCHEDULE_RUN_IMMEDIATELY=true
418591
# 非定时模式启动时是否立即执行一次分析(true/false)
419592
RUN_IMMEDIATELY=true
@@ -438,6 +611,8 @@ PROXY_PORT=10809
438611
LOG_DIR=./logs
439612
# 日志级别(DEBUG/INFO/WARNING/ERROR)
440613
LOG_LEVEL=INFO
614+
# LiteLLM 内部日志级别(DEBUG/INFO/WARNING/ERROR/CRITICAL;默认 WARNING;排查内部流式/路由细节时可临时设为 DEBUG)
615+
# LITELLM_LOG_LEVEL=WARNING
441616
# 最大并发线程数(建议保持低并发防封禁)
442617
MAX_WORKERS=3
443618
# 是否启用调试日志

.gitattributes

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,20 @@
22
# 多个并发 PR 向 [Unreleased] 末尾追加条目时,Git 直接取两边所有行而不产生冲突标记。
33
# 适用于 append-only 的 changelog 文件。
44
docs/CHANGELOG.md merge=union
5+
6+
# Documentation image/design assets are binary. Keep GitHub review diffs from
7+
# trying to decode moved binary files as UTF-8.
8+
sources/**/*.ai binary
9+
sources/**/*.gif binary
10+
sources/**/*.ico binary
11+
sources/**/*.jpg binary
12+
sources/**/*.jpeg binary
13+
sources/**/*.png binary
14+
sources/**/*.psd binary
15+
docs/assets/**/*.ai binary
16+
docs/assets/**/*.gif binary
17+
docs/assets/**/*.ico binary
18+
docs/assets/**/*.jpg binary
19+
docs/assets/**/*.jpeg binary
20+
docs/assets/**/*.png binary
21+
docs/assets/**/*.psd binary

0 commit comments

Comments
 (0)