mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
进行第一阶段的调试修复
- 修复了记忆系统中的空指针问题,原因:更新对话缓存计数时使用的经过裁剪的主题路径。 - 修复了切片评估无法正常执行的问题,原因:切片不存在前后序引用时,也试图获取前后序切片的摘要,此时应当抛出空指针异常,但由于任务以Callable<Void>提交,且未处于try-catch代码块内部,导致异常被“吞掉” - 更新激活切片时将根据id获取到切片对应的消息列表 - 调整了README文件中的不准确描述
This commit is contained in:
@@ -353,7 +353,7 @@ public class MemoryGraph extends PersistableObject {
|
||||
//每日刷新缓存
|
||||
checkCacheDate();
|
||||
//检测缓存并更新计数, 查看是否需要放入缓存
|
||||
updateCacheCounter(path);
|
||||
updateCacheCounter(topicPath);
|
||||
//查看是否存在缓存,如果存在,则直接返回
|
||||
if (memorySliceCache.containsKey(path)) {
|
||||
return memorySliceCache.get(path);
|
||||
|
||||
@@ -71,8 +71,8 @@ public class SliceSelectEvaluator extends Model {
|
||||
List<SliceSummary> sliceSummaryList = new ArrayList<>();
|
||||
//映射查找键值
|
||||
Map<Long, SliceSummary> map = new HashMap<>();
|
||||
setSliceSummaryList(memoryResult, sliceSummaryList, map);
|
||||
try {
|
||||
setSliceSummaryList(memoryResult, sliceSummaryList, map);
|
||||
EvaluatorBatchInput batchInput = EvaluatorBatchInput.builder()
|
||||
.text(evaluatorInput.getInput())
|
||||
.memory_slices(sliceSummaryList)
|
||||
@@ -87,6 +87,7 @@ public class SliceSelectEvaluator extends Model {
|
||||
.summary(sliceSummary.getSummary())
|
||||
.date(sliceSummary.getDate())
|
||||
.build();
|
||||
setEvaluatedSliceMessages(evaluatedSlice, memoryResult, sliceSummary.getId());
|
||||
queue.offer(evaluatedSlice);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@@ -101,17 +102,39 @@ public class SliceSelectEvaluator extends Model {
|
||||
return queue.stream().toList();
|
||||
}
|
||||
|
||||
private void setEvaluatedSliceMessages(EvaluatedSlice evaluatedSlice, MemoryResult memoryResult, Long id) {
|
||||
//补充消息列表
|
||||
for (MemorySliceResult memorySliceResult : memoryResult.getMemorySliceResult()) {
|
||||
if (memorySliceResult.getMemorySlice().getTimestamp().equals(id)) {
|
||||
evaluatedSlice.setChatMessages(memorySliceResult.getMemorySlice().getChatMessages());
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (MemorySlice memorySlice : memoryResult.getRelatedMemorySliceResult()) {
|
||||
if (memorySlice.getTimestamp().equals(id)) {
|
||||
evaluatedSlice.setChatMessages(memorySlice.getChatMessages());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setSliceSummaryList(MemoryResult memoryResult, List<SliceSummary> sliceSummaryList, Map<Long, SliceSummary> map) {
|
||||
for (MemorySliceResult memorySliceResult : memoryResult.getMemorySliceResult()) {
|
||||
|
||||
SliceSummary sliceSummary = new SliceSummary();
|
||||
sliceSummary.setId(memorySliceResult.getMemorySlice().getTimestamp());
|
||||
String stringBuilder = memorySliceResult.getSliceBefore().getSummary() +
|
||||
"\r\n" +
|
||||
memorySliceResult.getMemorySlice().getSummary() +
|
||||
"\r\n" +
|
||||
memorySliceResult.getSliceAfter().getSummary();
|
||||
sliceSummary.setSummary(stringBuilder);
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (memorySliceResult.getSliceBefore() != null) {
|
||||
stringBuilder.append(memorySliceResult.getSliceBefore().getSummary())
|
||||
.append("\r\n");
|
||||
}
|
||||
stringBuilder.append(memorySliceResult.getMemorySlice().getSummary());
|
||||
if (memorySliceResult.getSliceAfter() != null) {
|
||||
stringBuilder.append("\r\n")
|
||||
.append(memorySliceResult.getSliceAfter().getSummary())
|
||||
.append("\r\n");
|
||||
}
|
||||
sliceSummary.setSummary(stringBuilder.toString());
|
||||
Long timestamp = memorySliceResult.getMemorySlice().getTimestamp();
|
||||
sliceSummary.setDate(DateUtil.date(timestamp).toLocalDateTime().toLocalDate());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user