package com.vincent.rsf.server.ai.store;
|
|
import com.vincent.rsf.server.ai.config.AiDefaults;
|
import com.vincent.rsf.server.ai.store.support.AiRedisExecutor;
|
import com.vincent.rsf.server.ai.store.support.AiRedisKeys;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.stereotype.Component;
|
|
@Component
|
@RequiredArgsConstructor
|
public class AiToolResultStore {
|
|
private final AiRedisExecutor aiRedisExecutor;
|
private final AiRedisKeys aiRedisKeys;
|
|
public AiCachedToolResult getToolResult(Long tenantId, String requestId, String toolName, String toolInput) {
|
return aiRedisExecutor.readJson(aiRedisKeys.buildToolResultKey(tenantId, requestId, toolName, toolInput), AiCachedToolResult.class);
|
}
|
|
public void cacheToolResult(Long tenantId, String requestId, String toolName, String toolInput,
|
boolean success, String output, String errorMessage) {
|
aiRedisExecutor.writeJson(aiRedisKeys.buildToolResultKey(tenantId, requestId, toolName, toolInput),
|
AiCachedToolResult.builder()
|
.success(success)
|
.output(output)
|
.errorMessage(errorMessage)
|
.build(),
|
AiDefaults.TOOL_RESULT_CACHE_TTL_SECONDS);
|
}
|
}
|