当前位置:首页>滚动 > >正文

重新定义性价比!人工智能AI聊天ChatGPT新接口模型gpt-3.5-turbo闪电更新,成本降90%,Python3.10接入

  • 2023-03-09 11:02:49来源:腾讯云

北国春迟,春寒料峭略带阴霾,但ChatGPT新接口模型gpt-3.5-turbo的更新为我们带来了一丝暖意,使用成本更加亲民,比高端产品ChatGPT Plus更实惠也更方便,毕竟ChatGPT Plus依然是通过网页端来输出,Api接口是以token的数量来计算价格的,0.002刀每1000个token,token可以理解为字数,说白了就是每1000个字合0.01381人民币,以ChatGPT无与伦比的产品力而言,如此低的使用成本让所有市面上其他所有类ChatGPT产品都黯然失光。

本次让我们使用Python3.10光速接入ChatGPT API的新模型gpt-3.5-turbo。

OpenAI库的SDK方式接入

OpenAI官方同步更新了接口Api的三方库openai,版本为0.27.0,如果要使用新的模型gpt-3.5-turbo,就必须同步安装最新版本:


【资料图】

pip3 install openai==0.27.0

随后建立chat.py文件:

import openaiopenai.api_key = "openai的接口apikey" completion = openai.ChatCompletion.create(  model="gpt-3.5-turbo",   messages=[{"role": "user", "content": "北国风光,千里冰封,万里雪飘,请接着续写,使用沁园春的词牌"}])print(completion["choices"][0]["message"]["content"])

程序返回:

瑶池冰缘,雪舞凄美, 隔窗寒意,似乎钻进衣袖。寒塘渡鸭,雪中梅影, 孤独是一片银白的姿态。冰雪如花,开放在草莓园里, 可爱的雪人,瑟瑟发抖着欢呼。北风凛冽,寒暄难挡, 四季明媚,但冬日尤甜美。千里冰封,万里雪飘, 窗外天下壮观,此时正是京城美。

闪电般秒回,让用惯了ChatGPT网页端的我们几乎不能适应。

gpt-3.5-turbo,对得起turbo的加成,带涡轮的ChatGPT就是不一样。

ChatGPT聊天上下文

我们知道ChatGPT的最大特色就是可以联系语境中的上下文,换句话说,ChatGPT可以根据之前的回答来优化之后的回答,形成上下文关系,让人机对话更加连贯和富有逻辑性。

这里取决于输入参数中的role参数,每一个role的取值,对应的场景不一样,其中system用于在对话开始时给ChatGPT一个指示或声明,有点像引导词,使得后续的回答更具有个性化和专业化。user是用于给用户提问的或者说是用来给用户输入引导词的。assistant顾名思义,是用于输入ChatGPT的回答内容:

import openaiopenai.api_key = "apikey" class ChatGPT:    def __init__(self,chat_list=[]) -> None:        # 初始化对话列表        self.chat_list = []        # 显示接口返回    def show_conversation(self,msg_list):        for msg in msg_list:            if msg["role"] == "user":                print(f"Me: {msg["content"]}\n")            else:                print(f"ChatGPT: {msg["content"]}\n")    # 提示chatgpt    def ask(self,prompt):        self.chat_list.append({"role":"user","content":prompt})        response = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=self.chat_list)        answer = response.choices[0].message["content"]        # 添加历史对话,形成上下文关系        self.chat_list.append({"role":"assistant","content":answer})        self.show_conversation(self.chat_list)

这里每一次会话都会加入chat_list的聊天列表,角色为assistant,为了让ChatGPT分析上下文,下面开始测试:

if __name__ == "__main__":    chat = ChatGPT()    chat.ask("你是一位南宋词人,词风婉约,有点类似李清照女士,请使用蝶恋花词牌描写北国春光")

程序返回:

Me: 你是一位南宋词人,词风婉约,有点类似李清照女士,请使用蝶恋花词牌描写北国春光ChatGPT: 北国春光,清冽宜人。望眼欲穿的远山如翠起伏,遥远而缥缈。层层叠叠的林木,新绿徜徉,婆娑摇曳。风儿吹起,沁人心脾,点点梅花飘至,宛如仙境。花间蝶恋,春色满园。莺莺燕燕,鸟鸣花落,时时惹人遐思。碧空万里,蓝天白云,彩云飘飘,缤纷夺目。柳絮飘飘,轻羽翩翩,小河潺潺,流水声声,婉转动人。清风拂面,落英缤纷。听着草虫唱起,充满阳光的气息,轻轻飘荡,仿佛一条无形的小河,展开春天的美好,留下美好的记忆。人间万象,却只有这春色无边,似乎奔向远方的快乐。

此时再次发问:

chat.ask("请使用另外一种粗狂阳刚的风格再写一遍上面的词")

程序返回:

Me: 请使用另外一种粗狂阳刚的风格再写一遍上面的词ChatGPT: 北国春光,不柔不媚,金色的阳光照在地上,充满了男子气概。草原上风吹不断,那些疯狂的野花,在春风中舞蹈。看!那些猛禽静静地盘旋在高空,监视着整片草原,威武雄壮。花丛间,一只雄性蜂鹰跃跃欲飞,看上去仿佛要冲破天际。这里的春天有时带着风沙,但这并不能阻止狂放豪迈的草原奔腾前行,而这样的北国春光,怎会轻易被遗忘!

虽然内容有些尬,但确实联系了上下文。

需要注意的是,token不仅计算ChatGPT的接口返回内容,也会计算用户的发送内容,token的计算方法不是简单的一词一个,例如中文输入,一个中文汉字占2个字节数,而对于一次中文测试中,50个汉字被算为100个tokens,差不多是英文的一倍,而token还计算api发送中的角色字段,如果像上文一样实现上下文操作,就必须发送ChatGPT接口返回的历史聊天列表,这意味着ChatGPT上下文聊天的成本并不是我们想象中的那么低,需要谨慎使用。

原生ChatGPT接口异步访问

除了官方的SDK,新接口模型也支持原生的Http请求方式,比如使用requests库:

pip3 install requests

直接请求openai官方接口:

import requestsh = {    "Content-Type": "application/json",    "Authorization": "Bearer apikey"}d = {    "model": "gpt-3.5-turbo",    "messages":[{"role": "user", "content": "请解释同步请求和异步请求的区别"}],    "max_tokens": 100,    "temperature": 0}u = "https://api.openai.com/v1/chat/completions"r = requests.post(url=u, headers=h, json=d).json()print(r)

程序返回:

{"id": "chatcmpl-6qDNQ9O4hZPDT1Ju902coxypjO0mY", "object": "chat.completion", "created": 1677902496, "model": "gpt-3.5-turbo-0301", "usage": {"prompt_tokens": 20, "completion_tokens": 100, "total_tokens": 120}, "choices": [{"message": {"role": "assistant", "content": "\n\n同步请求和异步请求是指在客户端向服务器发送请求时,客户端等待服务器响应的方式不同。\n\n同步请求是指客户端发送请求后,必须等待服务器响应后才能继续执行后续的代码。在等待服务器响应的过程中,客户端的界面会被阻塞,用户无法进行"}, "finish_reason": "length", "index": 0}]}

ChatGPT原生接口也支持异步方式请求,这里使用httpx:

pip3 install httpx

编写异步请求:

h = {    "Content-Type": "application/json",    "Authorization": "Bearer apikey"}d = {    "model": "gpt-3.5-turbo",    "messages":[{"role": "user", "content": "请解释同步请求和异步请求的区别"}],    "max_tokens": 100,    "temperature": 0}u = "https://api.openai.com/v1/chat/completions"import asyncioimport httpxasync def main():    async with httpx.AsyncClient() as client:        resp = await client.post(url=u, headers=h, json=d)        result = resp.json()        print(result)asyncio.run(main())

程序返回:

{"id": "chatcmpl-6qDNQ9O4hZPDT1Ju902coxypjO0mY", "object": "chat.completion", "created": 1677902496, "model": "gpt-3.5-turbo-0301", "usage": {"prompt_tokens": 20, "completion_tokens": 100, "total_tokens": 120}, "choices": [{"message": {"role": "assistant", "content": "\n\n同步请求和异步请求是指在客户端向服务器发送请求时,客户端等待服务器响应的方式不同。\n\n同步请求是指客户端发送请求后,必须等待服务器响应后才能继续执行后续的代码。在等待服务器响应的过程中,客户端的界面会被阻塞,用户无法进行"}, "finish_reason": "length", "index": 0}]}

我们也可以将异步请求方式封装到对话类中,完整代码:

import openaiimport asyncioimport httpxopenai.api_key = "apikey" h = {    "Content-Type": "application/json",    "Authorization": f"Bearer {openai.api_key}"}d = {    "model": "gpt-3.5-turbo",    "messages":[{"role": "user", "content": "请解释同步请求和异步请求的区别"}],    "max_tokens": 100,    "temperature": 0}u = "https://api.openai.com/v1/chat/completions"class ChatGPT:    def __init__(self,chat_list=[]) -> None:        # 初始化对话列表        self.chat_list = []    # 异步访问    async def ask_async(self,prompt):        d["messages"][0]["content"] = prompt        async with httpx.AsyncClient() as client:            resp = await client.post(url=u, headers=h, json=d)            result = resp.json()            print(result)        # 显示接口返回    def show_conversation(self,msg_list):        for msg in msg_list:            if msg["role"] == "user":                print(f"Me: {msg["content"]}\n")            else:                print(f"ChatGPT: {msg["content"]}\n")    # 提示chatgpt    def ask(self,prompt):        self.chat_list.append({"role":"user","content":prompt})        response = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=self.chat_list)        answer = response.choices[0].message["content"]        # 添加历史对话,形成上下文关系        self.chat_list.append({"role":"assistant","content":answer})        self.show_conversation(self.chat_list)if __name__ == "__main__":    chat = ChatGPT()    chat.ask("你是一位南宋词人,词风婉约,有点类似李清照女士,请使用蝶恋花词牌描写北国春光")    chat.ask("请使用另外一种粗狂阳刚的风格再写一遍上面的词")    asyncio.run(chat.ask_async("请解释同步请求接口和异步请求接口的区别"))

结语

低成本ChatGPT接口模型gpt-3.5-turbo更容易接入三方的客户端,比如微信、QQ、钉钉群之类,比起ChatGPT网页端,ChatGPT接口的响应速度更加迅速且稳定,ChatGPT,永远的神,没有之一,且不可替代,最后奉上异步上下文封装项目,与君共觞:github.com/zcxey2911/chatgpt_api_Contextual_async

标签:

延伸阅读

推荐阅读

重新定义性价比!人工智能AI聊天ChatGPT新接口模型gpt-3.5-turbo闪电更新,成本降90%,Python3.10接入

 北国春迟,春寒料峭略带阴霾,但ChatGPT新接口模型gpt-3 5-turbo的更新为我们带来了一丝暖意,使用成本更加亲民,比高端产品ChatGPTPl

HWP女性占比超六成 每日视讯

“三八节”期间,泰康人寿数据显示,健康财富规划师(HWP)职业中,女性占比达64%。HWP正成为长寿时代越来越多职业女性实现事业与家庭兼顾的TOP

全球新动态:滑头鬼之孙壁纸雪女_滑头鬼之孙壁纸

1、PixivID:6130635。本文到此分享完毕,希望对大家有所帮助。

拜仁vs巴黎评分:戴维斯最高8.2,梅西6.9,姆巴佩6分_世界观点

直播吧3月9日讯在刚刚结束的欧冠淘汰赛中,拜仁2比0主场完胜巴黎,总比分3比0晋级8强。在赛后Whoscored的评分中,戴维斯获得全场最高的8 2分,梅西6

缅怀袁隆平作文_缅怀袁隆平作文范文-焦点速递

1、是谁,在田间辛勤劳作;谁,忙于工作,以试验田为家;是谁,拯救人民的饮食 种种疑问指向大学者袁隆平。2、看着眼前热气腾

坚强让我走出困境700字作文_坚强让我走出困境

1、我学会了坚强   在不断不断地成长,也学会了更多的知识。2、我原本是一个软弱的小女孩,已经成为如今坚强勇敢的大姑

讨厌蕾姆,第三者,讨厌486|环球观察

无语,这种真的不是脚踏两条船么,雷姆这种在现实中就是心机女,表面上很善良人畜无害,实际上一直在引诱男主出轨,,这男的也是废,动不动就

厦门十一中的具体地址

具体地址:福建省厦门市思明区湖滨南路22号。厦门十一中:即厦门第十一中学。学校隶属思明区教育局,地处交通便利的湖滨南路,环境优美,教学

外媒总结粉丝对漫威的五大批评观点 该做出改变了

深度好文,独到观点,全都在这里~

魏汉华简历_魏汉冬的介绍 全球快资讯

1、魏汉冬,昵称“草莓”、“抗压王”、“路人王”、吾王,“王草莓”;国服ID:草莓丶,所在服务器:艾欧尼亚。2、2011

全球速看:昔加偏旁组词

1、昔加偏旁组词:(1)错位、错误、差错、借题发挥、借花献佛、草船借箭、惜分阴、依依惜别。(2)惜寸阴、幸措、惊皇失措、张皇失措、东猎西

LinkedIn最好的辅助工具-领英精灵功能解析

领英精灵是我国技术人员花巨资针对领英平台研发的辅助工具。具有好友分组、备注,一键批量加好友,批量撤回邀请,批量群发消息,批量导出好友

安全绳 热推荐

1、安全绳是用合成纤维编织而成,是一种用于连接安全带的辅助用绳,它的功能是二重保护,确保安全。2、一般长度2米,也有2

李伯清散打评书全集字_李伯清散打评书全集mp3下载

1、这个不好找了。2、建议加爱好群几个群问。本文就为大家分享到这里,希望小伙伴们会喜欢。

【世界新要闻】盗窃未遂应该如何立案?

对于盗窃罪的犯罪未遂案件,只有在特殊情况才立案给予刑事处罚,即以数额巨大的财物或者国家珍贵文物等为目标,其他情况是不予刑事处罚的。

环球微头条丨史迪仔是哪个动画片里的角色

1、史迪仔是《星际宝贝》的角色。2、史迪奇(Stitch)其他名称:史迪仔,小怪物,讨厌鬼,代号626号,是《星际宝贝》系列动画中的著名萌星角色

禁曲十只兔子背后的故事_十只兔子背后的故事 动态

1、背后是一件密谋杀兔事件。2、首先,兔子也是有阶级的,大兔子病了,要治它的病,就必须不惜一切代价,甚至牺牲一只兔子做药

现在一个金元宝可以换多少钱_刷宝的元宝能换多少钱

1、首先,打开我们的手机。2、然后找到刷宝打开。3、然后进去选我的。4、单击帮助中心。5、然后你就知道元宝能换多少了。本

好读书不求甚解每有会意便欣然忘食翻译_好读书不求甚解 天天头条

1、好读书,不求甚解意思:喜欢读书,但不在字句的解释上过分下功夫!现代汉语中,“不求甚解”意思是指只求懂得个大概,不求深

世界热点!简答战略管理有什么特点-战略管理有什么特点

1、说到战略管理,需要明确如下三个概念:战略、战略规划、战略管理。2、战略就是方向与目标。3、战略的本质是选择。4、选择的难点在放弃。5、

精英律师共有多少集

精英律师共有42集。《精英律师》是由刘进执导,靳东领衔主演,蓝盈莹、孙淳、田雨、刘敏涛、朱珠、代旭主演的都市律政剧。该剧于2019年12月20

剑指大型储能市场远东电池方形铝壳电芯即将面世

剑指大型储能市场远东电池方形铝壳电芯即将面世 “双碳”战略背景下,全球能源结构调整势在必行。储能系统在解决风光电并

叛逆的阿斯兰

1、小说性质:公众作品总点击:290731月点击:638周点击:160小说类别:动漫同人总推荐:7128月推荐

环球微资讯!vs2010安装教程视频_vs2010安装教程

1、我们从网上下载了ISO格式的VS2010软件,可以先放。2、然后双击文件夹打开软件附带的文件并找到它。3、打开Vis

世界热门:黄冈市中心医院开展“3·5雷锋日”系列活动

”3月3日,市中心医院联合东门社区开展“学雷锋、送健康、我行动”活动,由康复医学科、内分泌科、老年医学科、肿瘤科、中医科等专业组成的...

世界快播:鼠疫传播途径有哪些

1、鼠疫的传播途径主要是通过啮齿类动物传染给跳蚤,再由跳蚤传染给人类。2、鼠疫是一种比较严重的疾病,起病急骤,病情进展迅速,死亡率极高

健康元:类似吸入用布地奈德混悬液等已上市成熟吸入制剂产品即使进入集采,也能为公司实现新利润增长点_动态

健康元3月7日披露投资者调研活动记录表显示,公司在研发管线布局上实行的“差异化”竞争策略效果显著,以改良型新药的研发入手,力争更快、...

吃小龙虾的季节是几月

吃小龙虾的季节:最佳的季节是6-8月,也就是夏季。食用小龙虾的注意事项1,小龙虾体内含有大量细菌和寄生虫,同时含有大量重金属物质,但是基

【世界独家】2023合肥庐江三八妇女节优惠民宿酒店推荐

2023合肥庐江三八妇女节优惠民宿推荐: 温泉山庄、酒店 东郡温泉山庄活动时间:3月8日活动内容:1、女性游客泡温泉免费2、女性游客赠送玫瑰一

全球简讯:我的世界怎样自定义皮肤_我的世界自定义皮肤怎么弄

1、在游戏目录文件中找到《我的世界》-CustomSkinloader-本地皮肤,打开这个文件夹。2、我们可以看到总共有

猜您喜欢

Copyright ©  2015-2022 华南服装网版权所有  备案号:粤ICP备18025786号-52   联系邮箱: 954 29 18 82 @qq.com