Python调用GPT3.5接口的最新方法
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接口的最新方法相关推荐
- c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法
c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...
- python调用第三方软件发信代码_【IT专家】python调用第三方邮件接口
本文由我司收集整编,推荐下载,如有疑问,请与我司联系 python 调用第三方邮件接口 2017/08/10 1 单线程发送 #!/usr/bin/env python# -*- coding: UT ...
- python调用企业微信接口
python调用企业微信接口实现关联添加用户 # --*-- coding: utf-8 --*--import json import urllib2coreID = secret = apisec ...
- 如何用python调用百度云接口实例
python可以通过python+Opencv来实现很多图片变换之类的工作,因为OpenCV库的功能可以说是相当强大,很多功能都可以完成.但是实现起来需要自己造轮子,所以很费时间和精力,我们可以直接学 ...
- python调用zabbix api接口实时展示数据
近日公司准备自已做一个运维管理平台,其中的监控部分,打算调用zabbix api接口来进行展示. 经过思考之后,计划获取如下内容: 1. 获得认证密钥 2. 获取zabbix所有的主机组 3. ...
- 调用python接口并画图_【PySpark源码解析】教你用Python调用高效Scala接口
点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 机器之心专栏 作者:汇量科技-陈绪 众所周知,Spark 框架主要是由 Scala 语言实现,同时也包含少量 Java 代码.Spa ...
- python 调用c++库接口出错
首先,python使用c++库传数据的部分方法在我之前的小心得里有:python调用c++的库传递二级指针,希望有帮到大家. 今天说一下c++的接口里使用智能指针shared_ptr接收数据的问题,接 ...
- python函数主要通过接口与外界通信_PySpark源码解析,用Python调用高效Scala接口,搞定大规模数据分析...
机器之心专栏 作者:汇量科技-陈绪 相较于Scala语言而言,Python具有其独有的优势及广泛应用性,因此Spark也推出了PySpark,在框架上提供了利用Python语言的接口,为数据科学家使用 ...
- Python 调用支付宝沙箱接口 实现 扫码支付
思路剖析 支付宝开放平台 登录 登陆之后 点击这个 研发服务 然后下载 一个 支付宝沙箱的 移动端 点击左侧的沙箱账号,就可以知道 登录沙箱的 账号和 密码了,也可以 往死充钱.他是可以扫 沙箱收款的 ...
最新文章
- mysql中char,varchar,text
- Dubbo负载均衡原理
- hdu 2686(多线程dp)
- Simulink之门极关断晶闸管(GTO)
- linux su oracle permission denied,su: /bin/bash: Permission denied带来的疑惑
- 【Elasticsearch】如何在 Elasticsearch 中查找并移除重复文档
- 人脸识别十大关键技术
- 【表格合并单元格】vue-elementul表格动态合并实现方法,合并行,合并列方法【详细讲解,看完就理解】
- 电脑ping服务器显示传输失败,Win10电脑ping时显示“传输失败常见故障”的最佳解决方案...
- 关于FFmpeg对手机里拍摄的视频进行转码时角度问题的处理
- iphone7plus计算机,iPhone 7 Plus和iPhone 8 Plus的区别-太平洋电脑网
- Cadence Allegro如何设置stroke快捷命令
- 量子计算机-争取让没有物理、数学背景的小白也能看懂!
- centos7分区、挂载、磁盘合并
- 高德地图经纬度和百度地图经纬度互相转换
- 实验吧 —— web完整渗透测试实验指导书(图片版)
- 一种应用更广泛的DLL侧载方法
- android xutils 上传图片,Android使用xUtils3上传图片报错解决:java.lang.ArrayIndexOutOfBoundsException: 70918...
- 【运维面试】一个电商项目需要了解哪些知识点?
- Java风车动画代码_纯DOM+CSS3实现简单的小风车动画