ChatGPT-3 ChatGPT令牌限制

sauutmhj  于 2023-03-03  发布在  其他
关注(0)|答案(2)|浏览(530)

我希望ChatGPT记住过去的对话,并保持对话的一致性(有状态)。
我看过几个代码的ChatGPT提示工程.
有两种方式设计提示如下所示(伪代码)
1.使用单一输入(便宜)〈-如果可能,最好
1.堆叠所有以前的历史记录(昂贵,令牌限制)

def openai_chat(prompt):
    completions = openai.Completion.create(
        engine = "text-davinci-003",
        prompt = prompt,
        max_tokens = 1024,
        n = 1,
        temperature = 0.8,
    )
    response = completions.choices[0].text.strip()
    return response


# 1. Use a single input 
while True:
    prompt = input("User: ")
    completion = openai_chat(prompt)

# 2. Stack all of previous history (prompt + completion)
prompt = ""
while True:
    cur_prompt = input("User: ")
    prompt += cur_prompt  # pseudo code
    completion = openai_chat(prompt)
    prompt += completion  # pseudo code

是否可以选择第一种方式(便宜的方式)来进行一致的对话
换句话说,即使提示只有当前输入,chatGPT是否会记住过去的历史?

k97glaaz

k97glaaz1#

一个小问题,ChatGPT是GPT模型的一个非常特定的版本,用于通过ChatGPT在线对话。您使用的是GPT-3。小问题,但很重要。
就回忆过去的对话而言;不,GPT-3不会自动执行此操作。2您需要通过提示符发送数据。
有几个变通办法,但没有一个是完美的,可以使用。
1.总结前面的对话。
使用GPT-3总结前面的对话,以便在下一个提示中提供。这样会失去一些意义,但会减少提示总数。
1.将以前的对话另存为向量嵌入,并使用向量搜索查找以前对话中最相关的部分,然后通过提示发送。这要复杂得多,需要了解GPT-3嵌入终结点。但它可能会解决丢失以前提示的含义的问题。

vs91vp4v

vs91vp4v2#

Tl; Dr:OpenAI API GPT-3模型不使用之前发送的输入数据来生成新的响应,但对于其他模型,您可以使用微调,这允许您发送更短的提示。
OpenAI今天宣布,正如我在他们的电子邮件通讯中看到的,官方ChatGPT API的发布。在OpenAI API文档中显示为聊天完成,它有一个guide section和一个reference section
看起来你使用的代码已经过时了,因为它使用了"引擎",这个API已经过时了(参考Engines | OpenAI API Reference),现在OpenAI API使用的是model而不是引擎,即,根据https://platform.openai.com/docs/guides/chat ChatGPT(Web应用程序,https://chat.openai.com/chat)是由gpt-3.5-turbo驱动的,gpt-3.5-turbo是一个模型,而不是引擎。
Chat Completions Guide解释了主要输入是一个messages对象数组,这些对象指定了role,可能是message对象的 * system user * 或 * assistant *,并提到包含对话历史可能会被开发人员修改。
长话短说,每次调用全新的官方ChatGPT API时,您都应该发送一个消息对象数组,其中包含模型 * 构建响应所需的所有数据,它不使用以前调用的信息。
关于令牌限制,从https://platform.openai.com/docs/guides/chat/managing-tokens
...因为总令牌数必须低于模型的最大限制(gpt-3.5-turbo-0301为4096个令牌)
输入和输出令牌都计入这些数量。
每种模式都有自己的容量,每种模式都有自己的价格。OpenAI说(摘自聊天完成指南)
由于gpt-3.5-turbo的性能与text-davinci-003类似,但每个令牌的价格是text-davinci-003的10%,因此我们建议将gpt-3.5-turbo用于大多数使用情形。

微调

根据OpenAI API Fine Tuning guide
微调功能目前仅适用于以下基本型号:davincicuriebabbageada
参考文献

相关问题