python调用GPT全记录

1.创建虚拟环境

conda create -n chatG python==3.8

报错:CondaHTTPError: HTTP 403 FORBIDDEN for url <http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/win-64/python-3.8.0-hc9e8b01_5.tar.bz2>

可以看出应该是清华源的问题,换回默认源,解决:

conda config --remove-key channels

2.激活虚拟环境

conda activate chatG

3.安装OpenAI依赖包

pip install openai

4.获取openAI API

获取方法:

  • 进入openai网站,进行注册。
  • 完成注册后,进入个人中心,找到API管理界面。
  • 进入API管理界面后,生成一个API key(生成后立马复制!它不会2次显示)。
  • 在python中调取api接口,刚开始使用的代码如下:
import openai, os
start_sequence = "\nA:"
restart_sequence = "Q: "
# Replace `<your_api_key>` with your actual OpenAI API key
openai.api_key = "<your_api_key>"
prompt = " "
while len(prompt)!=0:
prompt = input(restart_sequence)
response = openai.Completion.create(engine="text-davinci-003",prompt=prompt,temperature=1,max_tokens=2000,frequency_penalty=0,presence_penalty=0)
print(start_sequence,response["choices"][0]["text"].strip())

报错:

openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url:

解决方法:

  • 加入代理

文件路径:./envs/虚拟环境名称/Lib/site-packages/openai/api_requestor.py(openai库路径)
打开该.py并找到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"

解决

但是输第二个问题会报错

UnboundLocalError: local variable 'proxy' referenced before assignment

未解决,直接换了个代码,如下

import openai
import json

# 设置API密钥
openai.api_key = "<your_api_key>"
def chat(prompt):
    response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        # {"role": "user", "content":prompt}
        {"role":"system","content":"对网络谣言进行判断。"},
        {"role":"user","content":"判断题,请判断是否是谣言,并回答‘是’或者‘否’,并解释原因。"},
        {"role":"user","content":"UPDATE: Police storm #Sydney cafe amid gunshots and explosions"}
    ]
)
    answer = response.choices[0].message.content
    return answer

if __name__=='__main__':
    prompt='UPDATE: Police storm #Sydney cafe amid gunshots and explosions'
    result = chat(prompt)
    print(result)

这个跑成功

刚开始将中文prompt换成英文后,时不时报

urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError(0, 'Error'))

openai.error.APIConnectionError: Error communicating with OpenAI: ('Connection aborted.', OSError(0, 'Error'))

之类的错,网上有人说是urllib3版本的问题,但是我不理解这版本跟中英文有什么关系,重新换个个梯子,遂解决,所以我觉得归根结底还是网络的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值