From 6718afa2731d6089a75cd551f8718fb1cbb7520a Mon Sep 17 00:00:00 2001 From: moondie <528893699@qq.com> Date: Fri, 22 Dec 2023 03:33:18 +0800 Subject: [PATCH] =?UTF-8?q?Update=20relay-ali.go:=E6=94=B9=E8=BF=9Bstream?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=EF=BC=8C=E6=B7=BB=E5=8A=A0=E8=81=94=E7=BD=91?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 通义千问支持stream的增量模式,不需要每次去掉上次的前缀;实测qwen-max联网模式效果不错,添加了联网模式。如果别的模型有问题可以改为单独给qwen-max开放 --- controller/relay-ali.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/controller/relay-ali.go b/controller/relay-ali.go index 65626f6a..68f72b6f 100644 --- a/controller/relay-ali.go +++ b/controller/relay-ali.go @@ -95,12 +95,14 @@ func requestOpenAI2Ali(request GeneralOpenAIRequest) *AliChatRequest { Input: AliInput{ Messages: messages, }, - //Parameters: AliParameters{ // ChatGPT's parameters are not compatible with Ali's + Parameters: AliParameters{ // ChatGPT's parameters are not compatible with Ali's // TopP: request.TopP, // TopK: 50, // //Seed: 0, - // //EnableSearch: false, - //}, + EnableSearch: true, + incremental_output=true, + stream=request.Stream, + }, } } @@ -202,7 +204,7 @@ func streamResponseAli2OpenAI(aliResponse *AliChatResponse) *ChatCompletionsStre Id: aliResponse.RequestId, Object: "chat.completion.chunk", Created: common.GetTimestamp(), - Model: "ernie-bot", + Model: "qwen", Choices: []ChatCompletionsStreamResponseChoice{choice}, } return &response @@ -240,7 +242,7 @@ func aliStreamHandler(c *gin.Context, resp *http.Response) (*OpenAIErrorWithStat stopChan <- true }() setEventStreamHeaders(c) - lastResponseText := "" + //lastResponseText := "" c.Stream(func(w io.Writer) bool { select { case data := <-dataChan: @@ -256,8 +258,8 @@ func aliStreamHandler(c *gin.Context, resp *http.Response) (*OpenAIErrorWithStat usage.TotalTokens = aliResponse.Usage.InputTokens + aliResponse.Usage.OutputTokens } response := streamResponseAli2OpenAI(&aliResponse) - response.Choices[0].Delta.Content = strings.TrimPrefix(response.Choices[0].Delta.Content, lastResponseText) - lastResponseText = aliResponse.Output.Text + //response.Choices[0].Delta.Content = strings.TrimPrefix(response.Choices[0].Delta.Content, lastResponseText) + //lastResponseText = aliResponse.Output.Text jsonResponse, err := json.Marshal(response) if err != nil { common.SysError("error marshalling stream response: " + err.Error())