mirror of
				https://github.com/linux-do/new-api.git
				synced 2025-11-04 13:23:42 +08:00 
			
		
		
		
	Merge pull request #383 from Yan-Zero/main
fix: the base64 format image_url for gemini
This commit is contained in:
		@@ -83,13 +83,29 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest) *GeminiChatReques
 | 
				
			|||||||
				if imageNum > GeminiVisionMaxImageNum {
 | 
									if imageNum > GeminiVisionMaxImageNum {
 | 
				
			||||||
					continue
 | 
										continue
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				mimeType, data, _ := service.GetImageFromUrl(part.ImageUrl.(dto.MessageImageUrl).Url)
 | 
									// 判断是否是url
 | 
				
			||||||
				parts = append(parts, GeminiPart{
 | 
									if strings.HasPrefix(part.ImageUrl.(dto.MessageImageUrl).Url, "http") {
 | 
				
			||||||
					InlineData: &GeminiInlineData{
 | 
										// 是url,获取图片的类型和base64编码的数据
 | 
				
			||||||
						MimeType: mimeType,
 | 
										mimeType, data, _ := service.GetImageFromUrl(part.ImageUrl.(dto.MessageImageUrl).Url)
 | 
				
			||||||
						Data:     data,
 | 
										parts = append(parts, GeminiPart{
 | 
				
			||||||
					},
 | 
											InlineData: &GeminiInlineData{
 | 
				
			||||||
				})
 | 
												MimeType: mimeType,
 | 
				
			||||||
 | 
												Data:     data,
 | 
				
			||||||
 | 
											},
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									else{
 | 
				
			||||||
 | 
										_, format, base64String, err := service.DecodeBase64ImageData(part.ImageUrl.(dto.MessageImageUrl).Url)
 | 
				
			||||||
 | 
										if err != nil {
 | 
				
			||||||
 | 
											return nil, err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										parts = append(parts, GeminiPart{
 | 
				
			||||||
 | 
											InlineData: &GeminiInlineData{
 | 
				
			||||||
 | 
												MimeType: "image/" + format,
 | 
				
			||||||
 | 
												Data:     base64String,
 | 
				
			||||||
 | 
											},
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		content.Parts = parts
 | 
							content.Parts = parts
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user