From 4ed93217569388e29d0ee0b3117cedd2f22b9b7d Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Wed, 6 May 2026 16:51:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=81=E5=BC=8F=20AI=20?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=20max=5Ftokens=20=E4=B8=8D=E8=B6=B3=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=20JSON=20=E6=88=AA=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 此前流式 650 tokens,只够 4 个文字字段。新增 predicted_max 等 6 个字段后,中文解读经常超出上限致 JSON 不完整,触发重试。 现提升至 900 tokens(主请求 1200),并更新测试断言。 --- tests/test_web_observability.py | 2 +- web/scan_terminal_service.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_web_observability.py b/tests/test_web_observability.py index cb5a19be..fe9d4f97 100644 --- a/tests/test_web_observability.py +++ b/tests/test_web_observability.py @@ -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 diff --git a/web/scan_terminal_service.py b/web/scan_terminal_service.py index 892e5502..c5737c04 100644 --- a/web/scan_terminal_service.py +++ b/web/scan_terminal_service.py @@ -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, )