feat: use SystemInstructions and remove gemini dummy message

This commit is contained in:
mxdlzg 2024-12-23 13:23:48 +08:00
parent ba50a137ea
commit ad56898d5a

View File

@ -116,7 +116,6 @@ func ConvertRequest(textRequest model.GeneralOpenAIRequest) *ChatRequest {
} }
} }
} }
shouldAddDummyModelMessage := false
for _, message := range textRequest.Messages { for _, message := range textRequest.Messages {
content := ChatContent{ content := ChatContent{
Role: message.Role, Role: message.Role,
@ -154,25 +153,12 @@ func ConvertRequest(textRequest model.GeneralOpenAIRequest) *ChatRequest {
if content.Role == "assistant" { if content.Role == "assistant" {
content.Role = "model" content.Role = "model"
} }
// Converting system prompt to prompt from user for the same reason // Converting system prompt to SystemInstructions
if content.Role == "system" { if content.Role == "system" {
content.Role = "user" geminiRequest.SystemInstruction = &content
shouldAddDummyModelMessage = true continue
} }
geminiRequest.Contents = append(geminiRequest.Contents, content) geminiRequest.Contents = append(geminiRequest.Contents, content)
// If a system message is the last message, we need to add a dummy model message to make gemini happy
if shouldAddDummyModelMessage {
geminiRequest.Contents = append(geminiRequest.Contents, ChatContent{
Role: "model",
Parts: []Part{
{
Text: "Okay",
},
},
})
shouldAddDummyModelMessage = false
}
} }
return &geminiRequest return &geminiRequest