让免费层限流的报告跟真实限流一致,并给少一块结果的静默失败留下函数名和错误类型。

Co-Authored-By: Grok (agent loop)
This commit is contained in:
jesse-ux
2026-10-15 23:12:56 +08:00
co-authored by Grok (agent loop)
parent e4ff62c738
commit a7162db271
38 changed files with 706 additions and 129 deletions
+12 -3
View File
@@ -29,8 +29,13 @@ VEDASTRO_RANGE_SCAN_NETWORK_ENABLED=0
VEDASTRO_CACHE_TTL_SECONDS=604800
VEDASTRO_OFFICIAL_FULL_SNAPSHOT_CACHE_TTL_SECONDS=604800
# 网关离线排队作业,和下面的免费层限流不是一回事。
VEDASTRO_GATEWAY_QUEUE_ENABLED=1
VEDASTRO_FREE_TIER_QUEUE=1
# 免费层限流由有没有 API key,以及 MAX_REQUESTS / WINDOW_SECONDS 是否大于 0 决定。
# VEDASTRO_FREE_TIER_QUEUE 已废弃,留着也不会开关限流。
# VEDASTRO_FREE_TIER_MAX_REQUESTS=5
# VEDASTRO_FREE_TIER_WINDOW_SECONDS=60
# VEDASTRO_FREE_TIER_WAIT_BUDGET_SECONDS=
VEDASTRO_FAIL_OPEN_LOCAL=1
VEDASTRO_FULL_CATALOG_SAMPLE_LIMIT=0
@@ -78,7 +83,8 @@ npm run dev --prefix frontend
- 不要让浏览器直连 VedAstro,也不要把 `VEDASTRO_API_KEY` 放进前端。
- `VEDASTRO_CACHE_TTL_SECONDS` 和 `VEDASTRO_OFFICIAL_FULL_SNAPSHOT_CACHE_TTL_SECONDS` 用于缓存官方或自建服务结果。
- `VEDASTRO_GATEWAY_QUEUE_ENABLED=1` / `VEDASTRO_FREE_TIER_QUEUE=1` 用于把昂贵或被限流的外部请求排队。
- `VEDASTRO_GATEWAY_QUEUE_ENABLED=1` 只打开网关自己的离线排队作业。
- 免费层限流不看 `VEDASTRO_FREE_TIER_QUEUE`(这个名字已废弃,不控制行为)。没有 API key,并且 `VEDASTRO_FREE_TIER_MAX_REQUESTS` 与 `VEDASTRO_FREE_TIER_WINDOW_SECONDS` 都大于 0 时,官方公共端点会限流。等待上限是 `VEDASTRO_FREE_TIER_WAIT_BUDGET_SECONDS`。
- 如果 VedAstro 官方或自建服务不可达,`VEDASTRO_FAIL_OPEN_LOCAL=1` 会保持本地 Jyotish 引擎继续输出,并在 Technique Audit Table 里降级标注。
- Gateway 不会默认声称跑完 641 项;它只把 capability catalog、dynamic selection、cache/queue/fallback 状态作为证据边界交给 strict workflow。
@@ -187,7 +193,10 @@ VEDASTRO_ENABLE_NETWORK=1
VEDASTRO_TIMEOUT_SECONDS=20
VEDASTRO_CACHE_TTL_SECONDS=600
VEDASTRO_OFFICIAL_FULL_SNAPSHOT_CACHE_TTL_SECONDS=600
VEDASTRO_FREE_TIER_QUEUE=1
# 免费层限流由 API key 与 MAX_REQUESTS / WINDOW_SECONDS 决定。
# VEDASTRO_FREE_TIER_QUEUE 已废弃,不控制限流。
# VEDASTRO_FREE_TIER_MAX_REQUESTS=5
# VEDASTRO_FREE_TIER_WINDOW_SECONDS=60
# 可选
# VEDASTRO_API_KEY=sk_live_xxx
```