chengjie 3 months ago
parent
commit
98fabdb752

+ 2 - 2
src/api/yjbdc/aiController.js

@@ -494,8 +494,8 @@ class AIProviderFactory {
494 494
             case 'doubao-kimi-k2-250711':
495 495
                 return new VolcesAIProvider("kimi-k2-250711");
496 496
 
497
-            case 'ali-qwen-plus':
498
-                return new AliyunAIProvider("qwen-plus");
497
+            case 'ali-qwen-plus-2025-07-28':
498
+                return new AliyunAIProvider("qwen-plus-2025-07-28");
499 499
             case 'ali-qwen-max':
500 500
                 return new AliyunAIProvider("qwen-max");
501 501
             case 'llama-4-scout-17b-16e-instruct':

+ 2 - 0
src/api/yjbdc/routes.js

@@ -16,6 +16,8 @@ router.get('/api/BuildYJBDCQRCode',yjbdcController.BuildYJBDCQRCode);
16 16
 router.get('/api/DeleteYJBDCArticleList',yjbdcController.DeleteYJBDCArticleList);
17 17
 router.get('/api/UpdateYJBDCArticleReadCount',yjbdcController.UpdateYJBDCArticleReadCount);
18 18
 router.get('/api/GetWordChinese',yjbdcController.GetWordChinese);
19
+router.get('/api/GetWordDetail',yjbdcController.GetWordDetail);
20
+
19 21
 router.get('/api/AddOrDeleteYJBDCUserCollect',yjbdcController.AddOrDeleteYJBDCUserCollect);
20 22
 router.get('/api/DeleteYJBDCUserCollect',yjbdcController.DeleteYJBDCUserCollect);
21 23
 router.get('/api/GetYJBDCUserCollect',yjbdcController.GetYJBDCUserCollect);

+ 52 - 0
src/api/yjbdc/yjbdcController.js

@@ -1322,7 +1322,59 @@ export async function GetWordChinese(ctx) {
1322 1322
     ctx.body = { "errcode": 10000, result: selectedResult };
1323 1323
 }
1324 1324
 
1325
+export async function GetWordDetail(ctx) {
1326
+    const param = {
1327
+        UserID: ctx.query.UserID || 0,
1328
+        Word: ctx.query.Word || ''
1329
+    };
1330
+
1331
+    if (!param.Word) {
1332
+        ctx.body = { "errcode": 10001, "errStr": "单词不能为空" };
1333
+        return;
1334
+    }
1335
+
1336
+    // 使用单词作为缓存键,为每个单词单独缓存结果
1337
+    const cacheKey = `GetWordDetail_${param.Word}`;
1338
+    let result = globalCache.get(cacheKey);
1325 1339
 
1340
+    if (!result) {
1341
+        // 缓存未命中,从数据库获取
1342
+        let url = "https://www.kylx365.com/api/GetMiaoguoAISearch2?Word=";
1343
+        const tokenurl=url + param.Word;
1344
+        result = await axios.get(tokenurl);
1345
+        result=result.data.result;
1346
+
1347
+        // 如果没有找到结果,尝试查找单词的原形
1348
+        if (!result || result.length === 0) {
1349
+            // 使用stringUtils.getWordBaseForm获取可能的原形
1350
+            const possibleBaseWords = stringUtils.getWordAllForms(param.Word);
1351
+
1352
+            // 尝试每个可能的原形
1353
+            for (const baseWord of possibleBaseWords) {
1354
+                //console.log(`尝试查找单词 ${param.Word} 的可能原形: ${baseWord}`);
1355
+                const baseParam = { ...param, Word: baseWord };
1356
+                
1357
+                const tokenurl=url + baseParam;
1358
+                let baseResult = await axios.get(tokenurl);
1359
+                baseResult=baseResult.data.result;
1360
+
1361
+                if (baseResult && baseResult.length > 0) {
1362
+                    //console.log(`找到单词 ${param.Word} 的原形 ${baseWord}`);
1363
+                    result = baseResult;
1364
+                    break;
1365
+                }
1366
+            }
1367
+        }
1368
+
1369
+        // 缓存结果,使用较长的过期时间,因为单词释义很少变化
1370
+        if (result && result.length > 0) {
1371
+            globalCache.set(cacheKey, result, config.BufferMemoryTimeHighBest);
1372
+            //console.log(`缓存单词 ${param.Word} 的释义,7天有效期`);
1373
+        }
1374
+    }
1375
+
1376
+    ctx.body = { "errcode": 10000, result: result };
1377
+}
1326 1378
 export async function YJBDC_Articles_Admin(ctx) {
1327 1379
     //console.log("yjbdc_articles");
1328 1380
     const data = await fsPromises.readFile("./public/mg/yjbdc_articles.html");

+ 1 - 1
src/util/constant/index.js

@@ -36,7 +36,7 @@ export default {
36 36
             {Version:"zkk2",BuildSecond:30,Model:"doubao-kimi-k2-250711",Content:"字节kimi_k2\n平均30秒生成",CSS:""},
37 37
             
38 38
             {Version:"akm",BuildSecond:30,Model:"ali-Moonshot-Kimi-K2-Instruct",Content:"阿里KimiK2\n平均30秒生成",CSS:""},
39
-            {Version:"qwp",BuildSecond:30,Model:"ali-qwen-plus",Content:"阿里千问plus\n平均30秒生成",CSS:""},
39
+            {Version:"qwp",BuildSecond:30,Model:"ali-qwen-plus-2025-07-28",Content:"阿里千问plus\n平均30秒生成",CSS:""},
40 40
             {Version:"qwm",BuildSecond:45,Model:"ali-qwen-max",Content:"阿里千问Max\n平均45秒生成",CSS:""},
41 41
             {Version:"lm4m",BuildSecond:15,Model:"llama-4-maverick-17b-128e-instruct",Content:"阿里脸书llama4maverick\n平均20秒生成",CSS:""},
42 42
             {Version:"lm4s",BuildSecond:20,Model:"llama-4-scout-17b-16e-instruct",Content:"阿里脸书llama4Scout\n平均15秒生成",CSS:""},