lsc 2 months ago
parent
commit
64dd60338d
1 changed files with 96 additions and 0 deletions
  1. 96 0
      pbl.js

+ 96 - 0
pbl.js

@@ -829,6 +829,102 @@ router.route("/ragFolder").all(async (req, res, next) => {
     }
 });
 
+//召回测试
+router.route("/searchFolder").all(async (req, res, next) => {
+    let reqJson = req.body[0]
+    if (reqJson) {
+        try {
+            let filters = {}
+            let documentids = reqJson.documentids ? decodeURIComponent(reqJson.documentids).split(",").filter(id => id) : [];
+            let folderids = reqJson.folderids ? decodeURIComponent(reqJson.folderids).split(",").filter(id => id) : [];
+            filters = {
+                "$or": [
+                    { "collection_ids": { "$in": folderids } },
+                    { "document_id": { "$in": documentids } }
+                ]
+            };
+
+            let params = {
+                query: reqJson.query,
+                searchSettings: {
+                    useHybridSearch: reqJson.useType == 3,
+                    useSemanticSearch: reqJson.useType == 1 || reqJson.useType == 2 || reqJson.useType == 3,
+                    useFullTextSearch: reqJson.useType == 1 || reqJson.useType == 2 || reqJson.useType == 3,
+                    hybrid_settings: {
+                        fullTextWeight: reqJson.fullTextWeight ? reqJson.fullTextWeight : 1,
+                        semanticWeight: reqJson.semanticWeight ? reqJson.semanticWeight : 5,
+                    },
+                    filters: filters,
+                    limit: reqJson.limit ? reqJson.limit : 100,
+                },
+                ragGenerationConfig: {
+                    stream: false,
+                    temperature: reqJson.temperature ? reqJson.temperature : 0,
+                    maxTokens: reqJson.tokens ? reqJson.tokens : 5000
+                }
+            }
+            // console.log(params);
+            
+            const response = await client.retrieval.search(params);
+            res.status(200).json({ result: response.results });
+            
+        } catch (error) {
+            console.log(error);
+            
+            res.status(500).json({ error: error instanceof Error ? error.message : "An error occurred" });
+        }
+
+    }
+});
+
+//召回测试
+router.route("/searchFolder2").all(async (req, res, next) => {
+    let reqJson = req.body
+    if (reqJson) {
+        try {
+            let filters = {}
+            let documentids = reqJson.documentids ? decodeURIComponent(reqJson.documentids).split(",").filter(id => id) : [];
+            let folderids = reqJson.folderids ? decodeURIComponent(reqJson.folderids).split(",").filter(id => id) : [];
+            filters = {
+                "$or": [
+                    { "collection_ids": { "$in": folderids } },
+                    { "document_id": { "$in": documentids } }
+                ]
+            };
+
+            let params = {
+                query: reqJson.query,
+                searchSettings: {
+                    useHybridSearch: reqJson.useType == 3,
+                    useSemanticSearch: reqJson.useType == 1 || reqJson.useType == 2 || reqJson.useType == 3,
+                    useFullTextSearch: reqJson.useType == 1 || reqJson.useType == 2 || reqJson.useType == 3,
+                    hybrid_settings: {
+                        fullTextWeight: reqJson.fullTextWeight ? reqJson.fullTextWeight : 1,
+                        semanticWeight: reqJson.semanticWeight ? reqJson.semanticWeight : 5,
+                    },
+                    filters: filters,
+                    limit: reqJson.limit ? reqJson.limit : 100,
+                },
+                ragGenerationConfig: {
+                    stream: false,
+                    temperature: reqJson.temperature ? reqJson.temperature : 0,
+                    maxTokens: reqJson.tokens ? reqJson.tokens : 5000
+                }
+            }
+            // console.log(params);
+            
+            const response = await client.retrieval.search(params);
+            res.status(200).json({ result: response.results });
+            
+        } catch (error) {
+            console.log(error);
+            
+            res.status(500).json({ error: error instanceof Error ? error.message : "An error occurred" });
+        }
+
+    }
+});
+
 //获取召回测试数据
 router.route("/getRagData").all(async (req, res, next) => {
     //mode的处理