Rea*_*ini 5 openai-api gpt-3 chatgpt-api gpt-4
我是 OpenAI API 的新手。我使用 GPT-3.5-Turbo,使用以下代码:
\nmessages = [\n {"role": "system", "content": "You\xe2\x80\x99re a helpful assistant"}\n ]\n\n while True:\n content = input("User: ")\n if content == 'end':\n save_log(messages)\n break\n messages.append({"role": "user", "content": content})\n\n completion = openai.ChatCompletion.create(\n model="gpt-3.5-turbo-16k",\n messages=messages\n )\n\n chat_response = completion.choices[0].message.content\n print(f'ChatGPT: {chat_response}')\n messages.append({"role": "assistant", "content": chat_response})\nRun Code Online (Sandbox Code Playgroud)\n结果:\n用户:谁是第一个登上月球的人?\nGPT:第一个踏上月球的人是美国宇航员尼尔·阿姆斯特朗,于 1969 年 7 月 20 日执行 NASA 阿波罗 11 号任务。\ n用户:他有多高?\nGPT:尼尔阿姆斯特朗身高约为 5 英尺 11 英寸(180 厘米)。
\n但它需要大量的代币。我听说 GPT-4 与 GPT-3 的不同之处在于它能够(自行)记住之前的消息。那是对的吗?
\n但是,如果我删除在“消息”列表中附加最新消息的行并仅发送一条消息:\n completion = openai.ChatCompletion.create( model="gpt-4", messages=[{"role": "user", "content": content}] )\nit 不记得任何内容。
用户:谁是第一个登上月球的人?\nGPT:第一个登上月球的人是 1969 年 7 月 20 日的尼尔·阿姆斯特朗。\n用户:他有多高?\nGPT:没有关于“他”是谁的具体上下文或信息指的是,我无法提供准确的答案。
\n所以我想知道 GPT-3.5-Turbo 和 GPT-4 之间有工作流程差异吗?
\n是的。 总是需要重新发送所有上下文。GPT无论3-5还是4仍然无法通过API存储信息。openai 社区上有一个关于此问题的帖子
我的理论是,openAI正在等待企业chatgpt(几乎已经完成)发布一个我们可以训练和记忆信息的模型,否则这应该会在一夜之间创建数百万个独立的AI。
有一些像langchain这样的库可以模拟这种存储并处理文件,但实际上它们也需要每次都发送所有消息。不同之处在于,使用它您可以使用更多令牌,因为在与 openai 交互之前,它首先仅查找必要的上下文。
(注意:如果您选择使用 langchain,请记住,它在 cpu 方面相当昂贵,而且效率不高)
| 归档时间: |
|
| 查看次数: |
2166 次 |
| 最近记录: |