gpt4 book ai didi

go - 编码文件以发送到 Google AutoML

转载 作者:数据小太阳 更新时间:2023-10-29 03:11:05 24 4
gpt4 key购买 nike

我正在编写一个 golang 脚本来将图像发送到 Google AutoML API 的预测引擎。

它接受大多数使用以下代码的文件,但某些 .jpeg 或 .jpeg 会返回错误 500,提示文件无效。大多数情况下它都有效,但我无法弄清楚异常(exception)情况。它们是完全有效的 jpg。

我正在使用 EncodeToString 对有效负载进行编码。

除其他外,我尝试对其进行解码,将其保存为 PNG,但似乎没有任何效果。它不喜欢某些图像。

请问是不是我的方法出错了?任何帮助将非常感激。谢谢

PS 文件保存到文件系统并上传到 S3 就好了。它只是在发送到 Google 时失败的字符串编码。

imgFile, err := os.Open(filename)
if err != nil {
fmt.Println(err)
}

img, fname, err := image.Decode(imgFile)
if err != nil {
fmt.Println(fname)
}

buf := new(bytes.Buffer)
err = jpeg.Encode(buf, img, nil)

// Encode as base64.
imgBase64Str := base64.StdEncoding.EncodeToString(buf.Bytes())

defer imgFile.Close()

payload := fmt.Sprintf(`{"payload": {"image": {"imageBytes": "%v"},}}`, imgBase64Str)

// send as a byte
pay := bytes.NewBuffer([]byte(payload))
req, err := http.NewRequest(http.MethodPost, URL.String(), pay)

最佳答案

我相信我已经修好了。

我再次查看了 Google 文档,它说要将语音转为文本(这是一个不同的 API) encode64 -w 0

因此,查看 Go 文档,似乎 RawStdEncoding 是用来复制此行为的正确方法,而不是 StdEncoding

还没有图像失败。希望有一天这对其他人有所帮助。

关于go - 编码文件以发送到 Google AutoML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com