使用IPv4代理调用OpenAI API遇407认证错误求助
问题排查与解决
核心错误原因
你把代理地址错误赋值给了base_url参数,base_url是用来指定OpenAI API的自定义端点(如私有部署的兼容API),而非代理服务器地址。这会导致客户端直接向代理服务器发送API请求,触发代理的认证拦截,返回407错误。
解决方案
方法1:通过httpx配置代理(OpenAI v1.x SDK推荐方式)
OpenAI Python SDK基于httpx实现网络请求,可通过自定义httpx.Client配置代理及认证信息:
import config from openai import OpenAI import httpx # 代理配置(包含用户名密码) proxy_url = "http://M0k0EN:ZSNkKy@95.164.128.235:9943" # 创建带代理的httpx客户端 httpx_client = httpx.Client(proxies=proxy_url) # 初始化OpenAI客户端,传入自定义httpx客户端,base_url使用默认官方地址 client = OpenAI( api_key=config.api_key, http_client=httpx_client ) completion = client.completions.create( model="gpt-3.5-turbo-instruct", prompt="Say this is a test", max_tokens=7, temperature=0 ) print(completion.choices[0].text)
方法2:通过环境变量设置代理(全局生效)
如果你不想修改代码,也可以在运行脚本前设置环境变量:
# Linux/macOS export HTTPS_PROXY="http://M0k0EN:ZSNkKy@95.164.128.235:9943" # Windows(PowerShell) $env:HTTPS_PROXY="http://M0k0EN:ZSNkKy@95.164.128.235:9943"
设置后直接运行你的原代码(需移除base_url参数,恢复默认值)。
额外检查项
- 确认代理的用户名、密码、IP和端口完全正确,无拼写错误
- 测试代理服务器是否可正常连通,可通过
curl -x http://M0k0EN:ZSNkKy@95.164.128.235:9943 https://api.openai.com/v1/models验证 - 确保代理服务器未被OpenAI封禁,部分公开代理可能因滥用被限制访问
内容的提问来源于stack exchange,提问作者SajCrew
相关产品推荐
相关产品推荐

