From 0a39521a3d77e6ddcf2f4bf62a652499f3c68184 Mon Sep 17 00:00:00 2001 From: JustSong Date: Thu, 27 Jul 2023 23:16:11 +0800 Subject: [PATCH 1/3] fix: convert system message to user message (close #328) --- controller/relay-baidu.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/controller/relay-baidu.go b/controller/relay-baidu.go index e82f4904..4267757d 100644 --- a/controller/relay-baidu.go +++ b/controller/relay-baidu.go @@ -57,10 +57,21 @@ type BaiduChatStreamResponse struct { func requestOpenAI2Baidu(request GeneralOpenAIRequest) *BaiduChatRequest { messages := make([]BaiduMessage, 0, len(request.Messages)) for _, message := range request.Messages { - messages = append(messages, BaiduMessage{ - Role: message.Role, - Content: message.Content, - }) + if message.Role == "system" { + messages = append(messages, BaiduMessage{ + Role: "user", + Content: message.Content, + }) + messages = append(messages, BaiduMessage{ + Role: "assistant", + Content: "Okay", + }) + } else { + messages = append(messages, BaiduMessage{ + Role: message.Role, + Content: message.Content, + }) + } } return &BaiduChatRequest{ Messages: messages, From b9f6461dd424cfb2e8f527e1947b8722a42fe513 Mon Sep 17 00:00:00 2001 From: JustSong Date: Thu, 27 Jul 2023 23:26:56 +0800 Subject: [PATCH 2/3] fix: convert system message to user message for claude --- controller/relay-claude.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/controller/relay-claude.go b/controller/relay-claude.go index 22f41cef..1d67fa7b 100644 --- a/controller/relay-claude.go +++ b/controller/relay-claude.go @@ -69,11 +69,11 @@ func requestOpenAI2Claude(textRequest GeneralOpenAIRequest) *ClaudeRequest { prompt += fmt.Sprintf("\n\nHuman: %s", message.Content) } else if message.Role == "assistant" { prompt += fmt.Sprintf("\n\nAssistant: %s", message.Content) - } else { - // ignore other roles + } else if message.Role == "system" { + prompt += fmt.Sprintf("\n\nSystem: %s", message.Content) } - prompt += "\n\nAssistant:" } + prompt += "\n\nAssistant:" claudeRequest.Prompt = prompt return &claudeRequest } From d1b6f492b6f13c4b1f3d63046b721f3677e876db Mon Sep 17 00:00:00 2001 From: JustSong Date: Thu, 27 Jul 2023 23:32:00 +0800 Subject: [PATCH 3/3] fix: convert system message to user message for zhipu --- controller/relay-zhipu.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/controller/relay-zhipu.go b/controller/relay-zhipu.go index 349f4742..33d141c7 100644 --- a/controller/relay-zhipu.go +++ b/controller/relay-zhipu.go @@ -111,10 +111,21 @@ func getZhipuToken(apikey string) string { func requestOpenAI2Zhipu(request GeneralOpenAIRequest) *ZhipuRequest { messages := make([]ZhipuMessage, 0, len(request.Messages)) for _, message := range request.Messages { - messages = append(messages, ZhipuMessage{ - Role: message.Role, - Content: message.Content, - }) + if message.Role == "system" { + messages = append(messages, ZhipuMessage{ + Role: "system", + Content: message.Content, + }) + messages = append(messages, ZhipuMessage{ + Role: "user", + Content: "Okay", + }) + } else { + messages = append(messages, ZhipuMessage{ + Role: message.Role, + Content: message.Content, + }) + } } return &ZhipuRequest{ Prompt: messages,