Commit f24a1da7 by CaIon

修复vision格式问题

parent b51c1333
...@@ -160,10 +160,27 @@ func countTokenMessages(messages []Message, model string) (int, error) { ...@@ -160,10 +160,27 @@ func countTokenMessages(messages []Message, model string) (int, error) {
} else { } else {
for _, m := range arrayContent { for _, m := range arrayContent {
if m.Type == "image_url" { if m.Type == "image_url" {
imageTokenNum, err := getImageToken(&m.ImageUrl) var imageTokenNum int
if str, ok := m.ImageUrl.(string); ok {
imageTokenNum, err = getImageToken(&MessageImageUrl{Url: str, Detail: "auto"})
} else {
imageUrlMap := m.ImageUrl.(map[string]interface{})
detail, ok := imageUrlMap["detail"]
if ok {
imageUrlMap["detail"] = detail.(string)
} else {
imageUrlMap["detail"] = "auto"
}
imageUrl := MessageImageUrl{
Url: imageUrlMap["url"].(string),
Detail: imageUrlMap["detail"].(string),
}
imageTokenNum, err = getImageToken(&imageUrl)
}
if err != nil { if err != nil {
return 0, err return 0, err
} }
tokenNum += imageTokenNum tokenNum += imageTokenNum
log.Printf("image token num: %d", imageTokenNum) log.Printf("image token num: %d", imageTokenNum)
} else { } else {
......
...@@ -21,7 +21,7 @@ type Message struct { ...@@ -21,7 +21,7 @@ type Message struct {
type MediaMessage struct { type MediaMessage struct {
Type string `json:"type"` Type string `json:"type"`
Text string `json:"text"` Text string `json:"text"`
ImageUrl MessageImageUrl `json:"image_url,omitempty"` ImageUrl any `json:"image_url,omitempty"`
} }
type MessageImageUrl struct { type MessageImageUrl struct {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment