83
如何做好大模型应用的日志记录和链路追踪?
编程能力与工程实践中等
📋 面试问题
如何做好大模型应用的日志记录和链路追踪?
✅ 期望回答
三层日志体系:
应用日志(结构化JSON):
import structlog
logger = structlog.get_logger()
logger.info('llm_call',
request_id='req_123',
user_id='user_456',
model='gpt-4',
prompt_tokens=250,
completion_tokens=180,
total_tokens=430,
latency_ms=1234,
cost=0.0035,
)
LLM调用日志(关键字段):
- 请求ID(贯穿全链路)
- 用户ID
- 模型名称、参数(temperature/max_tokens)
- Token数(prompt/completion/total)
- 延迟(TTFT/total_time)
- 成本(按token计费)
- 截断的Prompt和Response(采样存储)
- OpenTelemetry + Jaeger/Zipkin
- 每条请求打上trace_id -> 追踪在API Gateway、推理引擎、工具调用之间的完整路径
- 关键Span:User Request -> Auth -> API Gateway -> LLM Service -> Tool -> LLM -> Response
- 实时日志 -> ElasticSearch + Kibana
- 长期存档 -> S3/对象存储(成本低)
- 聚合指标 -> Prometheus + Grafana
#日志#链路追踪#可观测性