mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-11-12 19:33:41 +08:00
feat: Refactor vision message handling and increase commit short SHA length
- Increase the length of the commit short SHA from 8 to 7 characters - Update relay-aiproxy.go to handle multiple content types in the last message - Refactor and modify countVisonTokenMessages function in relay-utils.go to handle different content types and update token counts accordingly - Update VisionMessage struct in relay.go to have Content as a slice of OpenaiVisionMessageContent
This commit is contained in:
@@ -168,19 +168,21 @@ func countVisonTokenMessages(messages []VisionMessage, model string) (int, error
|
||||
tokenNum := 0
|
||||
for _, message := range messages {
|
||||
tokenNum += tokensPerMessage
|
||||
switch message.Content.Type {
|
||||
case OpenaiVisionMessageContentTypeText:
|
||||
tokenNum += getTokenNum(tokenEncoder, message.Content.Text)
|
||||
case OpenaiVisionMessageContentTypeImageUrl:
|
||||
imgblob, err := base64.StdEncoding.DecodeString(strings.TrimPrefix(message.Content.ImageUrl.URL, "data:image/jpeg;base64,"))
|
||||
if err != nil {
|
||||
return 0, errors.Wrap(err, "failed to decode base64 image")
|
||||
}
|
||||
for _, cnt := range message.Content {
|
||||
switch cnt.Type {
|
||||
case OpenaiVisionMessageContentTypeText:
|
||||
tokenNum += getTokenNum(tokenEncoder, cnt.Text)
|
||||
case OpenaiVisionMessageContentTypeImageUrl:
|
||||
imgblob, err := base64.StdEncoding.DecodeString(strings.TrimPrefix(cnt.ImageUrl.URL, "data:image/jpeg;base64,"))
|
||||
if err != nil {
|
||||
return 0, errors.Wrap(err, "failed to decode base64 image")
|
||||
}
|
||||
|
||||
if imgtoken, err := CountVisionImageToken(imgblob, message.Content.ImageUrl.Detail); err != nil {
|
||||
return 0, errors.Wrap(err, "failed to count vision image token")
|
||||
} else {
|
||||
tokenNum += imgtoken
|
||||
if imgtoken, err := CountVisionImageToken(imgblob, cnt.ImageUrl.Detail); err != nil {
|
||||
return 0, errors.Wrap(err, "failed to count vision image token")
|
||||
} else {
|
||||
tokenNum += imgtoken
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user