如何解决连接GPT-3 OpenAI时出现的API连接错误和SSL认证错误?

4

我正在尝试通过使用GPT-3 open AI实验Python脚本(jupyter notebook)来创建一些NLP项目,并了解其功能和用例。在尝试打开JSON文件时,我遇到了SSL认证和API连接错误。我在互联网上查找了一些解决方案,但没有提供任何治疗方法。我简单地尝试通过API密钥连接服务器,但代码无法运行。我执行的代码如下所示-

import ssl
import certifi
certifi.where()
import openai
api_key='my_api_key'            #it is confidential string
openai.api_key = api_key
response = openai.File.create(file=open("C:\\Users\\pythons_scripts\\Corporate Governance1658287996.json"), purpose="search")
print(response)

因此,上述脚本会引发以下所有错误-
SSLCertVerificationError                  Traceback (most recent call last)    
SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)
APIConnectionError                        Traceback (most recent call last)
APIConnectionError: Error communicating with OpenAI

有人知道如何处理这个问题吗?或者已经解决了这个问题吗?有人能建议一个有效的解决方案吗?

2个回答

2
OpenAI库在底层使用标准的Python requests库。这意味着你可以使用以下环境变量(在Python Requests - How to use system ca-certificates (debian/ubuntu)?中找到)来设置CA Bundle。
名称:REQUESTS_CA_BUNDLE
值:/etc/ssl/certs/ca-certificates.crt
记得将该值更改为你的CA Bundle文件的实际路径。
已在Windows上进行过测试并确认可行,但应该也适用于其他平台。

1
已确认在WSL2 Ubuntu上可以工作。谢谢! - bennettnw2

0

我也遇到了同样的问题,尝试使用公司网络API。不幸的是,在类似的情况下,我不得不禁用SSL验证。我尝试添加验证_ssl=False的变体,但没有起作用,还尝试更新conda、certifi等,以防万一。

然后我检查了各种API文档,甚至在这里的代码库https://github.com/openai/openai-python/blob/main/openai/api_requestor.py上看是否有任何提示,发现了这个:

def _make_session() -> requests.Session:
    if not openai.verify_ssl_certs:
        warnings.warn("verify_ssl_certs is ignored; openai always verifies.")

看起来开发人员似乎不支持禁用ssl作为原则。当然,这只是一个猜测,如果被证明是错误的,我会非常高兴 :)

很抱歉没有解决您的问题 祝好!

顺便说一句:您可以考虑尝试另一个库/方法。在https://beta.openai.com/docs/api-reference/introduction中,他们说:“您可以通过任何语言的HTTP请求与API交互,通过我们的官方Python绑定、官方Node.js库或社区维护的库。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接