refactor(session): 清理代码 & RunnableConfig 传 sessionId
- AgentLoggingHook 改为从 config.metadata 读取 sessionId(线程安全) - 移除 AgentLoggingHook 调试用的 metadata 日志 - TokenTrackingChatModel 日志降为 debug - SessionContextHolder 移除未使用的 setAgentName/getAgentName - ChatService 清理无用 import - 修复 stream 路径下 ThreadLocal NPE
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package com.superbiz.agent.hook;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ai.chat.model.ChatModel;
|
||||
import org.springframework.ai.chat.model.ChatResponse;
|
||||
import org.springframework.ai.chat.prompt.Prompt;
|
||||
@@ -11,6 +13,8 @@ import reactor.core.publisher.Flux;
|
||||
*/
|
||||
public class TokenTrackingChatModel implements ChatModel {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(TokenTrackingChatModel.class);
|
||||
|
||||
private final ChatModel delegate;
|
||||
|
||||
public TokenTrackingChatModel(ChatModel delegate) {
|
||||
@@ -31,15 +35,16 @@ public class TokenTrackingChatModel implements ChatModel {
|
||||
|
||||
private void captureTokenUsage(ChatResponse response) {
|
||||
try {
|
||||
if (response.getMetadata() != null && response.getMetadata().getUsage() != null) {
|
||||
var usage = response.getMetadata().getUsage();
|
||||
Integer total = usage.getTotalTokens();
|
||||
if (total != null && total > 0) {
|
||||
TokenUsageHolder.set(total);
|
||||
}
|
||||
if (response.getMetadata() == null || response.getMetadata().getUsage() == null) {
|
||||
return;
|
||||
}
|
||||
var usage = response.getMetadata().getUsage();
|
||||
Integer total = usage.getTotalTokens();
|
||||
if (total != null && total > 0) {
|
||||
TokenUsageHolder.set(total);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 不中断模型调用
|
||||
log.debug("捕获 token 用量失败", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user