text - ChatGPT token 限制

标签 text nlp prompt openai-api gpt-3

我希望 ChatGPT 记住过去的对话并进行一致(有状态)的对话。

ChatGPT Prompt Engineering的几个代码我看过。

有2种方式设计提示如下(伪代码)

  1. 使用单一输入(便宜)<- 尽可能好

  2. 将之前的所有历史记录堆叠起来(昂贵,代币限制)

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 是否会记住过去的历史记录?

最佳答案

有一点,ChatGPT 是 GPT 模型的一个非常特殊的版本,用于通过 ChatGPT 在线对话。您正在使用 GPT-3。一点点,但很重要。

在内存过去的对话方面;不,GPT-3 不会自动执行此操作。您需要通过提示发送数据。

有几种解决方法,但没有一种是完美的可以使用。

  1. 总结之前的对话。

    让 GPT-3 总结之前的对话,以便在下一个提示中提供。你会失去一些意义,但它会减少你的提示总数。

  2. 将之前的对话保存为向量嵌入,并使用向量搜索找到之前对话中最相关的部分并通过提示发送。这要复杂得多,需要了解 GPT-3 嵌入端点。但它可能会解决之前提示失去意义的问题。

关于text - ChatGPT token 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75586733/

相关文章:

python-3.x - 使用相关和随机语料库计算 TF-IDF 单词得分

python - 在 Python 或 Sklearn 中通过整数值对具有字符串值的列变量进行编码

python - 如何在 Python 的某些条件下根据其他列表中的索引列表从一个列表中查找字符串?

linux - 在 bash 脚本中,脚本退出后在提示符上打印命令(作为建议)

javascript - 多个变量和提示

python - 正则表达式 Python 不返回期望的结果

javascript - 如果使用 javascript 创建输入类型文本,则无法在 ie 11 中输入! :(

jquery - 更改 td 内的纯文本的一部分

php - reCAPTCHA 的 javascript 提示框

java - 调用方法将行添加到java中的文本文件