 Observability
Observability
  # 可观测性
# 大语言模型 (LLM) 可观测性
某些 ChatLanguageModel 和 StreamingChatLanguageModel 的具体实现 (opens new window)(请参阅“可观测性”列)支持配置 ChatModelListener,用于监听以下事件:
- 向 LLM 发出的请求
- LLM 返回的响应
- 错误事件
这些事件包含多个属性,详见 OpenTelemetry 生成式 AI 语义约定 (opens new window),包括:
- 请求属性:
- 模型
- 温度 (Temperature)
- Top P
- 最大令牌数 (Max Tokens)
- 消息
- 工具 (Tools)
 
- 响应属性:
- ID
- 模型
- 令牌使用量 (Token Usage)
- 结束原因 (Finish Reason)
- 助手消息 (Assistant Message)
 
以下是使用 ChatModelListener 的示例:
ChatModelListener listener = new ChatModelListener() {
    @Override
    public void onRequest(ChatModelRequestContext requestContext) {
        ChatModelRequest request = requestContext.request();
        Map<Object, Object> attributes = requestContext.attributes();
        ...
    }
    @Override
    public void onResponse(ChatModelResponseContext responseContext) {
        ChatModelResponse response = responseContext.response();
        ChatModelRequest request = responseContext.request();
        Map<Object, Object> attributes = responseContext.attributes();
        ...
    }
    @Override
    public void onError(ChatModelErrorContext errorContext) {
        Throwable error = errorContext.error();
        ChatModelRequest request = errorContext.request();
        ChatModelResponse partialResponse = errorContext.partialResponse();
        Map<Object, Object> attributes = errorContext.attributes();
        ...
    }
};
ChatLanguageModel model = OpenAiChatModel.builder()
        .apiKey(System.getenv("OPENAI_API_KEY"))
        .modelName(GPT_4_O_MINI)
        .listeners(List.of(listener))
        .build();
model.generate("Tell me a joke about Java");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
attributes 映射允许在 onRequest、onResponse 和 onError 方法之间传递信息,从而实现更灵活的事件处理。
编辑  (opens new window)
  上次更新: 2025/10/15, 09:17:23
