Skip to content

Commit aa86e3f

Browse files
committed
feat(chat): 添加批量获取语义解析信息功能
- 在ChatManageService中新增getParseInfos方法用于批量查询 - 实现ChatManageServiceImpl中的getParseInfos具体逻辑 - 优化SqlReplaceHelper中的代码格式化处理 - 支持根据questionId批量获取多个语义解析结果
1 parent 0bbab5e commit aa86e3f

3 files changed

Lines changed: 13 additions & 1 deletion

File tree

chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,6 @@ public interface ChatManageService {
5252
List<ChatParseDO> batchAddParse(ChatParseReq chatParseReq, ChatParseResp chatParseResp);
5353

5454
SemanticParseInfo getParseInfo(Long questionId, int parseId);
55+
56+
List<SemanticParseInfo> getParseInfos(Long questionId);
5557
}

chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,4 +244,13 @@ public SemanticParseInfo getParseInfo(Long questionId, int parseId) {
244244
return JSONObject.parseObject(chatParseDO.getParseInfo(), SemanticParseInfo.class);
245245
}
246246
}
247+
248+
@Override
249+
public List<SemanticParseInfo> getParseInfos(Long questionId) {
250+
List<ChatParseDO> chatParseDOs =
251+
chatQueryRepository.getParseInfoList(Collections.singletonList(questionId));
252+
return chatParseDOs.stream().map(chatParseDO -> JSONObject
253+
.parseObject(chatParseDO.getParseInfo(), SemanticParseInfo.class))
254+
.collect(Collectors.toList());
255+
}
247256
}

common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlReplaceHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,8 @@ private static void replaceFieldsInPlainOneSelect(Map<String, String> fieldNameM
194194
setOperationList.getSelects().forEach(subSelectBody -> {
195195
if (subSelectBody instanceof PlainSelect) {
196196
PlainSelect subPlainSelect = (PlainSelect) subSelectBody;
197-
replaceFieldsInPlainOneSelect(fieldNameMap, exactReplace, subPlainSelect);
197+
replaceFieldsInPlainOneSelect(fieldNameMap, exactReplace,
198+
subPlainSelect);
198199
} else if (subSelectBody instanceof ParenthesedSelect) {
199200
replaceFieldsInPlainOneSelect(fieldNameMap, exactReplace,
200201
((ParenthesedSelect) subSelectBody).getPlainSelect());

0 commit comments

Comments
 (0)