Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

S0025136190 6 mesiacov pred
rodič
commit
31cee6fb78

+ 14 - 3
takai-admin/src/main/java/com/takai/web/controller/takaiai/TakaiAiController.java

@@ -300,9 +300,15 @@ public class TakaiAiController extends BaseController {
      * @return
      */
     @PostMapping("/getSliceList")
-    public AjaxResult getDialogDetail(@RequestBody TakaiSliceParams params) {
-        JSONObject json = takaiAisService.getSliceList(params);
-        return success(json);
+    public TableDataInfo getDialogDetail(@RequestBody TakaiSliceParams params) {
+
+        List<TakaiSliceInfo> s = takaiAisService.selectByDocumentId(params.getDocument_id());
+        PageHelper.startPage(params.getPageNum(), params.getPageSize(), "").setReasonable(true);
+        List<TakaiSliceInfo> list = takaiAisService.selectByDocumentId(params.getDocument_id());
+        return getDataTableResultTotal(list, Long.valueOf(s.size()));
+
+//        JSONObject json = takaiAisService.getSliceList(params);
+//        return success(json);
     }
 
     /**
@@ -459,6 +465,11 @@ public class TakaiAiController extends BaseController {
         return success(strList);
     }
 
+    @PostMapping("/add/slice")
+    public AjaxResult addSlice(@RequestBody TakaiSliceUpdateParams params) {
+        return success(takaiAisService.addSlice(params));
+    }
+
     @GetMapping("/test")
     public AjaxResult test(){
         TakaiMediaReplacement vo = takaiAisService.getTakaiMediaReplacement();

+ 3 - 1
takai-admin/src/main/resources/application.yml

@@ -166,7 +166,7 @@ deepseek:
   #base url
   baseurl: http://10.1.27.4:18079
 #  baseurl: http://xia0miduo.gicp.net:6001
-#  baseurl: https://rag.ryuiso.com:61079
+#  baseurl: http://192.168.3.209:18079
   #创建知识库
   createKnowledge: /rag/create_collection
   #删除知识库
@@ -187,5 +187,7 @@ deepseek:
   asyncCompletions: /rag/query
   #删除知识文件
   deleteDoc: /rag/delete_doc
+  #新增切片
+  addSlice: /rag/insert_slice
   #提示词
   prompt: 你是总结和提问大师。你只根据用户的对话记录,推演出用户接下来可能提出的问题,不要杜撰问题。可以参考应用的名称和应用的简介。 你必须遵守以下要求:1. 不要输出用户问过的问题;2. 你需要输出3个问题供用户选择。3. 你只需要输出问题,不需要解释,不需要提问。4. 你的问题可以是空的,但你不能杜撰问题。5. 问题需要站在使用这个应用的人的视角提出,因此你要注意提问的语气和人称代词。不要用您这个字。你一定要按照以下格式输出:{"问题":["xxx","xxx","xxx"]}

+ 21 - 0
takai-ai/src/main/java/com/takai/ai/domain/entity/TakaiSliceInfo.java

@@ -0,0 +1,21 @@
+package com.takai.ai.domain.entity;
+
+import com.takai.common.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+public class TakaiSliceInfo extends BaseEntity {
+
+    private String sliceId;
+
+    private String knowledgeId;
+
+    private String documentId;
+
+    private int sliceIndex;
+
+    private int sliceType;
+
+    private String sliceText;
+
+}

+ 2 - 0
takai-ai/src/main/java/com/takai/ai/domain/entity/TakaiSliceUpdateParams.java

@@ -13,4 +13,6 @@ public class TakaiSliceUpdateParams {
 
     private String documentId;
 
+    private String fileName;
+
 }

+ 15 - 0
takai-ai/src/main/java/com/takai/ai/mapper/TakaiSliceInfoMapper.java

@@ -0,0 +1,15 @@
+package com.takai.ai.mapper;
+
+
+import com.takai.ai.domain.entity.TakaiSliceInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface TakaiSliceInfoMapper {
+
+    List<TakaiSliceInfo> selectByDocumentId(@Param("documentId") String documentId);
+
+    TakaiSliceInfo selectBySliceId(@Param("sliceId") String sliceId);
+
+}

+ 6 - 0
takai-ai/src/main/java/com/takai/ai/service/ITakaiAiService.java

@@ -87,4 +87,10 @@ public interface ITakaiAiService
 
     TakaiMediaReplacement getTakaiMediaReplacement();
 
+    int addSlice(TakaiSliceUpdateParams params);
+
+    List<TakaiSliceInfo> selectByDocumentId(String documentId);
+
+    TakaiSliceInfo selectBySliceId(String sliceId);
+
 }

+ 74 - 27
takai-ai/src/main/java/com/takai/ai/service/impl/TakaiAiServiceImpl.java

@@ -93,6 +93,9 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
     @Autowired
     public RedisTemplate redisTemplate;
 
+    @Autowired
+    private TakaiSliceInfoMapper takaiSliceInfoMapper;
+
     public static final String START_SIGN = "【";
     public static final String END_SIGN = "】";
     public static final String SYMBOL = "【示意图序号";
@@ -844,34 +847,35 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
 
     @Override
     public JSONObject getSliceList(TakaiSliceParams params) {
-        String url = deepseekConfig.getBaseurl() + deepseekConfig.getSlicePage();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("document_id", params.getDocument_id());
-        jsonObject.put("knowledge_id", params.getKnowledge_id());
-        jsonObject.put("text", params.getText());
-        jsonObject.put("pageNum", params.getPageNum());
-        jsonObject.put("pageSize", params.getPageSize());
-
-        RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8"), jsonObject.toJSONString());
-        Request request = buildPostRequest(url, requestBody);
 
-        OkHttpClient client = buildOkHttpClient();
-        Response response = null;
-        try {
-            response = client.newCall(request).execute();
-            if (response.isSuccessful()) {
-                String body = response.body().string();
-                JSONObject obj = JSON.parseObject(body);
-                Integer code = obj.getInteger("code");
-                if (code == 200) {
-                    return obj;
-                }
-            } else {
-                logger.info("获取切片列表调用python接口失败,返回状态码:{}", response.code());
-            }
-        } catch (IOException e) {
-            logger.error("获取切片列表调用python接口失败", e.getMessage());
-        }
+//        String url = deepseekConfig.getBaseurl() + deepseekConfig.getSlicePage();
+//        JSONObject jsonObject = new JSONObject();
+//        jsonObject.put("document_id", params.getDocument_id());
+//        jsonObject.put("knowledge_id", params.getKnowledge_id());
+//        jsonObject.put("text", params.getText());
+//        jsonObject.put("pageNum", params.getPageNum());
+//        jsonObject.put("pageSize", params.getPageSize());
+//
+//        RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8"), jsonObject.toJSONString());
+//        Request request = buildPostRequest(url, requestBody);
+//
+//        OkHttpClient client = buildOkHttpClient();
+//        Response response = null;
+//        try {
+//            response = client.newCall(request).execute();
+//            if (response.isSuccessful()) {
+//                String body = response.body().string();
+//                JSONObject obj = JSON.parseObject(body);
+//                Integer code = obj.getInteger("code");
+//                if (code == 200) {
+//                    return obj;
+//                }
+//            } else {
+//                logger.info("获取切片列表调用python接口失败,返回状态码:{}", response.code());
+//            }
+//        } catch (IOException e) {
+//            logger.error("获取切片列表调用python接口失败", e.getMessage());
+//        }
         return null;
     }
 
@@ -887,6 +891,7 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
                 String body = response.body().string();
                 JSONObject obj = JSON.parseObject(body);
                 Integer code = obj.getInteger("code");
+                logger.info("删除切片调用python接口成功,返回结果:{}", body);
                 if (code == 200) {
                     return 1;
                 }
@@ -956,6 +961,48 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
         return mrVo;
     }
 
+    @Override
+    public int addSlice(TakaiSliceUpdateParams params) {
+        String url = deepseekConfig.getBaseurl() + deepseekConfig.getAddSlice();
+        TakaiDocument info = takaiDocumentMapper.selectTargetDocument(TakaiDocument.builder().documentId(params.getDocumentId()).build());
+        if(info != null){
+            JSONObject json = new JSONObject();
+            json.put("knowledge_id", params.getKnowledgeId());
+            json.put("document_id", params.getDocumentId());
+            json.put("slice_text", params.getSliceText());
+            json.put("doc_name", info.getName());
+
+            RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8"), json.toJSONString());
+
+            Request request = buildPostRequest(url, requestBody);
+            OkHttpClient client = buildOkHttpClient();
+            try {
+                Response response = client.newCall(request).execute();
+                if (response.isSuccessful()) {
+                    String body = response.body().string();
+                    JSONObject obj = JSON.parseObject(body);
+                    Integer code = obj.getInteger("code");
+                    if (code == 200) {
+                        return 1;
+                    }
+                }
+            }catch (Exception e) {
+                logger.error("新增切片调用python接口失败", e.getMessage());
+            }
+        }
+        return 0;
+    }
+
+    @Override
+    public List<TakaiSliceInfo> selectByDocumentId(String documentId) {
+        return takaiSliceInfoMapper.selectByDocumentId(documentId);
+    }
+
+    @Override
+    public TakaiSliceInfo selectBySliceId(String sliceId) {
+        return takaiSliceInfoMapper.selectBySliceId(sliceId);
+    }
+
     private JSONObject analysisFile(List<UploadDocumentParams> result, TakaiDocumentSettings settings, String flag) {
         String url = deepseekConfig.getBaseurl() + deepseekConfig.getUploadKnowledge();
         JSONObject json = new JSONObject();

+ 40 - 0
takai-ai/src/main/resources/mapper/takaiai/TakaiSliceInfoMapper.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.takai.ai.mapper.TakaiSliceInfoMapper">
+	
+	<resultMap type="com.takai.ai.domain.entity.TakaiSliceInfo" id="SliceInfoResult" >
+		<id property="sliceId" column="slice_id"/>
+		<result property="knowledgeId" column="knowledge_id"/>
+		<result property="documentId" column="document_id"/>
+		<result property="sliceIndex" column="slice_index"/>
+		<result property="sliceType" column="slice_type"/>
+		<result property="sliceText" column="slice_text"/>
+		<result property="createBy"   column="create_by"   />
+		<result property="createTime" column="create_time" />
+		<result property="updateBy"   column="update_by"   />
+		<result property="updateTime" column="update_time" />
+	</resultMap>
+
+	<sql id="Base_Column">
+		slice_id, knowledge_id, document_id, slice_index, slice_type, slice_text, create_by, create_time, update_by, update_time
+	</sql>
+
+	<select id="selectByDocumentId" resultMap="SliceInfoResult">
+		select
+		<include refid="Base_Column"/>
+		from slice_info
+		where document_id = #{documentId}
+		order by slice_index asc
+	</select>
+
+	<select id="selectBySliceId" resultMap="SliceInfoResult">
+			select
+			<include refid="Base_Column"/>
+			from slice_info
+			where slice_id = #{sliceId}
+	</select>
+
+	
+</mapper> 

+ 10 - 0
takai-common/src/main/java/com/takai/common/config/DeepseekConfig.java

@@ -32,6 +32,8 @@ public class DeepseekConfig {
 
     private String deleteDoc;
 
+    private String addSlice;
+
     public String getBaseurl() {
         return baseurl;
     }
@@ -127,4 +129,12 @@ public class DeepseekConfig {
     public void setDeleteDoc(String deleteDoc) {
         this.deleteDoc = deleteDoc;
     }
+
+    public String getAddSlice() {
+        return addSlice;
+    }
+
+    public void setAddSlice(String addSlice) {
+        this.addSlice = addSlice;
+    }
 }