Gemini图片对话中,base64图片导致很卡,该如何解决呢。

wocall

google新推出的Gemini Image模型,可以实现连续图片交互,但是它生成的图片以base64格式传给用户端,保存到数据库就很大了,一方面咱们的ai貌似不能直接浏览,估计要修改显示代码;另一方面导致后端消息列表很卡,这个不知道有没有好的办法来处理。

410 3 0
3个回答

轻云蔽月

只能存本地,富文本中替换成图片链接。

  • 暂无评论
lsmir2

1 Base64 格式图片转换为图片文件
2 把文件传到OSS
3 把图片连接转成 img标签 显示给用户

让AI写吧

function base64ToImage($base64String, $outputFile) {
    // 去除Base64字符串中的前缀
    $base64String = str_replace('data:image/png;base64,', '', $base64String);
    $base64String = str_replace('data:image/jpeg;base64,', '', $base64String);
    $base64String = str_replace('data:image/gif;base64,', '', $base64String);

    // 处理可能的空格替换
    $base64String = str_replace(' ', '+', $base64String);

    // 解码Base64字符串
    $imageData = base64_decode($base64String);

    if ($imageData === false) {
        return false; // 解码失败
    }

    // 将二进制数据写入文件
    $result = file_put_contents($outputFile, $imageData);

    return $result !== false;
}

// 使用示例
$base64Image = "这里是你的Base64图片字符串";
$outputPath = "output_image.png"; // 输出文件路径

if (base64ToImage($base64Image, $outputPath)) {
    echo "图片转换成功,已保存至: " . $outputPath;
} else {
    echo "图片转换失败";
}
ichynul

谁教你的,把base64存数据库

  • 暂无评论
🔝