From e3c01fb5540279359b3423839dc5ff2829da2330 Mon Sep 17 00:00:00 2001 From: AAEE86 Date: Mon, 21 Sep 2026 09:58:46 +0800 Subject: [PATCH] fix: avoid usage payload json recursion overflow --- crates/aether-admin/src/observability/usage.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/aether-admin/src/observability/usage.rs b/crates/aether-admin/src/observability/usage.rs index a1cadfef4..8b8465508 100644 --- a/crates/aether-admin/src/observability/usage.rs +++ b/crates/aether-admin/src/observability/usage.rs @@ -1409,7 +1409,6 @@ pub fn admin_usage_record_json( "provider": item.provider_name, "model": item.model, "target_model": item.target_model, - "response_model": item.provider_response_model(), "input_tokens": item.input_tokens, "effective_input_tokens": admin_usage_effective_input_tokens(item), "output_tokens": item.output_tokens, @@ -1447,6 +1446,11 @@ pub fn admin_usage_record_json( let object = payload .as_object_mut() .expect("admin usage record payload should be an object"); + // 大型 json! 宏接近 Rust 的递归展开上限,响应模型在宏展开后补入即可避免编译失败。 + object.insert( + "response_model".to_string(), + json!(item.provider_response_model()), + ); object.insert( "end_to_end_time_ms".to_string(), json!(admin_usage_metadata_u64(item, "end_to_end_time_ms")),