You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言openai包调用GPT-4o识别图片报错400求助

解决R中openai包调用GPT-4o识别本地图片的“Invalid image”错误

错误原因

你直接传入本地图片文件名book1.jpg,但OpenAI API无法访问本地文件系统,必须提供可公开访问的HTTP/HTTPS URL,或者将图片编码为Base64格式传入。

解决方法

方法1:将本地图片转为Base64编码传入

这是处理本地图片最可靠的方式,无需上传到外部服务器。先安装base64enc包处理编码,再修改代码:

library(openai)
library(base64enc) # 先执行install.packages("base64enc")安装

Sys.setenv(OPENAI_API_KEY = "myopenAIkey")   
image_path <- 'www/img/book1.jpg'

# 把本地图片转成Base64编码并拼接API要求的前缀
image_base64 <- base64encode(image_path)
image_url <- paste0("data:image/jpeg;base64,", image_base64)

create_chat_completion( 
  model = 'gpt-4o',
  messages = list(
    list(
      role = "user",
      content = list(
        list(
          type = "text",
          text = "What’s in this image?"
        ),
        list(
          type = "image_url",
          image_url = list(
            url = image_url,
            detail = "high"
          )
        )
      )
    )
  )
)

方法2:使用公开可访问的图片URL

如果你的图片已经上传到云存储(如阿里云OSS、AWS S3等),直接替换为图片的公开HTTP/HTTPS链接即可:

library(openai)

Sys.setenv(OPENAI_API_KEY = "myopenAIkey")   

create_chat_completion( 
  model = 'gpt-4o',
  messages = list(
    list(
      role = "user",
      content = list(
        list(
          type = "text",
          text = "What’s in this image?"
        ),
        list(
          type = "image_url",
          image_url = list(
            url = "https://example.com/path/to/book1.jpg", # 替换成你的公开图片链接
            detail = "high"
          )
        )
      )
    )
  )
)

注意事项

  • 不需要额外传入其他函数,核心问题是图片传递方式不符合API要求
  • 确保图片格式为API支持的类型(JPEG、PNG、WEBP等)
  • Base64编码后的图片内容不要超过GPT-4o的单图大小限制(最大20MB)

内容的提问来源于stack exchange,提问作者Laura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 03:32:45