2024-01-28 01:20:44 +08:00

34 lines
831 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package chatgpt
import (
"errors"
"github.com/sashabaranov/go-openai"
)
const (
ChatMessageRoleSystem = "system"
ChatMessageRoleUser = "user"
ChatMessageRoleAssistant = "assistant"
)
func CheckChatCompletionMessages(messages []openai.ChatCompletionMessage) error {
hasSystemMsg := false
for _, msg := range messages {
if msg.Role != ChatMessageRoleSystem && msg.Role != ChatMessageRoleUser && msg.Role != ChatMessageRoleAssistant {
return errors.New("invalid message role")
}
if msg.Role == ChatMessageRoleSystem {
if hasSystemMsg {
return errors.New("more than one system message")
}
hasSystemMsg = true
} else {
// 对于非 system 角色的消息Content 不能为空
if msg.Content == "" {
return errors.New("empty content in non-system message")
}
}
}
return nil
}