Skip to content

Commit

Permalink
增加NormalizeMessages,对消息进行重新排列整理,适合客户端错误消息情况
Browse files Browse the repository at this point in the history
  • Loading branch information
fruitbars committed Jul 1, 2024
1 parent 6898160 commit 18a3668
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions pkg/mycommon/oai_message_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,48 @@ func ConvertSystemMessages2NoSystem(oaiReq []openai.ChatCompletionMessage) []ope
return oaiReq
}

func NormalizeMessages(oaiReqMessage []openai.ChatCompletionMessage) []openai.ChatCompletionMessage {
//var systemQuery string
if len(oaiReqMessage) == 0 {
return oaiReqMessage
}

// 处理第一条消息是 system 的情况
if strings.ToLower(oaiReqMessage[0].Role) == "system" {
if len(oaiReqMessage) == 1 {
oaiReqMessage[0].Role = "user"
}
}

// 创建一个新的切片来存储规范化的消息
var normalizedMessages []openai.ChatCompletionMessage

// 跟踪上一个角色
var lastRole string

// 遍历消息数组
for i, msg := range oaiReqMessage {
role := strings.ToLower(msg.Role)
if role == "system" && i > 0 {
// 移除非第一条出现的 system 消息
continue
}
if role == "user" || role == "assistant" {
// 检查角色是否交替出现
if role == lastRole {
continue
}
normalizedMessages = append(normalizedMessages, msg)
lastRole = role
} else {
// 保留不认识的角色
normalizedMessages = append(normalizedMessages, msg)
}
}

return normalizedMessages
}

// getImageURLData 分析给定的 URL 字符串,并返回其 base64 编码数据和 MIME 类型
func GetImageURLData(dataStr string) (string, string, error) {
if strings.HasPrefix(dataStr, "data:") {
Expand Down

0 comments on commit 18a3668

Please sign in to comment.