bug: Proxyagent is not used to add Google Gemini

报错 bug: Proxyagent is not used to add Google Gemini 通常出现在自托管 Langfuse 通过集群代理访问外网、并尝试新建 Google Gemini(Google AI Studio)LLM 连接时;由于 Gemini 适配器未注入 proxyAg

快速结论:报错 bug: Proxyagent is not used to add Google Gemini 通常出现在自托管 Langfuse 通过集群代理访问外网、并尝试新建 Google Gemini(Google AI Studio)LLM 连接时;由于 Gemini 适配器未注入 proxyAgent,HTTP_PROXY/HTTPS_PROXY/NO_PROXY 对其不生效,请求会直连 Google 接口而失败。优先排查 Langfuse 后端是否对 Gemini 适配器启用了代理。

适用环境:Langfuse 自托管 v3.133.0(Issue 报告版本);依赖代理变量(HTTP_PROXY、HTTPS_PROXY、NO_PROXY)的集群网络环境;涉及代码路径 packages/shared/src/server/llm/fetchLLMCompletion.ts。Issue 未提供操作系统、Python、CUDA、显卡信息。

最快修复方案:暂无确认的一步修复方案。Issue 讨论确认当前 UI/API 配置字段无法为 Gemini 开启代理,需要后端代码改动,或改用网络层代理/自定义代理服务器作为替代。

注意事项:Gemini 与 VertexAI 适配器目前也不支持 baseURL 参数,请求会固定发往默认 Google 端点,不能靠改写 baseURL 绕过代理限制;后端补丁方案在 Issue 中未给出实际提交或验证,属于推测方向。

问题场景

在自托管 Langfuse(v3.133.0)的集群环境中配置了代理变量,OpenAI 连接可以正常工作。随后在项目设置中新增 LLM 连接:选择 Google AI Studio 适配器、填写 Provider 名称与 API Key,点击 Create connection 时触发 Gemini 请求失败。

报错原文

[GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent: fetch failed.

原因分析

Issue 讨论确认:Langfuse 在 fetchLLMCompletion.ts 中实例化 ChatGoogleGenerativeAI 时没有传入 proxy agent 或 httpAgent,而 OpenAI 适配器会显式把 proxyAgent 注入 configuration.httpAgent。因此从 HTTPS_PROXY 创建的代理代理只被部分适配器使用,Gemini 不在其中,其请求会绕过集群代理直连 Google 端点,在受限网络中表现为 fetch failed。

可能原因还包括网络层对 Google 域名的出站限制;但由于 Issue 已定位到代码层面未使用 proxyAgent,这一项应作为首要排查方向。

环境排查

  • 确认 Langfuse 为自托管,并核对实际运行版本(Issue 为 v3.133.0)。
  • 确认部署环境中 HTTP_PROXY、HTTPS_PROXY、NO_PROXY 已正确设置并对 Langfuse 服务进程可见。
  • 确认出站网络是否允许访问 generativelanguage.googleapis.com,以及代理是否覆盖该域名。
  • 检查 packages/shared/src/server/llm/fetchLLMCompletion.ts 中 GoogleAIStudio 分支是否传入代理配置。
  • Issue 未涉及 Python、CUDA、PyTorch、显卡、节点版本,无需排查这些项。

解决步骤

  1. 先确认根因:对照 fetchLLMCompletion.ts,检查 GoogleAIStudio 分支的 new ChatGoogleGenerativeAI({...}) 是否缺少 httpAgent 或代理相关参数,同时对照 OpenAI 分支的 configuration.httpAgent: proxyAgent。
  2. 若需要代理访问 Gemini,可优先尝试在自维护构建中对 Gemini 适配器注入与 OpenAI 相同的 proxyAgent(后端补丁),该方案为 Issue 讨论中的推测方向,未在 Issue 中验证。
  3. 无法改代码时,采用网络层代理或自定义代理服务器,让 Langfuse 出站流量经代理转发至 Google 端点。
  4. 不要依赖 baseURL 改写:Issue 讨论说明 Gemini 与 VertexAI 适配器不支持 baseURL 参数。
  5. 不要依赖 UI/API 字段:当前配置项中没有可为 Gemini 开启代理的开关。

验证方法

重新在项目设置中创建 Google Gemini 连接并触发一次调用,确认不再出现 fetch failed;同时观察代理侧日志,确认对 generativelanguage.googleapis.com 的请求确实经过代理转发。

参考来源

langfuse/langfuse #10724

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 30882

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注