0


调用ChatGpt的API接口遇到问题详解

  1. 在调用ChatGptAPI接口时,由于需要科学上网,所以会遇到一些问题,按照调用API接口的目的,可分为两类:

一,调用API搭建对话机器人

  1. 报错:openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/engines/text-davinci-002/completions (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)')))
  2. 使用别人封装好的接口:

参数名类型长度必须备注apiKeyString64是OpenAI 的 ApiKeysessionIdString64是会话ID,关联上下文,推荐使用UUID作为sessionIdcontentString1000是发送的内容
代码示例如下,只需要将‘apikey’处值修改为自己的apikey即可。

二,调用API接口使用GPT3或者GPT4算法处理相关NLP任务

  1. 以概念抽取任务为例:
  2. 问题:openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/engines/text-davinci-002/completions (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)')))
  3. 解决方案:使用代理(proxy)来解决这个问题
  4. 代码示例如下:

  1. 这里需要使用你自己实际的代理地址和端口替换
  1. your_proxy_address

  1. your_proxy_port

。这样,你的请求将通过指定的代理服务器发送。

  1. 这种情况下,由于OpenAI库没有
  1. api_client

属性,所以会报错ttributeError: module 'openai' has no attribute 'api_client',此时需要创建一个继承自

  1. openai.api_resources.completion.Completion

的新类,并重写

  1. _create

方法。在这个新的

  1. _create

方法中,可以指定代理设置。代码如下:

  1. 同上,只需要将proxies中的代理地址和端口替换为自己的就可以了。如果这时候还是报错:openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/engines/text-davinci-002/completions (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)')))
  2. 那么问题大概就是urllib3的版本问题了,将urllib3的版本退回至1.25.11版本问题就解决。

运行结果如下:

参考链接:

OpenAI API代理 (openai-proxy.com)

解决OpenAI API 挂了 Dai Li 还是连接不上的问题 openai.error.APIConnectionError - 知乎 (zhihu.com)


本文转载自: https://blog.csdn.net/qq_43704127/article/details/129740456
版权归原作者 qq_43704127 所有, 如有侵权,请联系我们删除。

“调用ChatGpt的API接口遇到问题详解”的评论:

还没有评论