使用Chainlit开发OpenAI API应用时遇SSL握手失败错误求助
解决Chainlit+OpenAI开发中SSL证书验证失败的问题
执行chainlit run main.py启动服务后,服务器虽能运行,但出现以下SSL握手错误:
E0828 02:21:10.694000000 20136 src/core/tsi/ssl_transport_security.cc:1446] Handshake failed with fatal error SSL_ERROR_SSL: error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED.
这个错误本质是OpenAI API请求时的SSL证书验证失败,并非Chainlit本地服务器的问题,以下是修复步骤:
一、先修正代码中的两处错误
你的代码存在功能异常的潜在问题,建议先修复:
- API_KEY环境变量键名错误:OpenAI官方要求的环境变量是
OPENAI_API_KEY,而非openAi_API_KEY; temprature拼写错误:应为temperature;- 回复内容提取错误:直接将
response转成字符串会返回API原始响应结构,需提取实际对话内容。
修正后的代码:
import chainlit as cl import openai import os # 正确设置环境变量并读取API_KEY os.environ['OPENAI_API_KEY'] = '你的真实API_KEY' openai.api_key = os.getenv('OPENAI_API_KEY') @cl.on_message async def main(message : str): response = openai.ChatCompletion.create( model = 'gpt-3.5-turbo', messages = [ {"role":"system","content":"你是一个表单收集助手,需要询问用户的姓名、邮箱和电话号码"}, {"role":"user","content":message} ], temperature = 1 ) # 提取AI的回复内容 await cl.Message(content=response['choices'][0]['message']['content']).send()
二、修复SSL证书验证失败问题
方法1:更新本地CA证书
这是最安全的解决方案,不同系统操作如下:
- Windows:执行
pip install --upgrade certifi更新Python的证书库; - macOS:找到Python安装目录,运行
Install Certificates.command脚本(比如/Applications/Python 3.11/Install Certificates.command); - Linux(Ubuntu/Debian):执行
sudo apt update && sudo apt install --reinstall ca-certificates更新系统证书。
方法2:临时禁用SSL验证(仅测试环境使用)
如果只是临时测试,可在代码开头添加以下代码跳过证书验证,但生产环境绝对禁止使用:
import ssl ssl._create_default_https_context = ssl._create_unverified_context
方法3:排查网络环境
- 如果使用代理服务器,确保代理配置正确,且允许访问
api.openai.com; - 暂时关闭防火墙、VPN等网络工具,重试请求看是否恢复正常。
内容的提问来源于stack exchange,提问作者Puranjay Kwatra
相关产品推荐
相关产品推荐

