Commit ded3b853 by Shucai Chen

修复

parent 710c5e1c
...@@ -88,6 +88,8 @@ public interface ErrorCodeConstants { ...@@ -88,6 +88,8 @@ public interface ErrorCodeConstants {
ErrorCode FASTGPT_REF_ERROR = new ErrorCode(1_022_009_005, "未找到知识库引用"); ErrorCode FASTGPT_REF_ERROR = new ErrorCode(1_022_009_005, "未找到知识库引用");
ErrorCode FASTGPT_DETAIL_ERROR = new ErrorCode(1_022_009_005, "未找到知识库详情"); ErrorCode FASTGPT_DETAIL_ERROR = new ErrorCode(1_022_009_005, "未找到知识库详情");
ErrorCode FASTGPT_CONFIG_ERROR = new ErrorCode(1_022_009_006, "FastGPT 知识库配置错误,未找到对应的知识库");
ErrorCode FASTGPT_UPLOAD_FAILED = new ErrorCode(1_022_009_007, "上传至 FastGPT 知识库失败");
ErrorCode AGENT_POLICY_NOTIFY_NOT_EXISTS = new ErrorCode(1_043_001_001, "操作失败,找不到该记录"); ErrorCode AGENT_POLICY_NOTIFY_NOT_EXISTS = new ErrorCode(1_043_001_001, "操作失败,找不到该记录");
} }
...@@ -144,4 +144,29 @@ public class AiChatAnalysisController { ...@@ -144,4 +144,29 @@ public class AiChatAnalysisController {
return success(true); return success(true);
} }
// ==================== 知识库上传与测试 ====================
@PostMapping("/upload-to-fastgpt")
@Operation(summary = "上传总结至 FastGPT 测试知识库")
public CommonResult<Boolean> uploadToFastGpt(
@Valid @RequestBody AiChatSummaryUploadReqVO reqVO) {
chatAnalysisService.uploadToFastGpt(reqVO);
return success(true);
}
@PostMapping("/upload-to-production-fastgpt")
@Operation(summary = "上传总结至 FastGPT 正式知识库")
public CommonResult<Boolean> uploadToProductionFastGpt(
@Valid @RequestBody AiChatSummaryUploadReqVO reqVO) {
chatAnalysisService.uploadToProductionFastGpt(reqVO);
return success(true);
}
@PostMapping("/test-fastgpt")
@Operation(summary = "测试 FastGPT 知识库连接")
public CommonResult<String> testFastGpt(@Valid @RequestBody AiChatTestFastGptReqVO reqVO) {
String result = chatAnalysisService.testFastGpt(reqVO.getQuestion(), reqVO.getCategory());
return success(result);
}
} }
package cn.iocoder.yudao.module.ai.controller.admin.chat.vo.analysis;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@Schema(description = "管理后台 - 对话分析总结上传至 FastGPT 知识库 Request VO")
@Data
public class AiChatSummaryUploadReqVO {
@Schema(description = "总结记录编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotNull(message = "总结记录编号不能为空")
private Long id;
@Schema(description = "知识库标题(用户问题)", requiredMode = Schema.RequiredMode.REQUIRED, example = "公租房申请条件是什么")
@NotBlank(message = "知识库标题不能为空")
private String kbTitle;
@Schema(description = "知识库正文内容(AI 回答)", requiredMode = Schema.RequiredMode.REQUIRED, example = "公租房申请需要满足以下条件...")
@NotBlank(message = "知识库正文内容不能为空")
private String kbContent;
@Schema(description = "分类(公租房/长租房)", requiredMode = Schema.RequiredMode.REQUIRED, example = "公租房")
@NotBlank(message = "分类不能为空")
private String category;
}
...@@ -34,4 +34,27 @@ public interface AiChatAnalysisService { ...@@ -34,4 +34,27 @@ public interface AiChatAnalysisService {
PageResult<AiChatSummaryDO> getChatSummaryPage(AiChatSummaryPageReqVO pageReqVO); PageResult<AiChatSummaryDO> getChatSummaryPage(AiChatSummaryPageReqVO pageReqVO);
void updateSummaryStatus(AiSummaryUpdateStatusReqVO reqVO); void updateSummaryStatus(AiSummaryUpdateStatusReqVO reqVO);
/**
* 上传总结至 FastGPT 测试知识库
*
* @param reqVO 上传请求
*/
void uploadToFastGpt(AiChatSummaryUploadReqVO reqVO);
/**
* 上传总结至 FastGPT 正式知识库(测试通过后调用)
*
* @param reqVO 上传请求
*/
void uploadToProductionFastGpt(AiChatSummaryUploadReqVO reqVO);
/**
* 测试 FastGPT 知识库连接
*
* @param question 测试问题
* @param category 分类(公租房/长租房)
* @return FastGPT 的回复内容
*/
String testFastGpt(String question, String category);
} }
...@@ -73,4 +73,35 @@ export const ChatAnalysisApi = { ...@@ -73,4 +73,35 @@ export const ChatAnalysisApi = {
data data
}) })
}, },
// 上传至 FastGPT 测试知识库
uploadToFastGpt: async (data: {
id: number
kbTitle: string
kbContent: string
category: string
}) => {
return await request.post({
url: `/ai/chat/analysis/upload-to-fastgpt`,
data
})
},
// 上传至 FastGPT 正式知识库(测试通过后调用)
uploadToProductionFastGpt: async (data: {
id: number
kbTitle: string
kbContent: string
category: string
}) => {
return await request.post({
url: `/ai/chat/analysis/upload-to-production-fastgpt`,
data
})
},
// 测试 FastGPT 知识库连接
testFastGpt: async (data: { question: string; category: string }) => {
return await request.post({
url: `/ai/chat/analysis/test-fastgpt`,
data
})
},
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment