修复流式 AI 请求 max_tokens 不足导致 JSON 截断

此前流式 650 tokens,只够 4 个文字字段。新增 predicted_max
等 6 个字段后,中文解读经常超出上限致 JSON 不完整,触发重试。
现提升至 900 tokens(主请求 1200),并更新测试断言。
This commit is contained in:
2569718930@qq.com
2026-05-06 16:51:31 +08:00
parent a1d5435dd7
commit 4ed9321756
2 changed files with 5 additions and 5 deletions
+1 -1
View File
@@ -385,7 +385,7 @@ def test_city_ai_stream_request_only_asks_provider_for_observation_read():
user_payload = request_payload["messages"][1]["content"]
assert request_payload["stream"] is True
assert request_payload["max_tokens"] <= 650
assert request_payload["max_tokens"] <= 900
assert request_payload["max_tokens"] < scan_terminal_service.SCAN_AI_MAX_TOKENS
assert '"required_json_keys": ["metar_read_zh", "metar_read_en", "predicted_max", "range_low", "range_high", "unit", "confidence", "final_judgment_zh", "final_judgment_en", "reasoning_zh", "reasoning_en"]' in user_payload
assert "predicted_max" in user_payload
+4 -4
View File
@@ -188,14 +188,14 @@ SCAN_AI_MAX_TOKENS = _env_int(
)
SCAN_CITY_AI_MAX_TOKENS = _env_int(
"POLYWEATHER_SCAN_CITY_AI_MAX_TOKENS",
650,
min_value=300,
1200,
min_value=400,
max_value=64000,
)
SCAN_CITY_AI_STREAM_MAX_TOKENS = _env_int(
"POLYWEATHER_SCAN_CITY_AI_STREAM_MAX_TOKENS",
min(SCAN_CITY_AI_MAX_TOKENS, 650),
min_value=300,
min(SCAN_CITY_AI_MAX_TOKENS, 900),
min_value=400,
max_value=64000,
)