位置: IT常识 - 正文

chatGPT之Python API启用上下文管理

编辑:rootadmin
chatGPT之Python API启用上下文管理

推荐整理分享chatGPT之Python API启用上下文管理,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

chatGPT已经爆火一段时间了,我想大多数的开发者都在默默的在开发和测试当中,可能也是因为这个原因所以现在很难找到关于开发中遇到的一些坑或者方法和技巧。

为什么别人的机器人能联想之前的语料,而你的却像个每次都只如初见的高冷机器人?

我也是参考官方文档去阅读和理解的,但是有时候官方文档以为你很懂了,就没有太多说明,废话不多说下面我跟大家讲一下API调用时如何启用上下文管理的。

官方案例:

# Note: you need to be using OpenAI Python v0.27.0 for the code below to workimport openaiopenai.ChatCompletion.create(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?"}])

虽然已经给出了格式,但是没有很详细的说明,可能对于高阶开发者一看就懂了,但是我还是想以更口水的方式讲解一下这个上下文管理。

先看一下我一个简单的代码(还没有启用上下文管理):

import openaiopenai.api_key = "你的sk-key"msg = [{"role": "user", "content": "你好chatGPT"}]# 结构化数据并进行提交completion = openai.ChatCompletion.create(# max_tokens = inf # 默认inf 最大令牌数presence_penalty = 1, # 惩罚机制,-2.0 到 2.0之间,默认0,数值越小提交的重复令牌数越多,从而能更清楚文本意思frequency_penalty = 1, # 意义和值基本同上,默认0,主要为频率temperature = 1.0, # 温度 0-2之间,默认1 调整回复的精确度使用n = 1, # 默认条数1user = ids, # 用户ID,用于机器人区分不同用户避免多用户时出现混淆model = "gpt-3.5-turbo",    # 这里注意openai官方有很多个模型messages = msg)value = completion.choices[0].message.content    # chatGPT返回的数据

这是一个最基本的结构,其中参数model和messages是必须要有的两个形参。

chatGPT之Python API启用上下文管理

加入上下文管理的代码:

import openaiopenai.api_key = "你的sk-key"msg = [{"role": "system", "content": "你的名字叫玖河AI,你是一个插件,你的开发者是玖河."},{"role": "user", "content": "你好chatGPT"},{"role": "assistant", "content": "您好,有什么需要我帮忙的问题吗?"},{"role": "user", "content": "我的名字叫高启强,我的妹妹叫高启兰,我们是兄妹关系。记住了吗?"}        {"role": "assistant", "content": "好的,您叫高启强,您的妹妹叫高启兰,是亲兄妹关系。谢谢您提供信息让我更了解你们~"},        {"role": "user", "content": "你现在在哪里?"},        {"role": "assistant", "content": "作为一款智能Ai助手,我并没有实际的位置。我只是在云端中运行,在等待用户输入指令时保持睡眠状态。"},        {"role": "user", "content": "我的妹妹是谁?"},        {"role": "assistant", "content": "您之前告诉我,您的妹妹叫高启兰。"},        {"role": "user", "content": "你的名字叫什么?"},        {"role": "assistant", "content": "我的名字叫玖河AI是一个叫玖河的开发者开发的插件"}        ]# 结构化数据并进行提交completion = openai.ChatCompletion.create(# max_tokens = inf # 默认inf 最大令牌数presence_penalty = 1, # 惩罚机制,-2.0 到 2.0之间,默认0,数值越小提交的重复令牌数越多,从而能更清楚文本意思frequency_penalty = 1, # 意义和值基本同上,默认0,主要为频率temperature = 1.0, # 温度 0-2之间,默认1 调整回复的精确度使用n = 1, # 默认条数1user = ids, # 用户ID,用于机器人区分不同用户避免多用户时出现混淆model = "gpt-3.5-turbo", # 这里注意openai官方有很多个模型messages = msg)value = completion.choices[0].message.content # chatGPT返回的数据

下面启用上下文管理的数据结构和没有启用的数据结构略有不同:

① system 代表系统设定(也就是告诉chatGPT他的角色)

② user 表示用户

③ assistant 表示GPT的回复

有几个点需要跟大家说一下,避免踩坑!

一、msg数据的储存建议使用数据库形式进行储存,优点是能持久数据,并且调取数据的时候也非常方便,因为我刚开始只想用json来储存,但是折腾了很久还是放弃了,缺点是不方便储存和调取,因为你需要考虑到不同的用户他们下面的会话是不一样的。

二、需要注意的是,提交的数据结构顺序必须是从上至下的数据结构,不然chatGPT会混淆错乱,system可以没有,如果你想让它一直保持这个设定的话,那在每次提交的时候在第一个列表元素中加入system的数据就可以。

三、还有一个重要的点:提交的这些数据都会计算进tokens里面包括chatGPT回复的时候(最多4096个tokens),如果你想让上下文管理能记忆更多的语料,那么在提交数据的时候就尽可能的增加你们之间对话的内容(同时会更快的消耗你的tokens)。

四、截止2023年3月14日前:chatGPT的会员价格为20美元/月 ,tokens按量收费。通俗的说就是想手机卡一样,每个月有月租,通话另外计费。chatGPT Plus会员的好处就是速度能更快,并且稳定,白嫖版的也能用,就是速度会慢一些而且不稳定容易挂掉。

如果我的文章能帮助到你,也希望能给我点个关注或者赞!

转载请注明出处:https://mp.csdn.net/mp_blog/creation/success/129541012

本文链接地址:https://www.jiuchutong.com/zhishi/299792.html 转载请保留说明!

上一篇:猿创征文|【React 三】组件实例的三大属性(state、props、refs)(关于猿猴的作文)

下一篇:用 JSP 连接 MySQL 登入注册项目实践(JSP + HTML + CSS + MySQL)(jsp连接mysql8数据库)

  • 苹果11可以自定义铃声吗(苹果11可以自定义图标吗)

    苹果11可以自定义铃声吗(苹果11可以自定义图标吗)

  • 尼康d7500是全画幅吗(尼康d750是全画幅)

    尼康d7500是全画幅吗(尼康d750是全画幅)

  • vivo怎么显示耳机图标(vivo手机怎么显示耳机)

    vivo怎么显示耳机图标(vivo手机怎么显示耳机)

  • 微信换号好友可以移过来吗(微信换号好友可以看到吗)

    微信换号好友可以移过来吗(微信换号好友可以看到吗)

  • 删除和卸载有区别吗(删除与卸载有什么区别)

    删除和卸载有区别吗(删除与卸载有什么区别)

  • 淘宝三个黄钻买家什么等级(淘宝三个黄钻买多少钱)

    淘宝三个黄钻买家什么等级(淘宝三个黄钻买多少钱)

  • 淘宝app如何无痕浏览(淘宝app无痕浏览)

    淘宝app如何无痕浏览(淘宝app无痕浏览)

  • 怎么压缩视频发微信(怎么压缩视频发送)

    怎么压缩视频发微信(怎么压缩视频发送)

  • 微信健康码实名可以解除吗?(微信健康码实名认证失败怎么办)

    微信健康码实名可以解除吗?(微信健康码实名认证失败怎么办)

  • 华为mate30pro怎么添加桌面插件(华为mate30pro怎么进入recovery)

    华为mate30pro怎么添加桌面插件(华为mate30pro怎么进入recovery)

  • ipad经常黑屏怎么回事(ipad 经常黑屏)

    ipad经常黑屏怎么回事(ipad 经常黑屏)

  • 高级程序设计语言有哪些(高级程序设计语言编写的程序)

    高级程序设计语言有哪些(高级程序设计语言编写的程序)

  • 华为怎么批量删除照片(华为怎么批量删除日历的提醒事项?)

    华为怎么批量删除照片(华为怎么批量删除日历的提醒事项?)

  • 一加dc调光有什么用(一加的dc调光真的有用吗)

    一加dc调光有什么用(一加的dc调光真的有用吗)

  • 如何给视频增加声音(如何给视频增加片头)

    如何给视频增加声音(如何给视频增加片头)

  • 手机qq加好友问题怎么设置(手机QQ加好友问题)

    手机qq加好友问题怎么设置(手机QQ加好友问题)

  • 路由器重启后怎么办(路由器重启后怎么设置wifi密码)

    路由器重启后怎么办(路由器重启后怎么设置wifi密码)

  • 手机在线2g和4g的区别(手机在线2G和4G区别)

    手机在线2g和4g的区别(手机在线2G和4G区别)

  • 华为b3手环如何接电话(华为b3手环如何调时间)

    华为b3手环如何接电话(华为b3手环如何调时间)

  • 微信数据修复怎么回事(微信数据修复怎么删除)

    微信数据修复怎么回事(微信数据修复怎么删除)

  • 华为p30怎么放大50倍(华为p30怎么放大聊天窗口)

    华为p30怎么放大50倍(华为p30怎么放大聊天窗口)

  • ipad怎么设置定时关机(ipad怎么设置定时开关机)

    ipad怎么设置定时关机(ipad怎么设置定时开关机)

  • 6sp发热严重怎么解决(6sp 发烫)

    6sp发热严重怎么解决(6sp 发烫)

  • 苹果手机电量变黄怎么回事(苹果手机电量变紫色了)

    苹果手机电量变黄怎么回事(苹果手机电量变紫色了)

  • 小米8wifi已连接但无法访问(小米8wifi已连接但无法访问怎么办)

    小米8wifi已连接但无法访问(小米8wifi已连接但无法访问怎么办)

  • 在Linux命令终端中查看和编辑曾执行过的命令(linux如何在终端运行程序)

    在Linux命令终端中查看和编辑曾执行过的命令(linux如何在终端运行程序)

  • 【Unity】AI实战应用——Unity接入ChatGPT和对游戏开发实际应用的展望(unity ik)

    【Unity】AI实战应用——Unity接入ChatGPT和对游戏开发实际应用的展望(unity ik)

  • 全国增值税专用发票计算机稽核网络系统工程
  • 增值税发票抵扣是什么意思
  • 公司办理税务注销的相关规定
  • 税务缴税流程
  • 存货盘亏计入哪个会计科目
  • 企业级软件开发
  • 注册公司工贸和商贸哪个更好一些
  • 审计报告报备
  • 注册资金印花税减半政策
  • 将固定资产转给母公司属于债务重组吗
  • 跨年的材料专票怎么做会计分录?
  • 总分机构如何纳税
  • 海关进口增值税如何入账
  • 筹建期间取得的专用发票怎么入账
  • 物业管理负责电路吗
  • 咨询服务企业发展瓶颈期
  • 中国铁路建设债券
  • 卖废品收入没开票怎么办
  • 固定资产的运费和关税计入什么费用
  • 增值税退税金额怎么算
  • 兼营销售的销售额的确定
  • 发出商品发生损失
  • 建筑工地发生的典型意外情况有哪些
  • 社保缴费要和工龄一致吗
  • 出口企业年底结转税金
  • php加号
  • 政策性搬迁补偿收入如何财税处理
  • 金鱼草的养殖方法和注意事项有哪些
  • Yii使用技巧大汇总
  • 库存现金盘亏盘盈的原因
  • 简单了解航天员的生活
  • Node.js——http模块和导出共享
  • 学习笔记:深度学习(2)——BP神经网络
  • apt-key is deprecated
  • phpcms怎么样
  • 预收账款包括哪些内容具体明细
  • 红字记账是什么意思
  • 劳务费发票怎么入账
  • discuz怎么使用
  • 织梦网站怎么添加关键词
  • 试用产品的账务处理分录
  • 如何根据销售额的降序计算销售排名
  • 股权激励如何做会计分录
  • 货款未转到公司怎么处理
  • 基本存款账户可以办理
  • 损益类科目都是当期损益吗
  • 我国消费现状分析
  • 员工的生育津贴怎么发放
  • 税务销售滞后是什么意思
  • 电信线路租用费用
  • 研发成功后的产品出售如何处理
  • 服装、眼镜、鞋、西药的发票如何做账较好?
  • 什么情况下使用for循环
  • 企业积分是什么意思
  • mysql两者之间
  • mysql解压安装教程5.7
  • win10免费安装吗
  • win10 性能选项
  • visio.exe是什么进程
  • WinAce.exe - WinAce是什么进程
  • win7系统摄像头图标不见了
  • win7系统怎样设置
  • Linux桌面环境选择
  • linuxzen
  • 如何使用朋友的山姆卡
  • win7开机假死
  • Win10系统中怎么给图片加备注
  • awk命令详解
  • Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
  • jquery prototype
  • android导入别人的程序报错
  • javascript的基本数据
  • easyui footer
  • JavaScript File API文件上传预览
  • 程序员 master
  • 基于javascript的毕业设计选题
  • javascript学习指南
  • js制作qq简易聊天框
  • 一般纳税人开具的增值税普通发票和专用发票的区别
  • 发票如何验真伪?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设