package com.zy.ai.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.zy.ai.entity.AiTokenUsage;
|
import com.zy.ai.mapper.AiTokenUsageMapper;
|
import com.zy.ai.service.AiTokenUsageService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
@Slf4j
|
@Service("aiTokenUsageService")
|
public class AiTokenUsageServiceImpl extends ServiceImpl<AiTokenUsageMapper, AiTokenUsage>
|
implements AiTokenUsageService {
|
|
@Override
|
public void incrementTokens(long promptTokens, long completionTokens, long totalTokens, long callCount) {
|
if (promptTokens <= 0 && completionTokens <= 0 && totalTokens <= 0 && callCount <= 0) {
|
return;
|
}
|
try {
|
int rows = baseMapper.incrementTokens(promptTokens, completionTokens, totalTokens, callCount);
|
if (rows == 0) {
|
// Row doesn't exist, create it
|
AiTokenUsage usage = new AiTokenUsage();
|
usage.setId(1);
|
usage.setPromptTokens(promptTokens);
|
usage.setCompletionTokens(completionTokens);
|
usage.setTotalTokens(totalTokens);
|
usage.setLlmCallCount(callCount);
|
save(usage);
|
}
|
} catch (Exception e) {
|
log.warn("Failed to increment AI token usage: {}", e.getMessage());
|
}
|
}
|
}
|