我使用的是EC2服务器,并在其上安装了SSL。我还使用A DNS记录连接了我的GoDaddy域。然而,当我调用OpenAI API时,
def call_openai(search_prompt, engine='text-davinci-003', temp=0.3, top_p=1.0, tokens=400, freq_pen=0.0, pres_pen=0.0, stop=['END']):
prompt = search_prompt.encode(encoding='ASCII',errors='ignore').decode()
response = openai.Completion.create(
engine=engine,
prompt=prompt,
temperature=temp,
max_tokens=tokens,
top_p=top_p,
frequency_penalty=freq_pen,
presence_penalty=pres_pen,
stop=stop)
text = response['choices'][0]['text'].strip()
return text
使用Python SDK时,我收到以下错误消息:
openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/engines/text-davinci-003/completions (Caused by SSLError(PermissionError(13, 'Permission denied')))
请注意,当我在浏览器中输入服务器的IP地址时,它似乎不安全,但我的域在使用它显示ec2内容时是安全的。
如何修复此错误?
1条答案
按热度按时间ux6nzvsh1#
从OpenAI下载根证书:
a.在Web浏览器中转到https://api.openai.com/v1/engines。
B.单击URL旁边的锁定按钮并选择证书。
c.单击“详细信息”,然后单击“导出”。
d.将证书保存到计算机。
更新代码以使用下载的证书:
a.在Python文件的顶部,在任何其他导入或代码之前添加以下代码:
python复制代码
将/path/to/OpenAI-Root. crt替换为计算机上下载的证书的实际路径。
通过设置REQUESTS_CA_BUNDLE环境变量,您可以告诉requests库(由openai库使用)使用指定的根证书进行SSL验证。