fest: Add dummy model message for system message in gemini model
This commit is contained in:
parent
655405462f
commit
8e82edcd8c
@ -72,7 +72,7 @@ func requestOpenAI2GeminiChat(textRequest GeneralOpenAIRequest) *GeminiChatReque
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
systemPrompt := ""
|
shouldAddDummyModelMessage := false
|
||||||
for _, message := range textRequest.Messages {
|
for _, message := range textRequest.Messages {
|
||||||
content := GeminiChatContents{
|
content := GeminiChatContents{
|
||||||
Role: message.Role,
|
Role: message.Role,
|
||||||
@ -88,18 +88,23 @@ func requestOpenAI2GeminiChat(textRequest GeneralOpenAIRequest) *GeminiChatReque
|
|||||||
}
|
}
|
||||||
// Converting system prompt to prompt from user for the same reason
|
// Converting system prompt to prompt from user for the same reason
|
||||||
if content.Role == "system" {
|
if content.Role == "system" {
|
||||||
systemPrompt = message.StringContent()
|
content.Role = "user"
|
||||||
continue
|
shouldAddDummyModelMessage = true
|
||||||
}
|
|
||||||
if content.Role == "user" && systemPrompt != "" {
|
|
||||||
content.Parts = []GeminiChatParts{
|
|
||||||
{
|
|
||||||
Text: systemPrompt + "\n\nHuman: " + message.StringContent(),
|
|
||||||
},
|
|
||||||
}
|
|
||||||
systemPrompt = ""
|
|
||||||
}
|
}
|
||||||
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, GeminiChatContents{
|
||||||
|
Role: "model",
|
||||||
|
Parts: []GeminiChatParts{
|
||||||
|
{
|
||||||
|
Text: "ok",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
shouldAddDummyModelMessage = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &geminiRequest
|
return &geminiRequest
|
||||||
|
Loading…
Reference in New Issue
Block a user