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

1 openai安装

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

2 api_requestor.py替换

Python openai安装完成之后,会产生api_requestor.py文件,文件位于python环境库文件目录下“site-packages\openai\api_requestor.py”,如下所示。将该文件进行替换,在公众号乐乐感知学堂中回复api35即可获得用来替换的文件。

Windows:
C:\ProgramData\Anaconda3\Lib\site-packages\openai\api_requestor.py
或
C:\ProgramData\Anaconda3\envs\xxx\lib\site-packages\openai\api_requestor.py
Linux:
/root/miniconda3/lib/pythonxx/site-packages/openaiapi_requestor.py
或
/root/miniconda3/envs/xxx/lib/pythonxx/site-packages/openaiapi_requestor.py
将该文件进行替换,在公众号乐乐感知学堂中回复api35即可获得用来替换的文件。

3 接口调用说明

接口调用方式不变,与openai自身调用方式一致。输入主要有7个参数。

(1)model:模型名称,gpt-3.5-turbo或gpt-3.5-turbo-0301

(2)messages:问题或待补全内容,下面重点介绍。

(3)temperature:控制结果随机性,0.0表示结果固定,随机性大可以设置为0.9。

(4)max_tokens:最大返回字数(包括问题和答案),通常汉字占两个token。假设设置成100,如果prompt问题中有40个汉字,那么返回结果中最多包括10个汉字。ChatGPT API允许的最大token数量为4096,即max_tokens最大设置为4096减去问题的token数量。

(5)top_p:设置为1即可。

(6)frequency_penalty:设置为0即可。

(7)presence_penalty:设置为0即可。

(8)stream:控制连续输出或完整输出。

需要注意,上述输入参数增加stream,即是否采用控制流的方式输出。

如果stream取值为False,那么完全返回全部文字结果,可通过response.choices[0].delta['content']进行读取。但是,字数越多,等待返回时间越长,时间可参考控制流读出时的4字/每秒。如果steam取值为True时,那么返回结果是一个Python generator,需要通过迭代获取结果,平均大约每秒钟4个字(33秒134字,39秒157字)。读取程序如下所示.

4 message

messages字段组成部分包括角色role和content问题两个部分组成,如下所示:

  model="gpt-3.5-turbo",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Who won the world series in 2020?"},{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},{"role": "user", "content": "Where was it played?"}]

在gpt-3.5-turbo模型中,角色role包含system系统、assistant助手和用户user三种类型。System角色相当于告诉ChatGPT具体以何种角色回答问题,需要在content中指明具体的角色和问题内容。而gpt-3.5-turbo-0301主要区别在于更加关注问题内容,而不会特别关注具体的角色部分。gpt-3.5-turbo-0301模型有效期到6月1日,而gpt-3.5-turbo会持续更新。

assistant助手和用户user则相当于已经指明了角色,content直接写入关注的问题即可。

5 示例程序

(1)stream = False

import openaidef openai_reply(content, apikey):openai.api_key = apikeyresponse = openai.ChatCompletion.create(model="gpt-3.5-turbo-0301",#gpt-3.5-turbo-0301messages=[{"role": "user", "content": content}],temperature=0.5,max_tokens=1000,top_p=1,frequency_penalty=0,presence_penalty=0,)# print(response)return response.choices[0].message.contentif __name__ == '__main__':content = '你是谁?'ans = openai_reply(content, '你的APIKEY')print(ans)

(2)stream = True

import time
import openaiopenai.api_key = "你的APIKEY"
response = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role": "user", "content": 'how are you'}],temperature=0,max_tokens=1000,stream=True,top_p=1,frequency_penalty=0,presence_penalty=0,user='RdFast智能创作机器人小程序'
)print(response)
print('response["choices"][0]["text"]结果如下所示:')
ans = ''
for r in response:if 'content' in r.choices[0].delta:ans += r.choices[0].delta['content']print(ans)print(ans)

3 API调用效果

Python调用GPT3.5接口的最新方法相关推荐

  1. c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法

    c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...

  2. python调用第三方软件发信代码_【IT专家】python调用第三方邮件接口

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 python 调用第三方邮件接口 2017/08/10 1 单线程发送 #!/usr/bin/env python# -*- coding: UT ...

  3. python调用企业微信接口

    python调用企业微信接口实现关联添加用户 # --*-- coding: utf-8 --*--import json import urllib2coreID = secret = apisec ...

  4. 如何用python调用百度云接口实例

    python可以通过python+Opencv来实现很多图片变换之类的工作,因为OpenCV库的功能可以说是相当强大,很多功能都可以完成.但是实现起来需要自己造轮子,所以很费时间和精力,我们可以直接学 ...

  5. python调用zabbix api接口实时展示数据

    近日公司准备自已做一个运维管理平台,其中的监控部分,打算调用zabbix api接口来进行展示. 经过思考之后,计划获取如下内容: 1.  获得认证密钥 2.  获取zabbix所有的主机组 3.  ...

  6. 调用python接口并画图_【PySpark源码解析】教你用Python调用高效Scala接口

    点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 机器之心专栏 作者:汇量科技-陈绪 众所周知,Spark 框架主要是由 Scala 语言实现,同时也包含少量 Java 代码.Spa ...

  7. python 调用c++库接口出错

    首先,python使用c++库传数据的部分方法在我之前的小心得里有:python调用c++的库传递二级指针,希望有帮到大家. 今天说一下c++的接口里使用智能指针shared_ptr接收数据的问题,接 ...

  8. python函数主要通过接口与外界通信_PySpark源码解析,用Python调用高效Scala接口,搞定大规模数据分析...

    机器之心专栏 作者:汇量科技-陈绪 相较于Scala语言而言,Python具有其独有的优势及广泛应用性,因此Spark也推出了PySpark,在框架上提供了利用Python语言的接口,为数据科学家使用 ...

  9. Python 调用支付宝沙箱接口 实现 扫码支付

    思路剖析 支付宝开放平台 登录 登陆之后 点击这个 研发服务 然后下载 一个 支付宝沙箱的 移动端 点击左侧的沙箱账号,就可以知道 登录沙箱的 账号和 密码了,也可以 往死充钱.他是可以扫 沙箱收款的 ...

最新文章

  1. mysql中char,varchar,text
  2. Dubbo负载均衡原理
  3. hdu 2686(多线程dp)
  4. Simulink之门极关断晶闸管(GTO)
  5. linux su oracle permission denied,su: /bin/bash: Permission denied带来的疑惑
  6. 【Elasticsearch】如何在 Elasticsearch 中查找并移除重复文档
  7. 人脸识别十大关键技术
  8. 【表格合并单元格】vue-elementul表格动态合并实现方法,合并行,合并列方法【详细讲解,看完就理解】
  9. 电脑ping服务器显示传输失败,Win10电脑ping时显示“传输失败常见故障”的最佳解决方案...
  10. 关于FFmpeg对手机里拍摄的视频进行转码时角度问题的处理
  11. iphone7plus计算机,iPhone 7 Plus和iPhone 8 Plus的区别-太平洋电脑网
  12. Cadence Allegro如何设置stroke快捷命令
  13. 量子计算机-争取让没有物理、数学背景的小白也能看懂!
  14. centos7分区、挂载、磁盘合并
  15. 高德地图经纬度和百度地图经纬度互相转换
  16. 实验吧 —— web完整渗透测试实验指导书(图片版)
  17. 一种应用更广泛的DLL侧载方法
  18. android xutils 上传图片,Android使用xUtils3上传图片报错解决:java.lang.ArrayIndexOutOfBoundsException: 70918...
  19. 【运维面试】一个电商项目需要了解哪些知识点?
  20. Java风车动画代码_纯DOM+CSS3实现简单的小风车动画

热门文章

  1. Python+Vue计算机毕业设计体检预约平台管理系统22gqf(源码+程序+LW+部署)
  2. 学术工具-Citavi 简介
  3. 隐马尔科夫模型HMM之Baum-Welch算法Python代码实现
  4. HTML网页设计:九、网页的简单布局
  5. 基于B/S模式的学生成绩管理信息系统【生产实习课设报告】
  6. RTX2060和GTX1080ti 哪个好
  7. ServiceStage-华为微服务开发与管理平台
  8. 数字孪生的安全挑战和机遇
  9. ABB机器人通过分割符分割字符串
  10. 微服务02——RPC协议