src/main/java/cc/mrbird/febs/ai/controller/product/ApiProductController.java
@@ -4,6 +4,7 @@ import cc.mrbird.febs.ai.req.product.ApiProductPageDto; import cc.mrbird.febs.ai.res.product.ApiProductInfoVo; import cc.mrbird.febs.ai.res.product.ApiProductVo; import cc.mrbird.febs.ai.res.productPoint.ApiProductPointVo; import cc.mrbird.febs.ai.service.AiProductService; import cc.mrbird.febs.common.entity.FebsResponse; import io.swagger.annotations.Api; @@ -51,4 +52,14 @@ return aiProductService.productInfo(dto); } @ApiOperation(value = "知识点列表", notes = "知识点列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiProductPointVo.class) }) @PostMapping(value = "/pointInfoList") public FebsResponse pointInfoList(@RequestBody @Validated ApiProductInfoDto dto) { return aiProductService.pointInfoList(dto); } } src/main/java/cc/mrbird/febs/ai/res/memberTalk/ApiMemberTalkStreamVo.java
@@ -13,4 +13,7 @@ @ApiModelProperty(value = "消息") private String content; @ApiModelProperty(value = "思考") private String reasoningContent; } src/main/java/cc/mrbird/febs/ai/service/AiProductService.java
@@ -26,4 +26,6 @@ FebsResponse productList(ApiProductPageDto dto); FebsResponse productInfo(ApiProductInfoDto dto); FebsResponse pointInfoList(ApiProductInfoDto dto); } src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java
@@ -7,6 +7,7 @@ import cc.mrbird.febs.ai.req.product.ApiProductPageDto; import cc.mrbird.febs.ai.res.product.ApiProductInfoVo; import cc.mrbird.febs.ai.res.product.ApiProductVo; import cc.mrbird.febs.ai.res.productPoint.ApiProductPointVo; import cc.mrbird.febs.ai.service.*; import cc.mrbird.febs.common.entity.FebsResponse; import cn.hutool.core.util.StrUtil; @@ -15,6 +16,8 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; /** * AI产品表 Service实现类 @@ -80,4 +83,12 @@ vo.setProductPointList(aiProductPointService.listByProductId(id)); return new FebsResponse().success().data(vo); } @Override public FebsResponse pointInfoList(ApiProductInfoDto dto) { String id = dto.getId(); AiProduct entity = this.getById(id); List<ApiProductPointVo> apiProductPointVos = aiProductPointService.listByProductId(id); return new FebsResponse().success().data(apiProductPointVos); } } src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
@@ -379,6 +379,7 @@ .model("ep-20250805124033-lhxbf") .messages(messages) .stream(true) .thinking(new ChatCompletionRequest.ChatCompletionRequestThinking("enabled")) .temperature(0.7) .topP(0.9) .maxTokens(2048) @@ -396,11 +397,18 @@ return new FebsResponse().success().data("END"); } Object contentObj = choice.getMessage().getContent(); String content = contentObj == null ? "" : contentObj.toString(); ApiMemberTalkStreamVo apiMemberTalkStreamVo = new ApiMemberTalkStreamVo(); // 判断是否触发深度思考,触发则打印模型输出的思维链内容 ChatMessage message = choice.getMessage(); if (message.getReasoningContent()!= null &&!message.getReasoningContent().isEmpty()) { apiMemberTalkStreamVo.setReasoningContent(message.getReasoningContent()); System.out.print(message.getReasoningContent()); } String content = message.getContent() == null ? "" : message.getContent().toString(); apiMemberTalkStreamVo.setContent(content); System.out.print(content); return new FebsResponse().success().data(apiMemberTalkStreamVo); }) .onErrorResume(throwable -> {