chengjie пре 4 месеци
родитељ
комит
08f4036de9
4 измењених фајлова са 84 додато и 20 уклоњено
  1. 67 9
      src/api/yjbdc/aiController.js
  2. 10 10
      src/api/yjbdc/yjbdcController.js
  3. 3 0
      src/config/index.js
  4. 4 1
      src/util/constant/index.js

+ 67 - 9
src/api/yjbdc/aiController.js

@@ -86,28 +86,43 @@ class VolcesAIProvider extends AIProvider {
86 86
     }
87 87
 
88 88
     async generateArticle(content) {
89
-        const postJSON = {
89
+        let postJSON = {
90 90
             "model": this.model,
91 91
             "messages": [
92
+                {
93
+                    "role": "system",
94
+                    "content": "你是一个专业的AI助手,请以JSON格式回复。"
95
+                },
92 96
                 {
93 97
                     "role": "user",
94
-                    "content": content,
98
+                    "content": content
95 99
                 }
96
-            ],
97
-            "response_format": {
100
+            ]
101
+        };
102
+
103
+        if (this.version.indexOf("deepseek")>=0 || this.version.indexOf("seed-1")>=0){
104
+            postJSON.response_format={
98 105
                 "type": "json_object"
99
-            },
100
-            "thinking": {
106
+            }; 
107
+            postJSON.thinking={
101 108
                 "type": "disabled"
102
-            }
103
-        };
109
+            };
110
+        }
104 111
 
105 112
         try {
106 113
             console.log(`火山云${this.version}`);
107
-            const response = await axios.post(encodeURI(this.url), postJSON, { headers: this.headers });
114
+            // 移除encodeURI,直接使用原始URL
115
+            const response = await axios.post(this.url, postJSON, { headers: this.headers });
108 116
             return response.data.choices[0].message.content;
109 117
         } catch (error) {
110 118
             console.error("VolcesAI API error:", error);
119
+            // 添加更详细的错误日志
120
+            if (error.response) {
121
+                console.error("错误详情:", {
122
+                    status: error.response.status,
123
+                    data: error.response.data
124
+                });
125
+            }
111 126
             throw error;
112 127
         }
113 128
     }
@@ -409,6 +424,43 @@ class BaiduAIProvider extends AIProvider {
409 424
     }
410 425
 }
411 426
 
427
+/**
428
+ * Openrouter平台实现
429
+ */
430
+class OpenrouterProvider extends AIProvider {
431
+    constructor() {
432
+        super();
433
+        this.headers = {
434
+            "Authorization": "Bearer " + config.openroutercloud.apikey,
435
+            "Content-Type": "application/json"
436
+        };
437
+        this.url = "https://openrouter.ai/api/v1/chat/completions";
438
+        this.model = "moonshotai/kimi-k2:free";
439
+    }
440
+    
441
+
442
+    async generateArticle(content) {
443
+        const postJSON = {
444
+            "model": this.model,
445
+            "messages": [
446
+                {
447
+                    "role": "user",
448
+                    "content": content,
449
+                }
450
+            ]
451
+        };
452
+
453
+        try {
454
+            console.log(`Openrouter ${this.model}`);
455
+            const response = await axios.post(this.url, postJSON, { headers: this.headers });
456
+            return response.data.choices[0].message.content;
457
+        } catch (error) {
458
+            console.error("OpenAI API error:", error);
459
+            throw error;
460
+        }
461
+    }
462
+}
463
+
412 464
 
413 465
 /**
414 466
  * AI提供者工厂类
@@ -427,6 +479,10 @@ class AIProviderFactory {
427 479
         switch (providerLower) {
428 480
             case 'openai':
429 481
                 return new OpenAIProvider();
482
+
483
+            case 'openrouter-moonshotai/kimi-k2':
484
+                return new OpenrouterProvider("moonshotai/kimi-k2:free");
485
+
430 486
             case 'doubao-1-5-pro-32k-250115':
431 487
                 return new VolcesAIProvider(providerLower);
432 488
             case 'doubao-seed-1-6-250615':
@@ -435,6 +491,8 @@ class AIProviderFactory {
435 491
                 return new VolcesAIProvider("deepseek-v3-250324");
436 492
             case 'doubao-deepseek-r1-250528':
437 493
                 return new VolcesAIProvider("deepseek-r1-250528");
494
+            case 'doubao-kimi-k2-250711':
495
+                return new VolcesAIProvider("kimi-k2-250711");
438 496
 
439 497
             case 'ali-qwen-plus':
440 498
                 return new AliyunAIProvider("qwen-plus");

+ 10 - 10
src/api/yjbdc/yjbdcController.js

@@ -243,7 +243,7 @@ export async function GenerateArticle(ctx) {
243 243
                 aiProvider = 'ali-Moonshot-Kimi-K2-Instruct';
244 244
             }
245 245
             else if (params.AIVersion=="1.5"){
246
-                aiProvider = 'ali-Moonshot-Kimi-K2-Instruct';
246
+                aiProvider = 'doubao-kimi-k2-250711';
247 247
             }
248 248
 
249 249
 
@@ -348,15 +348,15 @@ export async function GetYJBDCGenerateConfig(ctx) {
348 348
 
349 349
     
350 350
     if (param.UserID>0){
351
-        result.AIVersion.splice(1,result.AIVersion.length-1);
352
-        if (param.UserID==185){
353
-            const configArr=constantClass.GetYJBDCGenerateConfig();
354
-            result.AIVersion.push(configArr.AIVersion[5]);
355
-        }
356
-        if (param.UserID<4){
357
-            const configArr=constantClass.GetYJBDCGenerateConfig();
358
-            result.AIVersion.push(configArr.AIVersion[5]);
359
-        }
351
+        result.AIVersion.splice(2,result.AIVersion.length-2);
352
+        // if (param.UserID==185){
353
+        //     const configArr=constantClass.GetYJBDCGenerateConfig();
354
+        //     result.AIVersion.push(configArr.AIVersion[5]);
355
+        // }
356
+        // if (param.UserID<4){
357
+        //     const configArr=constantClass.GetYJBDCGenerateConfig();
358
+        //     result.AIVersion.push(configArr.AIVersion[6]);
359
+        // }
360 360
     }
361 361
     ctx.body = {"errcode": 10000, result:result};
362 362
 }

+ 3 - 0
src/config/index.js

@@ -86,6 +86,9 @@ const commonConfig = {
86 86
     baiducloud:{
87 87
         apikey:"bce-v3/ALTAK-rJ28kWUiu2wE7AmSwCA6x/f7e1c801b6a569766add8f8e27223bafae158c32",
88 88
     },
89
+    openroutercloud:{
90
+        apikey:"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",
91
+    },
89 92
     xfyun:{
90 93
         appid: "620d2552", // 讯飞星火APPID
91 94
         apikey: "a3be608fe7fb367adae0169324faf3aa", // 讯飞星火APIKey

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

@@ -30,11 +30,12 @@ export default {
30 30
         ];        
31 31
         result.AIVersion=[
32 32
             {Version:"1.0",BuildSecond:30,Model:"",Content:"词句丰富,结构简明\n平均30秒生成",CSS:"Selected"},
33
-            {Version:"1.5",BuildSecond:30,Model:"",Content:"深度表达,更多要素\n平均30秒生成",CSS:""},
33
+            {Version:"1.5",BuildSecond:60,Model:"",Content:"深度表达,更多要素\n平均60秒生成",CSS:""},
34 34
             {Version:"db15",BuildSecond:30,Model:"doubao-1-5-pro-32k-250115",Content:"字节豆包1.5\n平均30秒生成",CSS:"Selected"},
35 35
             {Version:"db16",BuildSecond:60,Model:"doubao-seed-1-6-250615",Content:"字节豆包1.6\n平均60秒生成",CSS:""},
36 36
             {Version:"zdp3",BuildSecond:60,Model:"doubao-deepseek-v3-250324",Content:"字节deepseek_v3\n平均60秒生成",CSS:""},
37 37
             {Version:"zdpr",BuildSecond:120,Model:"doubao-deepseek-r1-250528",Content:"字节deepseek_r1\n平均120秒生成",CSS:""},
38
+            {Version:"zkk2",BuildSecond:30,Model:"doubao-kimi-k2-250711",Content:"字节kimi_k2\n平均30秒生成",CSS:""},
38 39
             
39 40
             {Version:"akm",BuildSecond:30,Model:"ali-Moonshot-Kimi-K2-Instruct",Content:"阿里KimiK2\n平均30秒生成",CSS:""},
40 41
             {Version:"qwp",BuildSecond:30,Model:"ali-qwen-plus",Content:"阿里千问plus\n平均30秒生成",CSS:""},
@@ -47,6 +48,8 @@ export default {
47 48
             {Version:"hyt1",BuildSecond:40,Model:"tencent-hunyuan-t1-latest",Content:"腾讯混元t1\n平均40秒生成",CSS:""},
48 49
             
49 50
             {Version:"x1",BuildSecond:60,Model:"xf-yun-spark-x1",Content:"讯飞sparkX1\n平均60秒生成",CSS:""},
51
+            
52
+            {Version:"kk2",BuildSecond:30,Model:"openrouter-moonshotai/kimi-k2",Content:"月之暗面kimik2\n平均30秒生成",CSS:""},
50 53
             // {Version:"bde",BuildSecond:60,Model:"baidu-ernie-4.5-turbo-vl-32k-preview",Content:"百度ernie4.5turbo\n平均60秒生成",CSS:""},
51 54
         ];
52 55