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

通过代理调用Gemini API遇地域不支持及SOCKS5代理兼容问题求助

问题分析

你遇到两个关联错误:一是Google gRPC客户端不支持Socks5代理,导致代理配置失效;二是请求发起的真实地域不在Gemini API支持范围内,触发FailedPrecondition: 400 User location is not supported错误。

解决步骤

1. 替换Socks5代理为HTTP/HTTPS代理

Gemini Python SDK依赖的gRPC客户端仅支持HTTP/HTTPS协议的代理,不兼容Socks5。如果只有Socks5代理可用,可通过工具将其转换为HTTP代理:

  • 使用privoxy:配置转发规则,将Socks5流量转为本地HTTP端口(默认8118),示例配置:
    forward-socks5 / localhost:<你的Socks5端口> .
    
  • 使用polipo:类似privoxy,实现Socks5到HTTP代理的转换。

2. 修改代码中的代理配置

将环境变量里的代理地址替换为HTTP/HTTPS格式:

import google.generativeai as genai
import os

# 替换为你的HTTP代理地址
os.environ['http_proxy'] = 'http://<user>:<pass>@<proxy>:<port>'
os.environ['HTTP_PROXY'] = 'http://<user>:<pass>@<proxy>:<port>'
os.environ['https_proxy'] = 'http://<user>:<pass>@<proxy>:<port>'
os.environ['HTTPS_PROXY'] = 'http://<user>:<pass>@<proxy>:<port>'

genai.configure(api_key=os.environ["GOOGLE_API_KEY"])

model = genai.GenerativeModel(model_name="gemini-1.5-flash")
response = model.generate_content(["Hi"])
print(response.text)

3. 验证代理有效性

运行代码前,先用curl确认代理能正常访问Gemini API:

curl -x http://<user>:<pass>@<proxy>:<port> https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=<你的API密钥> -H "Content-Type: application/json" -d '{"contents":[{"parts":[{"text":"Hi"}]}]}'

若能正常返回响应,说明代理配置正确。

额外排查点

  • 确认代理服务器IP属于Gemini API支持的地域
  • 检查API密钥无地域访问限制
  • 排查是否是代理服务商变更IP地域、或本地网络环境发生变化(导致之前的配置失效)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 02:20:56