| | |
| | | package cc.mrbird.febs.ai.service.impl; |
| | | |
| | | import cc.mrbird.febs.ai.enumerates.AiTypeEnum; |
| | | import cc.mrbird.febs.ai.entity.AiMemberTalkItem; |
| | | import cc.mrbird.febs.ai.mapper.AiMemberTalkItemMapper; |
| | | import cc.mrbird.febs.ai.req.ai.AiMessage; |
| | | import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto; |
| | | import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkItemVo; |
| | | import cc.mrbird.febs.ai.res.product.ApiProductVo; |
| | | import cc.mrbird.febs.ai.service.AiMemberTalkItemService; |
| | | import cc.mrbird.febs.ai.utils.UUID; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.volcengine.ark.runtime.model.completion.chat.ChatMessageRole; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | public class AiMemberTalkItemServiceImpl extends ServiceImpl<AiMemberTalkItemMapper, AiMemberTalkItem> implements AiMemberTalkItemService { |
| | | |
| | | private final AiMemberTalkItemMapper aiMemberTalkItemMapper; |
| | | |
| | | |
| | | @Override |
| | | public void add(String memberUuid, String id, int type, String resContext,Date createdTime) { |
| | |
| | | Page<ApiMemberTalkItemVo> pageListByQuery = aiMemberTalkItemMapper.getPageListByQuery(page, dto); |
| | | return new FebsResponse().success().data(pageListByQuery); |
| | | } |
| | | |
| | | @Override |
| | | public List<AiMessage> getQuestionUpDownContext(String memberTalkId, int code) { |
| | | List<AiMessage> aiMessages = new ArrayList<>(); |
| | | |
| | | LambdaQueryWrapper<AiMemberTalkItem> query = Wrappers.lambdaQuery(AiMemberTalkItem.class); |
| | | if (AiTypeEnum.QUESTION.getCode() == code){ |
| | | query.eq(AiMemberTalkItem::getType,AiTypeEnum.QUESTION_ANSWER.getCode()); |
| | | query.eq(AiMemberTalkItem::getMemberTalkId,memberTalkId); |
| | | query.orderByDesc(AiMemberTalkItem::getCreatedTime); |
| | | query.last("limit 1"); |
| | | List<AiMemberTalkItem> aiMemberTalkItems = aiMemberTalkItemMapper.selectList(query); |
| | | if (CollUtil.isNotEmpty(aiMemberTalkItems)){ |
| | | AiMessage assistantMessage = new AiMessage(); |
| | | assistantMessage.setRole(ChatMessageRole.ASSISTANT); |
| | | assistantMessage.setContent(aiMemberTalkItems.get(0).getContext()); |
| | | aiMessages.add(assistantMessage); |
| | | } |
| | | } |
| | | if (AiTypeEnum.ANSWER.getCode() == code){ |
| | | query.eq(AiMemberTalkItem::getType,AiTypeEnum.ANSWER_ANALYSIS.getCode()); |
| | | query.eq(AiMemberTalkItem::getMemberTalkId,memberTalkId); |
| | | query.orderByDesc(AiMemberTalkItem::getCreatedTime); |
| | | query.last("limit 1"); |
| | | List<AiMemberTalkItem> aiMemberTalkItems = aiMemberTalkItemMapper.selectList(query); |
| | | if (CollUtil.isNotEmpty(aiMemberTalkItems)){ |
| | | AiMessage assistantMessage = new AiMessage(); |
| | | assistantMessage.setRole(ChatMessageRole.ASSISTANT); |
| | | assistantMessage.setContent(aiMemberTalkItems.get(0).getContext()); |
| | | aiMessages.add(assistantMessage); |
| | | } |
| | | } |
| | | return aiMessages; |
| | | } |
| | | |
| | | } |