【完美解决:openai.error.APIConnectionError: Error communicating with OpenAI:】

完美解决:openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host=‘api.openai.com’, port=443)

报错原文如下:

openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:997)'))))

解决方案:

步骤一:
查找python解释器对应openai安装包里的api_requestor.py

例如
D:\package\Anaconda3\envs\all\Lib\site-packages\openai\api_requestor.py

步骤二:
如下修改代码,增加“小魔法”

		if not hasattr(_thread_context, "session"):
           proxy = {
                       'http': 'http://localhost:7890',
                       'https': 'http://localhost:7890'
                   }
           _thread_context.session = _make_session()
           _thread_context.session_create_time = time.time()
       elif (
           time.time() - getattr(_thread_context, "session_create_time", 0)
           >= MAX_SESSION_LIFETIME_SECS
       ):
           _thread_context.session.close()
           _thread_context.session = _make_session()
           _thread_context.session_create_time = time.time()
       try:
           result = _thread_context.session.request(
               method,
               abs_url,
               headers=headers,
               data=data,
               files=files,
               stream=stream,
               timeout=request_timeout if request_timeout else TIMEOUT_SECS,
               # proxies=_thread_context.session.proxies,
               proxies=proxy,
           )

步骤三:
在调用openAI的代码顶部添加环境配置
例如:

import openai
import os

os.environ["http_proxy"] = "http://localhost:7890"
os.environ["https_proxy"] = "http://localhost:7890"

# Replace 'your-api-key' with your actual OpenAI API key
openai.api_key = 'your-api-key'

response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Which vitamin is supplied from only animal source:A.Vitamin C B. Vitamin B7 C.Vitamin B12 D. Vitamin D"},
    ]
)

print(response['choices'][0]['message']['content'])

调用测试时,请把api-key换成自己的秘钥

步骤四:
打开本机的小魔法,执行脚本

至此,问题解决

  • 10
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值