From 1cde58c089ec67514b6e79b40ce4bf261a9eddef Mon Sep 17 00:00:00 2001 From: CaIon <1808837298@qq.com> Date: Fri, 2 Feb 2024 20:02:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=20Unicode=20=E8=BD=AC?= =?UTF-8?q?=E4=B9=89=E5=BA=8F=E5=88=97=E8=A7=A3=E6=9E=90=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8Cclose=20#63?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/relay-ali.go | 6 +++--- controller/relay-baidu.go | 4 ++-- controller/relay-gemini.go | 2 +- controller/relay-palm.go | 2 +- controller/relay-tencent.go | 4 ++-- controller/relay-xunfei.go | 4 ++-- controller/relay-zhipu.go | 4 ++-- controller/relay.go | 8 ++++++++ 8 files changed, 21 insertions(+), 13 deletions(-) diff --git a/controller/relay-ali.go b/controller/relay-ali.go index 6a79d2b..93839d9 100644 --- a/controller/relay-ali.go +++ b/controller/relay-ali.go @@ -88,17 +88,17 @@ func requestOpenAI2Ali(request GeneralOpenAIRequest) *AliChatRequest { message := request.Messages[i] if message.Role == "system" { messages = append(messages, AliMessage{ - User: string(message.Content), + User: message.StringContent(), Bot: "Okay", }) continue } else { if i == len(request.Messages)-1 { - prompt = string(message.Content) + prompt = message.StringContent() break } messages = append(messages, AliMessage{ - User: string(message.Content), + User: message.StringContent(), Bot: string(request.Messages[i+1].Content), }) i++ diff --git a/controller/relay-baidu.go b/controller/relay-baidu.go index 05bbad0..3dd9ba6 100644 --- a/controller/relay-baidu.go +++ b/controller/relay-baidu.go @@ -89,7 +89,7 @@ func requestOpenAI2Baidu(request GeneralOpenAIRequest) *BaiduChatRequest { if message.Role == "system" { messages = append(messages, BaiduMessage{ Role: "user", - Content: string(message.Content), + Content: message.StringContent(), }) messages = append(messages, BaiduMessage{ Role: "assistant", @@ -98,7 +98,7 @@ func requestOpenAI2Baidu(request GeneralOpenAIRequest) *BaiduChatRequest { } else { messages = append(messages, BaiduMessage{ Role: message.Role, - Content: string(message.Content), + Content: message.StringContent(), }) } } diff --git a/controller/relay-gemini.go b/controller/relay-gemini.go index 0596e42..7235158 100644 --- a/controller/relay-gemini.go +++ b/controller/relay-gemini.go @@ -97,7 +97,7 @@ func requestOpenAI2Gemini(textRequest GeneralOpenAIRequest) *GeminiChatRequest { Role: message.Role, Parts: []GeminiPart{ { - Text: string(message.Content), + Text: message.StringContent(), }, }, } diff --git a/controller/relay-palm.go b/controller/relay-palm.go index 4a8826d..aa96c0d 100644 --- a/controller/relay-palm.go +++ b/controller/relay-palm.go @@ -59,7 +59,7 @@ func requestOpenAI2PaLM(textRequest GeneralOpenAIRequest) *PaLMChatRequest { } for _, message := range textRequest.Messages { palmMessage := PaLMChatMessage{ - Content: string(message.Content), + Content: message.StringContent(), } if message.Role == "user" { palmMessage.Author = "0" diff --git a/controller/relay-tencent.go b/controller/relay-tencent.go index c96e6d4..8db6492 100644 --- a/controller/relay-tencent.go +++ b/controller/relay-tencent.go @@ -84,7 +84,7 @@ func requestOpenAI2Tencent(request GeneralOpenAIRequest) *TencentChatRequest { if message.Role == "system" { messages = append(messages, TencentMessage{ Role: "user", - Content: string(message.Content), + Content: message.StringContent(), }) messages = append(messages, TencentMessage{ Role: "assistant", @@ -93,7 +93,7 @@ func requestOpenAI2Tencent(request GeneralOpenAIRequest) *TencentChatRequest { continue } messages = append(messages, TencentMessage{ - Content: string(message.Content), + Content: message.StringContent(), Role: message.Role, }) } diff --git a/controller/relay-xunfei.go b/controller/relay-xunfei.go index b2b9158..c5191fd 100644 --- a/controller/relay-xunfei.go +++ b/controller/relay-xunfei.go @@ -81,7 +81,7 @@ func requestOpenAI2Xunfei(request GeneralOpenAIRequest, xunfeiAppId string, doma if message.Role == "system" { messages = append(messages, XunfeiMessage{ Role: "user", - Content: string(message.Content), + Content: message.StringContent(), }) messages = append(messages, XunfeiMessage{ Role: "assistant", @@ -90,7 +90,7 @@ func requestOpenAI2Xunfei(request GeneralOpenAIRequest, xunfeiAppId string, doma } else { messages = append(messages, XunfeiMessage{ Role: message.Role, - Content: string(message.Content), + Content: message.StringContent(), }) } } diff --git a/controller/relay-zhipu.go b/controller/relay-zhipu.go index 5ad4151..bc8d201 100644 --- a/controller/relay-zhipu.go +++ b/controller/relay-zhipu.go @@ -114,7 +114,7 @@ func requestOpenAI2Zhipu(request GeneralOpenAIRequest) *ZhipuRequest { if message.Role == "system" { messages = append(messages, ZhipuMessage{ Role: "system", - Content: string(message.Content), + Content: message.StringContent(), }) messages = append(messages, ZhipuMessage{ Role: "user", @@ -123,7 +123,7 @@ func requestOpenAI2Zhipu(request GeneralOpenAIRequest) *ZhipuRequest { } else { messages = append(messages, ZhipuMessage{ Role: message.Role, - Content: string(message.Content), + Content: message.StringContent(), }) } } diff --git a/controller/relay.go b/controller/relay.go index c835497..d5fdf8d 100644 --- a/controller/relay.go +++ b/controller/relay.go @@ -36,6 +36,14 @@ const ( ContentTypeImageURL = "image_url" ) +func (m Message) StringContent() string { + var stringContent string + if err := json.Unmarshal(m.Content, &stringContent); err == nil { + return stringContent + } + return string(m.Content) +} + func (m Message) ParseContent() []MediaMessage { var contentList []MediaMessage var stringContent string