gpt4 book ai didi

python - 记住聊天机器人之前的对话

转载 作者:行者123 更新时间:2023-12-02 22:44:57 25 4
gpt4 key购买 nike

我使用 OpenAI 使用以下代码创建了一个基本的 ChatBot:

import openai
openai.api_key = "sk-xxx"
while True:
prompt = input("User:")
response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
max_tokens=50,
temperature=0,
)
print(response.choices[0].text)

这是输入和输出:

enter image description here

并以文本形式:

User:What is python
Python is a high-level, interpreted, general-purpose programming language. It is a powerful and versatile language that is used for a wide range of applications, from web development and software development to data science and machine learning.`
User:What is the Latest Version of it?
The latest version of Microsoft Office is Microsoft Office 2019.

如您所见,我问的是与 python 相关的问题,并且询问它的版本给出了与 Microsoft Office 相关的答案,而当向 ChatGpt 询问同样的问题时,它会记住之前的保护并根据它采取行动。

有什么方法可以记住对话吗?

最佳答案

一种可能性是将输入和输出存储在某处,然后将它们包含在后续输入中。这是非常基本的,但您可以执行以下操作:

inputs, outputs = [], []

while True:
prompt = input("Enter input (or 'quit' to exit):")
if prompt == 'quit':
break

if len(inputs) > 0:
inputs.append(prompt)
last_input, last_output = inputs[-1], outputs[-1]
prompt = f"{prompt} (based on my previous question: {last_input}, and your previous answer {last_output}"
else:
inputs.append(prompt)

response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
max_tokens=200,
temperature=0,
)

output = response.choices[0].text
outputs.append(output)

print(output)

该程序将能够调用最后的输入和输出,并提供该信息以及当前提示。您可以包含更多行的输入和输出,具体取决于您希望程序拥有多少“内存”,并且还有一个文本限制(max_tokens),因此您可能需要调整措辞整个提示是有意义的。

并且为了避免无限循环,我们可以有一个条件来退出 while 循环。

关于python - 记住聊天机器人之前的对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75480406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com