0


Python调用GPT3.5接口的最新方法

  1. GPT3.5接口调用方法主要包括openai安装、api_requestor.py替换、接口调用、示例程序说明四个部分。

1 openai安装

  1. Python openai库可直接通过pip install openai安装。如果已经安装openai,但是后续提示找不到ChatCompletion,那么请使用命令“pip install -U openai”来升级openai

2 api_requestor.py替换

  1. Python openai安装完成之后,会产生api_requestor.py文件,文件位于python环境库文件目录下“site-packages\openai\api_requestor.py”,如下所示。将该文件进行替换,在公众号乐乐感知学堂中回复api35即可获得用来替换的文件。
  1. Windows
  2. C:\ProgramData\Anaconda3\Lib\site-packages\openai\api_requestor.py
  3. C:\ProgramData\Anaconda3\envs\xxx\lib\site-packages\openai\api_requestor.py
  4. Linux
  5. /root/miniconda3/lib/pythonxx/site-packages/openaiapi_requestor.py
  6. /root/miniconda3/envs/xxx/lib/pythonxx/site-packages/openaiapi_requestor.py
  7. 将该文件进行替换,在公众号乐乐感知学堂中回复api35即可获得用来替换的文件。

3 接口调用说明

  1. 接口调用方式不变,与openai自身调用方式一致。输入主要有7个参数。
  2. 1model:模型名称,gpt-3.5-turbogpt-3.5-turbo-0301
  3. 2messages:问题或待补全内容,下面重点介绍。
  4. 3temperature:控制结果随机性,0.0表示结果固定,随机性大可以设置为0.9
  5. 4max_tokens:最大返回字数(包括问题和答案),通常汉字占两个token。假设设置成100,如果prompt问题中有40个汉字,那么返回结果中最多包括10个汉字。ChatGPT API允许的最大token数量为4096,即max_tokens最大设置为4096减去问题的token数量。
  6. 5top_p:设置为1即可。
  7. 6frequency_penalty:设置为0即可。
  8. 7presence_penalty:设置为0即可。
  9. 8stream:控制连续输出或完整输出。
  10. 需要注意,上述输入参数增加stream,即是否采用控制流的方式输出。
  11. 如果stream取值为False,那么完全返回全部文字结果,可通过response.choices[0].delta['content']进行读取。但是,字数越多,等待返回时间越长,时间可参考控制流读出时的4字/每秒。如果steam取值为True时,那么返回结果是一个Python generator,需要通过迭代获取结果,平均大约每秒钟4个字(33134字,39157字)。读取程序如下所示.

4 message

  1. messages字段组成部分包括角色rolecontent问题两个部分组成,如下所示:
  1. model="gpt-3.5-turbo",
  2. messages=[
  3. {"role": "system", "content": "You are a helpful assistant."},
  4. {"role": "user", "content": "Who won the world series in 2020?"},
  5. {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
  6. {"role": "user", "content": "Where was it played?"}
  7. ]
  1. gpt-3.5-turbo模型中,角色role包含system系统、assistant助手和用户user三种类型。System角色相当于告诉ChatGPT具体以何种角色回答问题,需要在content中指明具体的角色和问题内容。而gpt-3.5-turbo-0301主要区别在于更加关注问题内容,而不会特别关注具体的角色部分。gpt-3.5-turbo-0301模型有效期到61日,而gpt-3.5-turbo会持续更新。
  2. assistant助手和用户user则相当于已经指明了角色,content直接写入关注的问题即可。

5 示例程序

  1. 1stream = False
  1. import openai
  2. def openai_reply(content, apikey):
  3. openai.api_key = apikey
  4. response = openai.ChatCompletion.create(
  5. model="gpt-3.5-turbo-0301",#gpt-3.5-turbo-0301
  6. messages=[
  7. {"role": "user", "content": content}
  8. ],
  9. temperature=0.5,
  10. max_tokens=1000,
  11. top_p=1,
  12. frequency_penalty=0,
  13. presence_penalty=0,
  14. )
  15. # print(response)
  16. return response.choices[0].message.content
  17. if __name__ == '__main__':
  18. content = '你是谁?'
  19. ans = openai_reply(content, '你的APIKEY')
  20. print(ans)
  1. 2stream = True
  1. import time
  2. import openai
  3. openai.api_key = "你的APIKEY"
  4. response = openai.ChatCompletion.create(
  5. model="gpt-3.5-turbo",
  6. messages=[
  7. {"role": "user", "content": 'how are you'}
  8. ],
  9. temperature=0,
  10. max_tokens=1000,
  11. stream=True,
  12. top_p=1,
  13. frequency_penalty=0,
  14. presence_penalty=0,
  15. user='RdFast智能创作机器人小程序'
  16. )
  17. print(response)
  18. print('response["choices"][0]["text"]结果如下所示:')
  19. ans = ''
  20. for r in response:
  21. if 'content' in r.choices[0].delta:
  22. ans += r.choices[0].delta['content']
  23. print(ans)
  24. print(ans)

3 API调用效果

标签: gpt-3 gpt35 python

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

“Python调用GPT3.5接口的最新方法”的评论:

还没有评论