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