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

ellmer包chat_google_gemini调用Google Gemini返回空体错误排查

问题分析与解决方案

核心判断

从你描述的现象来看,问题大概率出在ellmer包本身的API调用逻辑上,而非你的代码或API配置:

  • 你已通过手动调用验证了GOOGLE_API_KEY、网络连接以及Gemini API的可用性;
  • ellmer发送的请求返回HTTP 404(资源不存在),说明它使用的API端点或请求路径存在错误,导致服务器找不到对应的资源。

具体排查与解决步骤

  1. 核对API端点差异
    Google Gemini的标准聊天API端点为https://generativelanguage.googleapis.com/v1/models/{model}:streamGenerateContent(流式)或/v1/models/{model}:generateContent(非流式)。你可以将httr2::with_verbosity捕获到的ellmer请求URL,与你手动测试时使用的URL做对比,重点看:

    • 域名是否正确(是否为generativelanguage.googleapis.com)
    • API版本号是否为v1
    • 模型路径与后缀是否匹配(比如是否错误使用了chat而非generateContent之类的后缀)
  2. 更新ellmer包至最新版
    旧版本的ellmer可能因Google Gemini API端点更新而未同步适配,执行以下命令更新:

    install.packages("ellmer")
    # 若从GitHub安装:
    # devtools::install_github("ellmer-org/ellmer")
    

    更新后再次测试调用,看是否修复了404问题。

  3. 临时替代方案
    如果ellmer仍无法正常工作,可基于你已验证的手动调用逻辑封装自定义函数,示例如下:

    library(httr2)
    
    gemini_chat <- function(prompt, model = "gemini-pro") {
      api_key <- Sys.getenv("GOOGLE_API_KEY")
      req <- request(paste0("https://generativelanguage.googleapis.com/v1/models/", model, ":generateContent")) %>%
        req_auth_bearer_token(api_key) %>%
        req_body_json(list(contents = list(list(parts = list(list(text = prompt)))))) %>%
        req_perform() %>%
        resp_body_json()
      return(req$candidates[[1]]$content$parts[[1]]$text)
    }
    
    # 使用示例
    gemini_chat("Hello, Gemini!")
    
  4. 反馈问题至ellmer开发者
    若确认是ellmer包的API调用逻辑错误,可前往ellmer的GitHub仓库提交Issue,附上你捕获的请求详情(URL、状态码等),帮助开发者定位修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:12:28