mirror of
				https://github.com/yangjian102621/geekai.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	feat: support for freeGPT35 API
This commit is contained in:
		@@ -3,7 +3,8 @@
 | 
				
			|||||||
* 功能新增:允许为角色应用绑定模型,如指定某个角色只能使用某个模型
 | 
					* 功能新增:允许为角色应用绑定模型,如指定某个角色只能使用某个模型
 | 
				
			||||||
* Bug修复:兼容 gpt-4-turbo-2024-04-09 模型的函数调用 Bug
 | 
					* Bug修复:兼容 gpt-4-turbo-2024-04-09 模型的函数调用 Bug
 | 
				
			||||||
* Bug修复:修复MidJourney在任务超时后出现后面的任务覆盖前面任务的问题
 | 
					* Bug修复:修复MidJourney在任务超时后出现后面的任务覆盖前面任务的问题
 | 
				
			||||||
* 功能新增:支持上传图片和视觉模型。
 | 
					* 功能新增:支持上传图片和视觉模型
 | 
				
			||||||
 | 
					* 功能优化:优化聊天页面的复制代码按钮样式乱码
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 4.0.2
 | 
					## 4.0.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,6 +65,7 @@ func (h *ChatHandler) sendOpenAiMessage(
 | 
				
			|||||||
		var toolCall = false
 | 
							var toolCall = false
 | 
				
			||||||
		var arguments = make([]string, 0)
 | 
							var arguments = make([]string, 0)
 | 
				
			||||||
		scanner := bufio.NewScanner(response.Body)
 | 
							scanner := bufio.NewScanner(response.Body)
 | 
				
			||||||
 | 
							var isNew = true
 | 
				
			||||||
		for scanner.Scan() {
 | 
							for scanner.Scan() {
 | 
				
			||||||
			line := scanner.Text()
 | 
								line := scanner.Text()
 | 
				
			||||||
			if !strings.Contains(line, "data:") || len(line) < 30 {
 | 
								if !strings.Contains(line, "data:") || len(line) < 30 {
 | 
				
			||||||
@@ -117,13 +118,16 @@ func (h *ChatHandler) sendOpenAiMessage(
 | 
				
			|||||||
			// 初始化 role
 | 
								// 初始化 role
 | 
				
			||||||
			if responseBody.Choices[0].Delta.Role != "" && message.Role == "" {
 | 
								if responseBody.Choices[0].Delta.Role != "" && message.Role == "" {
 | 
				
			||||||
				message.Role = responseBody.Choices[0].Delta.Role
 | 
									message.Role = responseBody.Choices[0].Delta.Role
 | 
				
			||||||
				utils.ReplyChunkMessage(ws, types.WsMessage{Type: types.WsStart})
 | 
					 | 
				
			||||||
				continue
 | 
									continue
 | 
				
			||||||
			} else if responseBody.Choices[0].FinishReason != "" {
 | 
								} else if responseBody.Choices[0].FinishReason != "" {
 | 
				
			||||||
				break // 输出完成或者输出中断了
 | 
									break // 输出完成或者输出中断了
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				content := responseBody.Choices[0].Delta.Content
 | 
									content := responseBody.Choices[0].Delta.Content
 | 
				
			||||||
				contents = append(contents, utils.InterfaceToString(content))
 | 
									contents = append(contents, utils.InterfaceToString(content))
 | 
				
			||||||
 | 
									if isNew {
 | 
				
			||||||
 | 
										utils.ReplyChunkMessage(ws, types.WsMessage{Type: types.WsStart})
 | 
				
			||||||
 | 
										isNew = false
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
				utils.ReplyChunkMessage(ws, types.WsMessage{
 | 
									utils.ReplyChunkMessage(ws, types.WsMessage{
 | 
				
			||||||
					Type:    types.WsMiddle,
 | 
										Type:    types.WsMiddle,
 | 
				
			||||||
					Content: utils.InterfaceToString(responseBody.Choices[0].Delta.Content),
 | 
										Content: utils.InterfaceToString(responseBody.Choices[0].Delta.Content),
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										59
									
								
								web/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										59
									
								
								web/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -13,6 +13,7 @@
 | 
				
			|||||||
        "clipboard": "^2.0.11",
 | 
					        "clipboard": "^2.0.11",
 | 
				
			||||||
        "compressorjs": "^1.2.1",
 | 
					        "compressorjs": "^1.2.1",
 | 
				
			||||||
        "core-js": "^3.8.3",
 | 
					        "core-js": "^3.8.3",
 | 
				
			||||||
 | 
					        "echarts": "^5.5.0",
 | 
				
			||||||
        "element-plus": "^2.3.0",
 | 
					        "element-plus": "^2.3.0",
 | 
				
			||||||
        "good-storage": "^1.1.1",
 | 
					        "good-storage": "^1.1.1",
 | 
				
			||||||
        "highlight.js": "^11.7.0",
 | 
					        "highlight.js": "^11.7.0",
 | 
				
			||||||
@@ -5106,6 +5107,20 @@
 | 
				
			|||||||
        "node": ">=6.0.0"
 | 
					        "node": ">=6.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/echarts": {
 | 
				
			||||||
 | 
					      "version": "5.5.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "tslib": "2.3.0",
 | 
				
			||||||
 | 
					        "zrender": "5.5.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/echarts/node_modules/tslib": {
 | 
				
			||||||
 | 
					      "version": "2.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/ee-first": {
 | 
					    "node_modules/ee-first": {
 | 
				
			||||||
      "version": "1.1.1",
 | 
					      "version": "1.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
 | 
				
			||||||
@@ -11514,6 +11529,19 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
 | 
					      "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/zrender": {
 | 
				
			||||||
 | 
					      "version": "5.5.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "tslib": "2.3.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/zrender/node_modules/tslib": {
 | 
				
			||||||
 | 
					      "version": "2.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
@@ -15479,6 +15507,22 @@
 | 
				
			|||||||
      "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==",
 | 
					      "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "echarts": {
 | 
				
			||||||
 | 
					      "version": "5.5.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==",
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "tslib": "2.3.0",
 | 
				
			||||||
 | 
					        "zrender": "5.5.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "tslib": {
 | 
				
			||||||
 | 
					          "version": "2.3.0",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "ee-first": {
 | 
					    "ee-first": {
 | 
				
			||||||
      "version": "1.1.1",
 | 
					      "version": "1.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
 | 
				
			||||||
@@ -20503,6 +20547,21 @@
 | 
				
			|||||||
          "dev": true
 | 
					          "dev": true
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "zrender": {
 | 
				
			||||||
 | 
					      "version": "5.5.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==",
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "tslib": "2.3.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "tslib": {
 | 
				
			||||||
 | 
					          "version": "2.3.0",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -90,6 +90,7 @@ export default defineComponent({
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .chat-item {
 | 
					    .chat-item {
 | 
				
			||||||
 | 
					      width 100%
 | 
				
			||||||
      position: relative;
 | 
					      position: relative;
 | 
				
			||||||
      padding: 0 5px 0 0;
 | 
					      padding: 0 5px 0 0;
 | 
				
			||||||
      overflow: hidden;
 | 
					      overflow: hidden;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -93,6 +93,7 @@ export default defineComponent({
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .chat-item {
 | 
					      .chat-item {
 | 
				
			||||||
 | 
					        width 100%
 | 
				
			||||||
        position: relative;
 | 
					        position: relative;
 | 
				
			||||||
        padding: 0 0 0 5px;
 | 
					        padding: 0 0 0 5px;
 | 
				
			||||||
        overflow: hidden;
 | 
					        overflow: hidden;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -682,6 +682,7 @@ const connect = function (chat_id, role_id) {
 | 
				
			|||||||
      reader.onload = () => {
 | 
					      reader.onload = () => {
 | 
				
			||||||
        const data = JSON.parse(String(reader.result));
 | 
					        const data = JSON.parse(String(reader.result));
 | 
				
			||||||
        if (data.type === 'start') {
 | 
					        if (data.type === 'start') {
 | 
				
			||||||
 | 
					          console.log(data)
 | 
				
			||||||
          chatData.value.push({
 | 
					          chatData.value.push({
 | 
				
			||||||
            type: "reply",
 | 
					            type: "reply",
 | 
				
			||||||
            id: randString(32),
 | 
					            id: randString(32),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user