From 2465c228997816822eaeb621556f52173643e7c9 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 29 Sep 2025 15:11:40 +0800
Subject: [PATCH] feat(ai):为AiCompany实体添加知识库和分类字段

---
 src/main/java/cc/mrbird/febs/ai/util/KnowledgeBaseUtil.java |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/util/KnowledgeBaseUtil.java b/src/main/java/cc/mrbird/febs/ai/util/KnowledgeBaseUtil.java
index d156343..0ba8f5a 100644
--- a/src/main/java/cc/mrbird/febs/ai/util/KnowledgeBaseUtil.java
+++ b/src/main/java/cc/mrbird/febs/ai/util/KnowledgeBaseUtil.java
@@ -1,5 +1,6 @@
 package cc.mrbird.febs.ai.util;
 
+import cn.hutool.core.util.StrUtil;
 import com.aliyun.bailian20231229.models.*;
 import com.aliyun.teautil.models.RuntimeOptions;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -273,9 +274,11 @@
      * @param name        知识库名称
      * @return 如果成功,返回知识库ID;否则返回 null
      */
-    public static String createKnowledgeBase(String filePath, String workspaceId, String name) {
+    public static String createKnowledgeBase(String filePath, String workspaceId, String name,String categoryId) {
         // 设置默认值
-        String categoryId = "default";
+        if (StrUtil.isBlank(categoryId)){
+            categoryId = "default";
+        }
         String parser = "DASHSCOPE_DOCMIND";
         String sourceType = "DATA_CENTER_FILE";
         String structureType = "unstructured";
@@ -376,9 +379,11 @@
      * @param oldFileId   需要更新的文件的FileID
      * @return 如果成功,返回知识库ID;否则返回 null
      */
-    public static String updateKnowledgeBase(String filePath, String workspaceId, String indexId, String oldFileId) {
+    public static String updateKnowledgeBase(String filePath, String workspaceId, String indexId, String oldFileId, String categoryId) {
         // 设置默认值
-        String categoryId = "default";
+        if (StrUtil.isBlank(categoryId)){
+            categoryId = "default";
+        }
         String parser = "DASHSCOPE_DOCMIND";
         String sourceType = "DATA_CENTER_FILE";
         try {
@@ -450,8 +455,10 @@
             }
 
             // 步骤9:删除旧文件
-            System.out.println("步骤9:删除旧文件");
-            deleteIndexDocument(client, workspaceId, indexId, oldFileId);
+            if(StrUtil.isNotBlank(oldFileId)){
+                System.out.println("步骤9:删除旧文件");
+                deleteIndexDocument(client, workspaceId, indexId, oldFileId);
+            }
 
             System.out.println("阿里云百炼知识库更新成功!");
             return indexId;
@@ -507,11 +514,11 @@
     public static void main(String[] args) {
 
         String filePath = "D:\\项目\\大模型\\阿里云百炼\\知识库\\薪资谈判常见100问与答.md";
-        String indexId = "xlmj6e7ix1"; // 即 AddFile 接口返回的 FileId。您也可以在阿里云百炼控制台的应用数据页面,单击文件名称旁的 ID 图标获取。
-        String oldFileId = "file_5c9f7e4e0f3e4b4ea2bd208a1b4f5e6f_12629554";
+        String indexId = "xlmj6e7ix1";
+        String oldFileId = "file_e943bb6d305a49a5acb7781ca00d70dd_12629554";
 
         String workspaceId = WORKSPACE_ID;
-        String result = updateKnowledgeBase(filePath, workspaceId, indexId, oldFileId);
+        String result = updateKnowledgeBase(filePath, workspaceId, indexId, oldFileId,null);
         if (result != null) {
             System.out.println("知识库更新成功,返回知识库ID: " + result);
         } else {

--
Gitblit v1.9.1