diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/TermDescMapper.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/TermDescMapper.java index a7ea1a65e..6abb739b1 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/TermDescMapper.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/TermDescMapper.java @@ -23,11 +23,15 @@ public class TermDescMapper extends BaseMapper { chatQueryContext.setOriQueryText(chatQueryContext.getQueryText()); } for (SchemaElement schemaElement : termDescriptionToMap) { + if (schemaElement.isDescriptionMapped()) { + continue; + } if (chatQueryContext.getQueryText().equals(schemaElement.getDescription())) { schemaElement.setDescriptionMapped(true); continue; } chatQueryContext.setQueryText(schemaElement.getDescription()); + break; } if (CollectionUtils.isEmpty(chatQueryContext.getMapInfo().getTermDescriptionToMap())) { chatQueryContext.setQueryText(chatQueryContext.getOriQueryText()); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java index f5ecc607d..46ca010d2 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ChatWorkflowEngine.java @@ -47,6 +47,8 @@ public class ChatWorkflowEngine { parseResult.setState(ParseResp.ParseState.FAILED); parseResult.setErrorMsg("No semantic entities can be mapped against user question."); queryCtx.setChatWorkflowState(ChatWorkflowState.FINISHED); + } else if (queryCtx.getMapInfo().needContinueMap()) { + queryCtx.setChatWorkflowState(ChatWorkflowState.MAPPING); } else { queryCtx.setChatWorkflowState(ChatWorkflowState.PARSING); }