自己动手,从了解到开发:掌握OpenAI的ChatGPT
一、ChatGPT 的潦草的简介
ChatGPT
是一种被称为"语言模型"的人工智能。就像你学习语言一样,它也通过阅读大量的文本来学习语言的规则和模式。
可以把ChatGPT
看作是一个超级聪明的回答机,它擅长处理各种与语言相关的任务。比如回答问题、写作、对话,甚至帮助编程。你只需要输入你的请求或问题,ChatGPT
就会根据能够理解它的训练,理解你的输入,并生成有用、相关、并且符合语言规则的输出。
在如此火爆的情况下,在铺天盖地的信息中,我浅总结一下 ChatGPT
,通过这篇文章,你可以了解到
- 了解GPT的能力、与边界限制
- 更有效的跟GPT得到沟通技巧,从而得到更精确的答案
- 了解
ChatGPT-4
,ChatGPT-4
的插件生态、更加强大的 GPT 功能扩展。 - 实际应用场景举例、辅助面试、语言学习、等
- 如何基于
ChatGPT
、开发自己的产品,以及踩坑经验分享 -- 程序员秒懂 - 展望一下、思考如何使用它为自己赋能
二、注册一个账号
要想体验gpt或者基于gpt接口开发自己的模型,首先,你得有一个openAi的账号!
中国大陆和香港地区用户不能直接注册使用ChatGPT
,他们需要通过“科学上网”来解决。然而,这种方法也存在问题。一方面,由于许多翻墙节点被滥用,用户可能会遇到注册不成功的问题。另一方面,即使成功注册,他们的账号也可能会被OpenAI封禁。为了解决这些问题,建议使用来自国外正规厂商的VPN。
如何注册一个gpt账号?
友情提示:墙外非法外之地! DDDD
三、深入一点了解GPT
常常有人说,ChatGPT
不过是一个更高级的搜索引擎,那我想说,你可以也只是一个不太聪明的人类。
没错,这么说的人曾经是我,如今使用后,对它佩服的五体投地的人也是我。
当真正深入使用ChatGPT
后,你会发现它的能力远超我们的想象。
在过去,我们和计算机的交互方式往往是固定且单一的命令,比如用Ctrl+C
和Ctrl+V
复制粘贴文本。然而,当我们使用ChatGPT
时,我们的命令变成了自然语言,这是一种更加接近人类交流方式的交互。
然而,正因为每个用户使用语言的方式各不相同,没有统一的固定格式,所以ChatGPT
给出的回应质量有时也会参差不齐。如果我们提出的问题或命令表达不清,那么ChatGPT
给出的回答也可能会不够准确。
这也正是为什么我们在使用ChatGPT
时,需要精准地给出命令。这并不意味着我们需要使用复杂的语言或者专业术语,而是要明确并准确地表达我们的需求。这就是所谓的“ prompt ”,或者说是我们给ChatGPT
的“指令”。
所以,尽管ChatGPT
已经很强大,我们还是需要学习如何更好地和它交流,以便获得更好的回应。只有当我们和ChatGPT
达到真正的沟通,我们才能真正利用它的潜力,开启全新的人工智能交互方式。
后面给大家列出了能够跟 GPT 更好共同的技巧和基础的“prompt”,帮助大家更高效的跟 ChatGPT
沟通,得到更精确的答案。先来了解一下GPT的能力与边界。
3.1 GPT的能力与边界
下面设计了一个表格,提供了一个清晰、简洁的视图,帮助我们了解GPT的主要边界和限制,从而能更好地利用它的能力,并理解其局限。
当然现在网上也有一些“越狱”训练,试图将GPT 变成一个坏孩子,去其糟粕,谨慎学习。
GPT的边界和限制 | 详细描述 |
---|---|
知识截止日期 | 「GPT的知识训练截止时间是2021年9月」,这就意味着它无法获取或理解这之后的信息或事件。(没有使用plugin的情况下) |
准确性限制 | 有可能受到一些低质量语料的影响,它提供的知识可能未必准确,所以针对它每一次的回答,我们都要有基本的判断并及时的纠正它,防止不要被它带跑偏,这个也是它不能完全替代人类的部分原因 |
未公开限制 | GPT并没有能力访问或理解个人或特定用户的数据。所有的响应都是基于它所学习的公开可用的信息。 |
无实际理解 | 尽管GPT可以生成类人的文本,但实际上,它并不理解它正在说的内容。它只是模仿它在训练数据中学到的语言模式。 |
缺乏主观性和情感 | 基于事实和信息训练的模型,没有自己的主观意见、情感或信仰、所以如果你想聊的内心的小九九,基本得不到你想要的人类能给你的赞同感或附和。 |
安全和道德限制 | 不会提供有害、违法或不道德的信息 |
简化和概括 | 由于回答的长度限制以及语言模型的工作原理,它会尽可能的进行概括和简化。这可能导致某些细节被忽略或表达不完全准确。 |
依赖prompt | 你没有表述的所有想法,背景,偏向,它完全不知道,所以一定要在prompt 中表明你所有的信息用于跟gpt更高效的沟通,这个是后面的重点,也是目前很多基于AI创业的人的创业口子,比如promptbase 「OpenAI的创始人兼CEO山姆·奥特曼今年2月底在其推文中说到,为聊天机器人编写高质量的提示词是一项惊人的高杠杆技能」 |
保密忠告 | 「这是一条友情提示,不要把公司机密或重要文件等发送给 ChatGPT,严格遵守安全红线!!!」 |
3.2 GPT到底能做那些事情?
它是一个超级语言模型,关于文字,代码,字符等有关的,2021年9月之前人类已经有公开资料的,它几乎都能做。
结合资料,和GPT自己的回答,总结一下简单的场景、几乎涵盖了生活的方方面面
类别 | 示例 |
---|---|
辅助写作和创意 | 文本沟通,文本不全,对话,问答,文本扩写,文本总结,创意写作,内容编辑,翻译,写作建议,电影和书籍推荐,事情概要,产品说明,将故事,书写演讲报告,报告辅导,信件,电子邮件,新闻摘要,广告文案,社交博文 |
指南、学习、教育 | 数据分析,教育辅导,学习资料推荐,语言学习辅导,学术研究,实验报告,论文审阅,阅读理解,数学求解,科学实验设计,编程教学,历史事件分析,地里知识,金融,化学,物理,哲学等等 |
职业与发展 | 职业发展建议,面试攻略,计划与目标锁定,个人成长建议,简历或求职信编写,决策辅助,时间管理,职场心理,职业技能问题解答,职场礼仪,团队协作,面试技巧,工作报告,行业报告,企业文化 |
生活、监控、旅行 | 个人助手,旅行规划,菜谱,健康建议,制定预算,宠物护理,职务养护,环保意识,节能减排,家居创意,礼品建议,节日庆祝,亲子活动,休闲娱乐,安全意识,个人形象,睡眠质量提升,饮食建议,保险规划,投资理财 |
工作效率 | 任务管理,提升工作效率工具推荐,时间管理技巧,工作流程话,文件管理,会议效率提升,管理技巧,快捷键与工作使用,代码编写、团队协作工具推荐 |
3.3 中文prompt还是英文prompt
使用中文
优点:
- 文化和语言匹配:如果您的母语是中文,使用中文进行沟通可以更直接、自然,减少语言障碍。
- 表达更精准:用您最熟悉的语言进行交流,您可以更准确地表达问题、提供细节和理解回答。
缺点:
- 语料库限制:中文语料库相对于英文语料库可能更有限,这可能导致在某些特定领域或特定问题上的回答不如英文准确。
- 技术术语匮乏:某些领域的技术术语在中文中可能没有直接的翻译或广泛使用,这可能使得与这些领域相关的问题在中文方面的回答受限。
使用英文
优点:
- 广泛的语料库:英文的语料库相对来说更广泛,我在英文方面的训练和知识更充实,因此在回答英文问题时可能会更准确和详细。
- 技术术语的可用性:在某些技术领域,英文的技术术语可能更常见和标准化,这使得在英文方面的回答更具体和精确。
缺点:
- 语言障碍:如果英文不是您的母语,可能会遇到一些语言障碍,造成理解和表达上的困难。
- 文化差异:英文文化与您的本土文化可能存在差异,这可能会导致一些误解或难以理解的情况。
总体而言,使用您最熟悉和舒适的语言进行沟通可能会更有效,因为您可以更**「准确」**地表达您的需求和理解它的回答。
上面是 GPT 给我答案,但其实我尝试过,如果用中文没有得到你想要的答案,不如尝试翻译成应该后再发送给 GPT,可能会得到更准确的答案。
3.4、强大的GPT-4模型
2023年3月14日,OpenAI
发布了模型 GPT-4
,作为其先前版本GPT 3.5 Turbo
模型的升级版,GPT-4
在许多方面都有了显著的改进和优化。
首先,GPT-4
支持的上下文Token
数量大大增加,至少支持8192个Token
,甚至其32K版本支持高达32768个Token。这一特性让GPT-4成为了小说创作等长篇文本生成的有力工具。相比之下,以往的模型在处理长篇文本时,通常会受到较大的限制。
其次,GPT-4
在推理能力上也有了显著的提升。OpenAI通过多种高难度的测试,证明了GPT-4强大的逻辑推理能力。这些测试包括律师考试、SAT数学考试,以及研究生GRE考试等。这意味着GPT-4
不仅能生成流畅自然的文本,更能处理涉及深层逻辑推理的复杂任务。
普通用户是不能直接使用GPT-4的,需要开通ChatGPT Plus
服务,$20/月。GPT-4为用户提供了更强大的问答功能,但是也有一些限制,比如每三个小时只能处理25条信息。
同时,针对plus用户,OpenAI还提供了GPT-4的API接口,这使得开发者可以将GPT-4集成到自己的第三方应用中,首先,调用GPT-4的API接口是需要向官方提交申请的,其次,这种强大的功能是需要相应的价格的。
目前,GPT-4 可以已经陆续上架了很多功能强大的插件系统,有人将其类比为“app store”, 每个插件只有简短的几句介绍,但是背后却有着强大的能力,涵盖我们生活,工作的方方面面。
先在设置中打开插件相关功能
新建一个聊天室
在Plugin store中选择相关插件
这些插件,有能联网查询的,有处理图片的,有根据文字生成流程图的,有指定旅行规划的,我并没有一一体验,大家可以找找网上的插件介绍,寻找自己合适的插件,扩展GPT 的功能。
当然,如果你是一个开发者,你有很好的 idea,也可以想 openai 提交 开发插件申请,申请通过后就可参与插件开发并提供给所有人使用。
插件目前只提供给 plus用户 使用,对于普通用户来说,我们也想体验更丰富的 GPT 功能怎么办?
可以使用 Chrome 浏览器插件,目前有很多 Chrome 插件也能丰富 GPT 的功能,比如我后面会提到的 Voice Control for ChatGPT
, 就是一个通过语音可以跟 GPT 进行交流,学习英文等用处的插件。
还有Web Chat GPT
等等,如果感兴趣,留言后面接着更新吧。
四、更有效的跟GPT得到沟通
4.1 prompt的基础结构
更好的prompt能够帮助你跟gpt更有效的沟通,同时得到更精确的答案。
字段 | 含义 | 示例 |
---|---|---|
指令词 | 明确的指令词,引导问题或指令 | 请告诉我、简述、解释、总结、润色、等等 |
关键词限 | 关键词,限定问题范围或重点 | 请告诉我关于【人工智能】的【应用领域】 |
输入 | 输入清晰明了的问题、描述或上下文信息 | 请告诉我人工智能在医疗行业的应用领域和现实案例。 |
背景 | 提供相关的背景信息,以便我理解问题的上下文 | 选填、eg: 我正在做基于人工智能在疾病诊断和治疗方面的优化 |
输出要求 | 指明您期望从我这里获得的具体类型的答案或信息 | 选填、eg: 提供关于人工智能在医疗行业的应用领域和现实案例的详细信息。 |
追问或澄清 | 在需要时,添加追问或澄清问题以获取更准确的回答 | 选填、eg: 您对人工智能在医疗行业的应用领域有特定关注点吗? |
举例或场景设定: | 在需要时,提供具体的例子或设定一个场景,以便更好地理解问题 | 选填、eg: 假设我是一名医学研究员,希望了解如何利用人工智能技术改进疾病诊断和治疗。 |
限制条件或假设: | 在需要时,说明问题的限制条件或假设,以便我给出更具体的答案 | 选填、eg: 假设我对人工智能的基本概念有一定了解。 |
这些例子演示了如何使用规范化的中文句子基础结构来构建问题,提供关键词限定、追问或澄清、举例或场景设定以及限制条件或假设。通过这样的结构,可以更有效地与 GPT 进行沟通,并获得更精确的答案。请根据具体需求和情境,灵活运用这些要素来构建问题。
五、应用场景举例
简简单单的举2个应用场景的例子,其实它可以更强大,写创意文本,写代码,做数据分析,做客户分类等等。
5.1 辅助面试
假设我是一个三年的前端工程师,给Chat GPT 设定成面试官的角色,请 Chat GPT 辅助我进行模拟面试。
如果它出的问题你不会,可以先让他帮助你回答。
如果解释中还有问题想进一步了解,可以进一步追问,比如我想追问:「JSONP具体如何使用?」,你会发现它讲解的很详细,甚至给举出了代码例子。
提升难度,假设我是一个6年的前端工程师。
如果觉得自己可能回答的不好,可以让它先帮助你回答一下,你学习即可。
5.2 语言学习
同样,先跟他说一下双方的角色
问一下英语学习的建议
可以让它给你讲一个故事,重点提高的你词汇量
让他标注一下重点词汇
请他做英汉对照翻译
你觉得它只能锻炼你的阅读水平?「漏,大漏特漏!」
一个chrome插件送给大家
安装成功后,你的输入框是这样的
然后你就可以让他读取他发送给你文章,还可以给他发送语音进行说英语的训练
还能设置他的阅读速度
5.3 更多技巧
更多的技巧其实都是基于 prompt 的 基础结构,需要我们进一步扩展,让 GPT 变得越来越精确。
设定角色和情景
- 默认情况下,系统预设GPT的角色是智能通用助手,在直接使用Chat GPT界面时看不到的,所以它的回答中规中矩。
- 不过这个系统角色设定,是可以通过提示与自定义更改的,设定特定的角色或情景可以帮助 ChatGPT 调整回答风格和内容,提供更精确的回答。
- 通过让GPT能扮演不同的角色,可以为我们提供个性化的服务,否则就只能作为一个AI助手闲聊下去,这是很多人觉得Chat GPT并没有想象中那么强大的主要原因
- 例如,你可以设定
ChatGPT
为某个领域的专家,或者设定你自己是初学者,或者设定对话双方在特定的情景中。
清晰明确的问题
- 将问题表述得尽可能明确具体。
- 如“请解释相对论中的时间膨胀是如何工作的”比“请解释相对论”更能得到精确答案。
提供足够的上下文
- 如果问题复杂或需要在之前的对话上继续,给出足够的上下文信息会很有帮助。
- 如在提出数学问题时,告诉
ChatGPT
你的学习背景以及你已经理解了哪些相关概念。
使用关键词和术语
- 在问题中使用相关的关键词或术语,可以帮助我更准确地理解你的问题。
- 例如,在提问编程问题时,指出你正在使用的编程语言。
一次问一个问题
- 一次提一个问题可以更容易得到准确的答案。
- 一次提出多个子问题可能导致答案的质量参差不齐。
及时反馈
- 如果
ChatGPT
回答没有解答你的问题或者存在错误,及时给ChatGPT
反馈,它会及时承认错误,并提供更好的答案。 - 比如,在我让他辅助面试(3.5模型)的时候,当我模拟自己是三年和六年的前端求职者时,它给我出了同样一套面试题,然后,我反问它,为什么3年经验和6年经验是同样一套面试题,它马上承认了它的错误,并且基于工作年限重新出了一套更深入的面试题。
给予结果示例
- 最好给GPT提供一些结果示例,清楚地告知我们想要的结果是什么
- 比如你想让
ChatGPT
输出一段 JSON 结构,可以举个 json 结构的例子,并且标注每个字段的含义,它就会按照你的要求返回给你对应的json结构
六、基于ChatGPT,使用nodejs开发自己的产品
ChatGPT
是完全免费使用的,然而,如果想要进一步探索ChatGPT的开发者和用户来说,OpenAI提供的API接口是收费的。
要使用ChatGPT
进行开发,必须创建一个apiKey
。这是请求接口必不可少的参数。OpenAI为每一个新注册的账户赠送了5美金的API试用金额度,这些钱将在每次调用接口提问时根据token数量被扣除。当余额耗尽时,你就需要自行充值了。
那么,这5美金的API试用金额度能带来什么呢?对于开发者来说,他们可以用这笔钱来接入GPT模型,开发和测试自己的软件;对于普通用户来说,他们可以用这笔钱来体验其他开发者开发的GPT第三方应用。这样用户不需要购买或订阅这些第三方软件,只需要填入API密钥,消耗自己的账号额度就可以体验其他开发者开发的GPT第三方应用。
ChatGPT背后调用的是GPT的3.5 Turbo
模型,其API官方价格为0.002美金1000个Token
。这意味着,消耗1美金可以生成50万个Token,大约可生成接近20万个汉字字符,或者更多的英文字符。对于普通用户来说,这是一个相对便宜的价格。
然而,ChatGPT
的维护成本是相当高的。据说,OpenAI仅在维护ChatGPT这一个项目上,每天的费用就达到了10万美元。OpenAI发布的新模型GPT-4的API价格更是高达GPT-3.5 Turbo的几十倍,并且它的问题提示词和回复是分开算钱的。尽管GPT-4的API暂时还需要申请,但我们可以预见,这个模型的强大功能会带来更多的可能性和挑战,
如果你想调用 ChatGPT
的接口,开发自己产品,官方给了详细的文档,坏消息是文档都是全英文的,好消息是,我用node.js已经帮大家踩了一遍坑,已经申请了GPT4 的API 开发权限快1个月,但是一直没有通过, 所以我是基于 gpt-3.5-turbo
这个模型开发的。
6.1 获取 organisation 和 apiKey
1、登录openAi的官网,点击用户信息部分,就会有一个下拉浮窗,点击【Manage account】就能跳转到对应页面查看【Organization ID】
2、在当前界面就能看到【API keys】,点击按钮创建一个API keys
3、输出一个key的名字,点击创建
4、会自动创建一个api-key,但是要注意,为了安全起见,这个api-key只会展示一次,所以创建成功后要及时保存下来
5、一个openAi的账户可以同时创建多个api-key、所以我们可以同时开发多个不同功能的GPT模型,或者用来让 GPT 并发处理请求
6.2 了解 Role角色
目前,系统预设的role目前有3个取值:
- 「user」:在GPT的对话模型中,通常指的是提交prompt的一方,即对话中主动提出问题、发起话题或提供信息的人或系统,user可以是提交问题的我们,也可以将GPT本身视为一个user,通过手动输入或自动生成的方式来模拟User的行为。
- 「assistant」:表示给completion响应的一方,多数情况下是ChatGPT本身,即与user互动的一方。
- 「system」:message里role为system,是为了让ChatGPT在对话过程中设定自己的行为,目前role为system的消息没有太大的实际作用,我的理解就是对话二人中的旁白。官方说法如下“Gpt-3.5-turbo-0301并不总是非常关注系统消息。未来的模型将被训练成更加关注系统信息。”也就是说目前这个角色的意义不大。
想通过API实现包含上下文信息的多轮对话的关键就是用好role字段。
给ChatGPT发送消息的时候,参数message是个数组,数组里每个dict有role这个字段。
6.3 基础开发
6.3.1 参数介绍
参数 | 详细描述 |
---|---|
model | 使用的 GPT 的模型 |
messages | 数组,可以传递双方对话的角色和 prompt |
top p | 控制生成句子与前文的相关性的,当这个参数值设置得较小,生成的内容将更加紧密地与前文保持一致,输出的结果会更加稳定和中规中矩,同时也会缺失一些创造力 |
temperature | 温度参数,和top p参数类似,值越小输出的文本越合乎常理,但同样也会让文本丧失多样性和更多的可能性 ,关于top p 和 temperature 到底使用哪一个, OpenAI给出的建议是任意调整其中一个即可 |
6.3.2 直接调用GPT API接口
// 核心代码
let data = {
model: "gpt-3.5-turbo",
messages: [
{ "role": "user", "content": "hello word" }
]
};
let config = {
method: 'post',
url: 'https://api.openai.com/v1/chat/completions',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${你的 apiKey}`
},
data: JSON.stringify(data)
};
let completion = await axios(config)
.then((response) => {
resolve(response.data.choices[0].message)
})
.catch((error) => {
console.log('gpt err',error);
});
6.3.3 用三方库 openAi 进行开发
openai 内部封装了对官方接口的请求,也是使用的axios,直接使用。
安装库
npm install openai -d -s
// 核心代码
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
organisation: '你的 org',
apiKey: '你的 apiKey',
});
const openai = new OpenAIApi(configuration);
const intermediateRun = async () => {
const response = await openai.createChatCompletion({
model: "gpt-3.5-turbo",
messages: [
{ "role": "user", "content": 'hello word' }
],
});
console.log(response.data.choices[0])
}
intermediateRun()
6.3.4 进阶开发
ChatGPT 同一个api-key创建的模型,一次性只能回答一个问题,在他没有回答完上个问题之前,禁止你再发送给他新的问题的,除非你将上一个解答暂停,或者等他完成上一个问题的回答,他才能继续回答下一个问题。
那如果你就是想让他并发处理请求怎么办呢?
「创建多个 apiKey」, 一个账号是可以创建多个apiKey的,我们可以用多个模型去并发处理请求,将他们放到一个队列中,哪个模型的问题先回答完了,再喂给他新的数据就行了。
思路打开了么?参考一个高频面试题【实现批量请求数据,并控制请求并发数量,所有请求结束之后,执行callback回调函数】
如果还么有思路,戳我留言再更新一篇吧。
七、开发踩坑记录
7.1 接口和模型不匹配
接口与文档、我们使用开发对应的模型,需要调用相应的API接口才行,如果接口和模型不匹配,就会访问不通。
7.2 访问接口报 ip 错误
上面介绍过,国内用户是被墙的,所以如果代理不是全局的,需要再调用接口的时候再加一个代理。
// 核心代码
let data = {
model: "gpt-3.5-turbo",
messages: [
{ "role": "user", "content": "hello word" }
]
};
let config = {
method: 'post',
url: 'https://api.openai.com/v1/chat/completions',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${你的 apiKey}`
},
data: JSON.stringify(data),
proxy: {
host: "127.0.0.1",
port: 7890,
protocol: "http"
}
};
let completion = await axios(config)
.then((response) => {
resolve(response.data.choices[0].message)
})
.catch((error) => {
console.log('gpt err',error);
});
7.3 报错500
普通用户的目前限制频次是每分钟3次,这个速率目前限制的还是比较狠的,如果用来做商业应用肯定是远远不够的,那只能做“人民币玩家”了
超过次数、花钱解决、给账号充值。淘宝就有代充,
7.4 没有上下文
网页版的GPT可以自动调取聊天记录,但是调用API,正常情况下是没有上下文功能的,需要把聊天记录再发送给GPT的,才能让 ChatGPT 有记忆能力,
所以,每次发送请求给 ChatGPT 时,把历史对话记录也一起发送,所以ChatGPT知道对话的上下文。
但是注意这是,双向收费的,即每次单独计费,妥妥的字字如金。
// 核心代码
let contextHistory = []
// 拼接 用户 的提问记录
contextHistory.push({ "role": "user", "content": `${params.prompt}` })
let data = {
model: "gpt-3.5-turbo",
// 将全部聊天记录发送给 GPT
messages: JSON.stringify(contextHistory)
};
let config = {
method: 'post',
url: 'https://api.openai.com/v1/chat/completions',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${你的 apiKey}`
},
data: JSON.stringify(data),
proxy: {
host: "127.0.0.1",
port: 7890,
protocol: "http"
}
};
let completion = await axios(config)
.then((response) => {
// 拼接 GPT 的回答记录
contextHistory.push({"role": "assistant", "content": `${response.data.choices[0].message.content}`})
resolve(response.data.choices[0].message)
})
.catch((error) => {
console.log('gpt err',error);
});
7.5 报错400
刚才说过,在调用接口的时候,需要把聊天记录再发送给GPT的,才会有记忆能力,但是这个记忆还是有一定字数限制的,Chat GPT背后的GPT-3.5 Turbo模型,目前最大的Token限制数为4096个,它的意思是当我们与Chat GPT聊天时,我们问的问题加上Chat GPT给的答案的总Token数不能超过4096个,否则Chat GPT又会失去记忆并停止该轮对话,利用OpenAI提供的Token计数器,可以测试到一个汉字大约等于两个Token,最大Token限制数为4096个,换算为汉字为2048个汉字,同时标点符号包括空格也是计算在Token之内的,这意味著问题加上答案的总字数,就中文而言被限制在2000个字上下,超过这个字数限制后,Chat GPT有时就会答案报错,然后就失去了记忆能力。
body过长
- token数量问题。每次要把历史对话记录传过去,会导致后续单次请求和响应消耗的token数量越来越多,超过ChatGPT模型支持的最大上下文长度,ChatGPT就无法继续往下处理了。返回如下错误:
This model's maximum context length is 4097 tokens. However, you requested 4103 tokens (2066 in the messages, 2037 in the completion). Please reduce the length of the messages or completion.
- token费用问题。API是按照token数量收费的,这个token计算是prompt和completion的token数量总和。由于后续的请求包含的token数量越来越多,导致每次调用API的收费也越来越高。
所以,惜字如金。
八、展望一下
「更准确的模型:」 随着深度学习技术的发展,我们预期未来的语言模型(比如GPT的未来版本)将变得更加精确,能够更好地理解和生成自然语言。这将导致更准确的答案,更自然的对话,以及更高质量的写作辅助。
「更深的上下文理解:」 未来的模型可能会更好地理解长篇的对话和复杂的上下文,这将使它们能够更好地适应复杂的对话场景,以及处理更复杂的问题和任务。
「个性化和自定义:」 我们可能会看到更多的个性化和自定义选项,允许用户根据自己的需求和偏好调整模型的行为。例如,用户可能能够设置模型的口语程度,选择模型的专业领域,或者指定模型应如何处理特定的问题和情景。
「更多的应用场景:」 随着语言模型技术的进步,我们预期将会出现更多的应用场景,从教育辅助到技术支持,从娱乐到心理健康辅助,等等。
「更好的道德和社会责任:」 随着AI技术的发展,对于AI道德和社会责任的关注也将增加。未来的模型需要更好地处理伦理问题,例如,防止生成有害或误导性的内容,尊重用户的隐私,以及公平和无偏见的处理问题和任务。
总的来说,未来的语言模型将可能在很多方面进行改进,为我们提供更准确、更有用、更负责任的服务。但同时,我们也需要注意到这些技术的潜在风险和挑战,以确保它们的发展能够真正造福人类社会。
以上展望也来自于GPT、以下文案是我看一个博主说的,觉得不错,分享给大家。
只有人才能发现人的需求,然后以人的行动力去解决问题,而当一个人可以影响的用户群体越大,他的商业价值也会越大,ai只不过是能解决实际问题中的一个高效的助手罢了,不管环境怎么变化,还是要保持好奇去持续学习。
转载自:https://juejin.cn/post/7243276385896153147