From 1f8e36eb1c81f11a0998d7abb2d664181bd79ab6 Mon Sep 17 00:00:00 2001 From: ouhaolan Date: Fri, 10 Apr 2026 16:11:01 +0800 Subject: [PATCH] =?UTF-8?q?1.ai=E7=9F=A5=E8=AF=86=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AiAssistantReportController.java | 26 +++++++++++++++++++ .../AiAssistantReportMapper.java | 10 +++++++ .../src/main/resources/application-local.yaml | 10 ++++++- .../src/main/resources/application.yaml | 12 +++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) diff --git a/yudao-module-ydoyun/src/main/java/cn/iocoder/yudao/module/ydoyun/controller/admin/aiassistantreport/AiAssistantReportController.java b/yudao-module-ydoyun/src/main/java/cn/iocoder/yudao/module/ydoyun/controller/admin/aiassistantreport/AiAssistantReportController.java index f492415..58703a5 100644 --- a/yudao-module-ydoyun/src/main/java/cn/iocoder/yudao/module/ydoyun/controller/admin/aiassistantreport/AiAssistantReportController.java +++ b/yudao-module-ydoyun/src/main/java/cn/iocoder/yudao/module/ydoyun/controller/admin/aiassistantreport/AiAssistantReportController.java @@ -10,7 +10,13 @@ import cn.iocoder.yudao.module.ydoyun.controller.admin.aiassistantreport.vo.AiAs import cn.iocoder.yudao.module.ydoyun.controller.admin.aiassistantreport.vo.AiAssistantReportPageReqVO; import cn.iocoder.yudao.module.ydoyun.controller.admin.aiassistantreport.vo.AiAssistantReportRespVO; import cn.iocoder.yudao.module.ydoyun.controller.admin.aiassistantreport.vo.AiAssistantReportSaveReqVO; +import cn.iocoder.yudao.module.ydoyun.controller.admin.aiassistantreport.vo.DifyKbInfoRespVO; +import cn.iocoder.yudao.module.ydoyun.controller.admin.aiassistantreport.vo.DifyKbSyncLogPageReqVO; +import cn.iocoder.yudao.module.ydoyun.controller.admin.aiassistantreport.vo.DifyKbSyncLogRespVO; +import cn.iocoder.yudao.module.ydoyun.controller.admin.aiassistantreport.vo.DifyKbSyncReqVO; +import cn.iocoder.yudao.module.ydoyun.controller.admin.aiassistantreport.vo.DifyKbSyncRespVO; import cn.iocoder.yudao.module.ydoyun.controller.admin.aiassistantreport.vo.ReportCountByDateVO; +import cn.iocoder.yudao.module.ydoyun.service.aiassistantdifykb.AiAssistantDifyKbService; import cn.iocoder.yudao.module.ydoyun.service.aiassistantreport.AiAssistantReportDetailService; import cn.iocoder.yudao.module.ydoyun.service.aiassistantreport.AiAssistantReportService; import cn.iocoder.yudao.module.ydoyun.service.aiassistantreport.DailyReportDifyParseService; @@ -38,6 +44,7 @@ public class AiAssistantReportController { private final AiAssistantReportService aiAssistantReportService; private final AiAssistantReportDetailService aiAssistantReportDetailService; private final DailyReportDifyParseService dailyReportDifyParseService; + private final AiAssistantDifyKbService aiAssistantDifyKbService; @PostMapping("/save") @Operation(summary = "保存报告单据") @@ -118,4 +125,23 @@ public class AiAssistantReportController { @Valid @RequestBody AiAssistantReportDifyParseReqVO reqVO) { return success(dailyReportDifyParseService.parseReportToDiagnosisRows(reqVO.getText())); } + + @PostMapping("/dify-knowledge/sync") + @Operation(summary = "将当前租户、当前模块下全部店长历史汇报聚合同步到 Dify 知识库") + public CommonResult syncDifyKnowledge(@Valid @RequestBody DifyKbSyncReqVO reqVO) { + return success(aiAssistantDifyKbService.syncToDify(reqVO)); + } + + @GetMapping("/dify-knowledge/info") + @Operation(summary = "查询当前租户某模块已绑定的 Dify 知识库元数据") + public CommonResult getDifyKbInfo( + @Parameter(description = "模块编码") @RequestParam(value = "moduleCode", required = false) String moduleCode) { + return success(aiAssistantDifyKbService.getKbInfo(moduleCode)); + } + + @GetMapping("/dify-knowledge/sync-logs") + @Operation(summary = "Dify 知识库同步记录分页") + public CommonResult> getDifyKbSyncLogs(@Valid DifyKbSyncLogPageReqVO reqVO) { + return success(aiAssistantDifyKbService.getSyncLogPage(reqVO)); + } } diff --git a/yudao-module-ydoyun/src/main/java/cn/iocoder/yudao/module/ydoyun/dal/mysql/aiassistantreport/AiAssistantReportMapper.java b/yudao-module-ydoyun/src/main/java/cn/iocoder/yudao/module/ydoyun/dal/mysql/aiassistantreport/AiAssistantReportMapper.java index 821684d..37e4ac1 100644 --- a/yudao-module-ydoyun/src/main/java/cn/iocoder/yudao/module/ydoyun/dal/mysql/aiassistantreport/AiAssistantReportMapper.java +++ b/yudao-module-ydoyun/src/main/java/cn/iocoder/yudao/module/ydoyun/dal/mysql/aiassistantreport/AiAssistantReportMapper.java @@ -38,6 +38,16 @@ public interface AiAssistantReportMapper extends BaseMapperX selectListByModuleCodeAllReporters(String moduleCode) { + return selectList(new LambdaQueryWrapperX() + .eq(AiAssistantReportDO::getModuleCode, moduleCode) + .orderByDesc(AiAssistantReportDO::getReportTime) + .orderByDesc(AiAssistantReportDO::getId)); + } + /** * 同一报告人、同一模块编码、同一报告日期的唯一一条(用于 upsert) */ diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 4b21bd0..a60338a 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -265,4 +265,12 @@ justauth: cache: type: REDIS prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: - timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 \ No newline at end of file + timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 + +# 衣朵云:Dify 知识库 Dataset API(dataset- 密钥,勿与 app- 混用) +# base-url 与控制台「知识库 API」文档中的 Service 根地址一致(示例多为 :8888/v1) +ydoyun: + dify: + knowledge: + base-url: http://118.253.178.8:8888/v1 + api-key: dataset-3x6sAy0cDvYuK1fLK3NHkUhI \ No newline at end of file diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index e210a1f..388945e 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -382,4 +382,16 @@ ydoyun: daily-report-parse: base-url: http://118.253.178.8:5001/v1 api-key: app-aaqeCTv9ywLOIl4WvhD3P9xS + # 每日汇报:知识库 Service API(路径前缀 /v1,与官方文档「知识库 API」一致) + # base-url 须与控制台「API」页展示的 Service API 根地址一致(常见为控制台域名或 Nginx 端口 + /v1,如 :8888/v1)。 + # 若与对话应用 API(如 :5001/v1)不是同一入口,请勿混用端口。 + # api-key:知识库「API」页的 Dataset 密钥(dataset- 开头),勿用 app- 对话密钥。 + knowledge: + base-url: http://118.253.178.8:8888/v1 + api-key: dataset-your-knowledge-api-key + # 浏览器访问 Dify 控制台根地址(无尾斜杠)。拼接:{console-base-url}/datasets/{datasetId}/documents/{documentId} + # 注意:控制台走 /console/api 会话鉴权,与 dataset- 的 Service API 不同;须用「同一工作空间」账号登录网页,否则会 403。 + console-base-url: http://118.253.178.8:8888 + # 新建知识库权限:only_me 易导致「已登录但无权限」;建议 all_team_members(同空间成员可在网页查看) + dataset-permission: all_team_members