报错解决:APIConnectionError 调用异常处理 (openAI api)

1. 报错

raise error.APIConnectionError(
openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host=‘api.openai.com’, port=443): Max retries exceeded with url: /v1/audio/transcriptions (Caused by SSLError(“Can’t connect to HTTPS URL because the SSL module is not available.”))

2. 解决方法

  • 文件路径:./envs/虚拟环境名称/Lib/site-packages/openai/api_requestor.py(openai库路径)
  • 找到if not hasattr(_thread_context, "session"):方法,加入代理:
proxy = {
        'http': 'http://localhost:7890',
        'https': 'http://localhost:7890'
        }
  • result = _thread_context.session.request(中加入代理:

	proxies=proxy,
	

在这里插入图片描述

  • 主文件中配置环境
import os
 
os.environ["http_proxy"] = "http://localhost:7890"
os.environ["https_proxy"] = "http://localhost:7890"

3. 测试案例

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

import openai
from langchain.llms import OpenAI

llm = OpenAI(temperature=0.9)

text = "Who won the world series in 2020?"
print(llm(text))

参考:openai-chatGPT的API调用异常处理

### Python 中 `urllib.error.URLError` 错误分析与解决方案 在使用 Python 的 `urllib` 库时,可能会遇到类似于 `[Errno 111] Connection refused` 的错误。这种错误通常表示客户端尝试连接到服务器时被拒绝。以下是对此类问题的原因分析以及可能的解决方案。 #### 原因分析 该错误的核心原因是目标主机主动拒绝了连接请求。具体原因可能包括但不限于以下几种情况: - **网络配置问题**:本地机器或远程服务器可能存在防火墙或其他安全策略阻止访问[^2]。 - **服务未启动**:目标服务器上的服务可能尚未运行或者监听端口不匹配[^5]。 - **代理设置残留**:如果曾经手动设置了代理并关闭后未能完全清除,则可能导致后续请求失败。 - **URL地址错误**:提供的 URL 地址有误,指向了一个不存在的服务位置[^4]。 #### 解决方案 针对上述提到的各种可能性,下面列举了几种常见的排查和修复手段: 1. **确认服务状态** 验证目标服务器上对应的应用程序是否正在运行,并且开放了正确的端口号供外部访问。可以通过命令行工具如 telnet 或 netstat 来测试连通性。 2. **调整防火墙/SELinux 设置** 如果是在 Linux 平台上操作,需检查是否有任何软件层面的安全机制(比如 iptables、firewalld 或 SELinux)阻碍正常通信流。适当放宽规则允许必要的入站流量通过。 3. **清理旧有的代理设定** 当先前为了绕过某些限制而启用了特定类型的代理之后再恢复正常模式下工作却依旧遭遇障碍的话,应该重新审视全局环境变量里关于 HTTP_PROXY 和 HTTPS_PROXY 的定义是否存在冲突现象;必要时候可以直接删除这些键值对来消除干扰因素的影响。 4. **验证输入参数的有效性** 对于所使用的每一个链接字符串都要仔细核对其准确性——尤其是当涉及到 SSL/TLS 加密传输协议的时候更是如此,因为哪怕只是少打一个字符都足以引发严重的认证异常状况发生[^3]。 5. **升级依赖库版本** 考虑到部分老旧版次之间存在着兼容性的差异之处,在条件许可的情况下建议及时更新至最新稳定发行版号以便获得更好的技术支持保障同时减少潜在风险隐患的存在概率[^1]. 6. **采用更高级别的HTTP客户端库** 相较之下,第三方模块 Requests 提供的功能更为强大灵活而且易于维护管理,因此推荐优先选用它来进行复杂的网页抓取任务而非单纯依靠内置的标准组件完成全部需求. ```python import requests headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get('http://example.com', headers=headers) if response.status_code == 200: print("Request successful!") else: print(f"Failed with status code {response.status_code}") ``` #### 总结 综上所述,面对 `URLError: [Errno 111] Connection refused` 这样的挑战时,我们需要从多个角度出发进行全面细致地诊断才能找到最合适的应对措施。以上介绍的方法涵盖了大部分常见场景下的处理思路,希望能够帮助您顺利解决问题。
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lambdarw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值