mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
refactor: 将流式转换逐次 debug 日志替换为流结束时的汇总日志
This commit is contained in:
@@ -122,10 +122,6 @@ class CliEventMixin:
|
|||||||
provider_parser = get_parser_for_format(ctx.provider_api_format)
|
provider_parser = get_parser_for_format(ctx.provider_api_format)
|
||||||
if provider_parser:
|
if provider_parser:
|
||||||
parser = provider_parser
|
parser = provider_parser
|
||||||
logger.debug(
|
|
||||||
f"[{getattr(ctx, 'request_id', 'unknown')}] 使用 Provider 解析器: "
|
|
||||||
f"{ctx.provider_api_format} (client={ctx.client_api_format})"
|
|
||||||
)
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"[{getattr(ctx, 'request_id', 'unknown')}] 未找到 Provider 格式解析器: "
|
f"[{getattr(ctx, 'request_id', 'unknown')}] 未找到 Provider 格式解析器: "
|
||||||
@@ -538,11 +534,7 @@ class CliEventMixin:
|
|||||||
)
|
)
|
||||||
result = _format_converted_events_to_sse(converted_events, client_format)
|
result = _format_converted_events_to_sse(converted_events, client_format)
|
||||||
if result:
|
if result:
|
||||||
logger.debug(
|
ctx.stream_conversion_event_count += len(converted_events)
|
||||||
f"[{getattr(ctx, 'request_id', 'unknown')}] 流式转换: "
|
|
||||||
f"{provider_format}->{client_format}, events={len(converted_events)}, "
|
|
||||||
f"first_output={result[0][:100] if result else 'empty'}..."
|
|
||||||
)
|
|
||||||
return result, converted_events
|
return result, converted_events
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@@ -301,6 +301,16 @@ class CliMonitorMixin:
|
|||||||
# 在记录统计前,允许子类从 parsed_chunks 中提取额外的元数据
|
# 在记录统计前,允许子类从 parsed_chunks 中提取额外的元数据
|
||||||
self._finalize_stream_metadata(ctx)
|
self._finalize_stream_metadata(ctx)
|
||||||
|
|
||||||
|
# 流式格式转换汇总日志
|
||||||
|
if ctx.stream_conversion_event_count > 0:
|
||||||
|
logger.debug(
|
||||||
|
"[{}] 流式转换完成: {}->{}, total_events={}",
|
||||||
|
self.request_id[:8],
|
||||||
|
ctx.provider_api_format,
|
||||||
|
ctx.client_api_format,
|
||||||
|
ctx.stream_conversion_event_count,
|
||||||
|
)
|
||||||
|
|
||||||
# 流未正常完成(如上游截断/连接中断)且无 token 数据时,
|
# 流未正常完成(如上游截断/连接中断)且无 token 数据时,
|
||||||
# 从已收集的文本和请求体估算 tokens,避免 usage 记录为 0
|
# 从已收集的文本和请求体估算 tokens,避免 usage 记录为 0
|
||||||
if (
|
if (
|
||||||
|
|||||||
@@ -133,6 +133,7 @@ class StreamContext:
|
|||||||
|
|
||||||
# 流式格式转换状态(跨 chunk 追踪)
|
# 流式格式转换状态(跨 chunk 追踪)
|
||||||
stream_conversion_state: StreamState | None = None
|
stream_conversion_state: StreamState | None = None
|
||||||
|
stream_conversion_event_count: int = 0 # 流式转换成功的 event 计数
|
||||||
|
|
||||||
def reset_for_retry(self) -> None:
|
def reset_for_retry(self) -> None:
|
||||||
"""
|
"""
|
||||||
@@ -163,6 +164,7 @@ class StreamContext:
|
|||||||
self.final_response = None
|
self.final_response = None
|
||||||
self.proxy_info = None
|
self.proxy_info = None
|
||||||
self.stream_conversion_state = None
|
self.stream_conversion_state = None
|
||||||
|
self.stream_conversion_event_count = 0
|
||||||
self.needs_conversion = False
|
self.needs_conversion = False
|
||||||
self.selected_base_url = None
|
self.selected_base_url = None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user