🐛 fix: glm-4v support base64 image (#81)

* 💄 improve: http client changes proxy using context

* 🐛 fix: glm-4v support base64 image
This commit is contained in:
Buer
2024-03-01 18:52:39 +08:00
committed by GitHub
parent fab465e82a
commit 7c78ed9fad
5 changed files with 109 additions and 58 deletions

View File

@@ -120,6 +120,34 @@ func convertFromChatOpenai(request *types.ChatCompletionRequest) *ZhipuRequest {
ToolChoice: request.ToolChoice,
}
// 如果有图片的话并且是base64编码的图片需要把前缀去掉
if zhipuRequest.Model == "glm-4v" {
for i := range zhipuRequest.Messages {
contentList, ok := zhipuRequest.Messages[i].Content.([]any)
if !ok {
continue
}
for j := range contentList {
contentMap, ok := contentList[j].(map[string]any)
if !ok || contentMap["type"] != "image_url" {
continue
}
imageUrl, ok := contentMap["image_url"].(map[string]any)
if !ok {
continue
}
url, ok := imageUrl["url"].(string)
if !ok || !strings.HasPrefix(url, "data:image/") {
continue
}
imageUrl["url"] = strings.Split(url, ",")[1]
contentMap["image_url"] = imageUrl
contentList[j] = contentMap
}
zhipuRequest.Messages[i].Content = contentList
}
}
if request.Functions != nil {
zhipuRequest.Tools = make([]ZhipuTool, 0, len(request.Functions))
for _, function := range request.Functions {