| | |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse saveMemberAnswer(ApiMemberTalkMemberAnswerSavaDto dto) { |
| | | String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); |
| | | String memberTalkId = dto.getMemberTalkId(); |
| | | String content = dto.getContent(); |
| | | |
| | | AiMemberTalk aiMemberTalk = this.getById(memberTalkId); |
| | | if (ObjectUtil.isNull(aiMemberTalk)){ |
| | | throw new FebsException("对话不存在"); |
| | | } |
| | | aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),2,content,new Date()); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public Flux<FebsResponse> answer(AiTalkAnswerStreamDto dto) { |
| | | |
| | | String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); |
| | |
| | | memberTalkItemQuery.orderByDesc(AiMemberTalkItem::getCreatedTime); |
| | | memberTalkItemQuery.last("limit 1"); |
| | | AiMemberTalkItem aiMemberTalkItem = aiMemberTalkItemService.getByQuery(memberTalkItemQuery); |
| | | aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),2,reqContext,new Date()); |
| | | String question = aiMemberTalkItem.getContext(); |
| | | |
| | | String prompt = this.buildPrompt(aiProductRole.getPromptHead(), aiProductRole.getPromptTemplate(), type); |
| | | String prompt = this.buildPrompt(question,reqContext,aiProductRole.getPromptHead(), aiProductRole.getPromptTemplate(), type); |
| | | |
| | | |
| | | List<LlmStrategyDto> llmStrategyDtoList = new ArrayList<>(); |
| | | LlmStrategyDto llmStrategyDto = this.buildLlmStrategyDtoList(prompt, 1); |
| | | llmStrategyDtoList.add(llmStrategyDto); |
| | | llmStrategyDto = this.buildLlmStrategyDtoList(question, 3); |
| | | llmStrategyDtoList.add(llmStrategyDto); |
| | | llmStrategyDto = this.buildLlmStrategyDtoList(reqContext, 2); |
| | | llmStrategyDtoList.add(llmStrategyDto); |
| | |
| | | return llmStrategyFactory.getCalculationStrategyMap().get(modelName).llmInvokeStreamingNoThink(llmStrategyDtoList); |
| | | } |
| | | |
| | | private String buildPrompt(String promptHead, String promptTemplate,Integer type){ |
| | | private String buildPrompt(String question,String answer,String promptHead, String promptTemplate,Integer type){ |
| | | AiPromptJsonReq aiPromptJsonReq = new AiPromptJsonReq(); |
| | | aiPromptJsonReq.setTask(promptHead); |
| | | aiPromptJsonReq.setRule(promptTemplate); |
| | | aiPromptJsonReq.setQuestion( question); |
| | | aiPromptJsonReq.setTask( promptHead); |
| | | aiPromptJsonReq.setRule( promptTemplate); |
| | | String contentByCode = AiTalkOutputEnum.HIGH_LIGHT.getContentByType(type); |
| | | aiPromptJsonReq.setOutputFormat(contentByCode); |
| | | |