python chatgpt实现多轮对话
时间: 2023-07-31 13:13:57 浏览: 254
一篇多轮对话方面的论文
5星 · 资源好评率100%
多轮对话的实现可以通过循环来实现。你可以定义一个循环,每次循环中用户输入问题,ChatGPT生成回答,然后将该回答作为下一轮的输入,直到结束对话。
以下是一个简单的示例代码:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")
# 初始化对话
user_input = ""
while user_input.lower() != "bye":
# 用户输入问题
user_input = input("User: ")
# 将用户输入编码为模型可用的输入向量
input_ids = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors="pt")
# 使用ChatGPT生成回答
output = model.generate(input_ids, max_length=100, num_return_sequences=1)
# 解码并打印回答
response = tokenizer.decode(output[:, input_ids.shape[-1]:][0], skip_special_tokens=True)
print("ChatGPT: ", response)
```
在上述示例中,用户可以通过键盘输入问题,并且ChatGPT会生成回答。对话会一直进行,直到用户输入"bye"结束。
请注意,上述示例只是一个简单的多轮对话实现,ChatGPT模型的质量和对话的连贯性可能还需要进一步优化。
阅读全文