mirror of
https://github.com/linux-do/new-api.git
synced 2025-09-19 00:46:37 +08:00
feat: format claude messages when first role is not user
This commit is contained in:
parent
5b2082ba58
commit
a8ac8a25d5
@ -139,6 +139,7 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR
|
|||||||
}
|
}
|
||||||
|
|
||||||
claudeMessages := make([]ClaudeMessage, 0)
|
claudeMessages := make([]ClaudeMessage, 0)
|
||||||
|
isFirstMessage := true
|
||||||
for _, message := range formatMessages {
|
for _, message := range formatMessages {
|
||||||
if message.Role == "system" {
|
if message.Role == "system" {
|
||||||
if message.IsStringContent() {
|
if message.IsStringContent() {
|
||||||
@ -154,6 +155,22 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR
|
|||||||
claudeRequest.System = content
|
claudeRequest.System = content
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if isFirstMessage {
|
||||||
|
isFirstMessage = false
|
||||||
|
if message.Role != "user" {
|
||||||
|
// fix: first message is assistant, add user message
|
||||||
|
claudeMessage := ClaudeMessage{
|
||||||
|
Role: "user",
|
||||||
|
Content: []ClaudeMediaMessage{
|
||||||
|
{
|
||||||
|
Type: "text",
|
||||||
|
Text: "...",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
claudeMessages = append(claudeMessages, claudeMessage)
|
||||||
|
}
|
||||||
|
}
|
||||||
claudeMessage := ClaudeMessage{
|
claudeMessage := ClaudeMessage{
|
||||||
Role: message.Role,
|
Role: message.Role,
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user