浏览代码

Merge pull request #5194 from HyiKi/main

fix: baidu error_code 336006
Lloyd Zhou 1 年之前
父节点
当前提交
690542145d
共有 2 个文件被更改,包括 16 次插入7 次删除
  1. 13 5
      app/client/platforms/baidu.ts
  2. 3 2
      app/client/platforms/tencent.ts

+ 13 - 5
app/client/platforms/baidu.ts

@@ -77,16 +77,24 @@ export class ErnieApi implements LLMApi {
 
   async chat(options: ChatOptions) {
     const messages = options.messages.map((v) => ({
-      role: v.role,
+      // "error_code": 336006, "error_msg": "the role of message with even index in the messages must be user or function",
+      role: v.role === "system" ? "user" : v.role,
       content: getMessageTextContent(v),
     }));
 
     // "error_code": 336006, "error_msg": "the length of messages must be an odd number",
     if (messages.length % 2 === 0) {
-      messages.unshift({
-        role: "user",
-        content: " ",
-      });
+      if (messages.at(0)?.role === "user") {
+        messages.splice(1, 0, {
+          role: "assistant",
+          content: " ",
+        });
+      } else {
+        messages.unshift({
+          role: "user",
+          content: " ",
+        });
+      }
     }
 
     const modelConfig = {

+ 3 - 2
app/client/platforms/tencent.ts

@@ -91,8 +91,9 @@ export class HunyuanApi implements LLMApi {
 
   async chat(options: ChatOptions) {
     const visionModel = isVisionModel(options.config.model);
-    const messages = options.messages.map((v) => ({
-      role: v.role,
+    const messages = options.messages.map((v, index) => ({
+      // "Messages 中 system 角色必须位于列表的最开始"
+      role: index !== 0 && v.role === "system" ? "user" : v.role,
       content: visionModel ? v.content : getMessageTextContent(v),
     }));