请将上述代码集合到一起弄成完整的代码
时间: 2023-06-11 07:09:39 浏览: 75
完整代码
5星 · 资源好评率100%
好的,以下是完整的代码:
```python
import torch
import torch.nn.functional as F
from transformers import GPT2LMHeadModel, GPT2Tokenizer
# 加载模型和分词器
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2LMHeadModel.from_pretrained('gpt2')
# 设置模型为评估模式
model.eval()
# 设置对话起始语
start_text = "你好,我是人工智能,你叫什么名字?"
# 对话循环
while True:
# 获取输入文本
text = input("你:")
# 将对话起始语和用户输入文本拼接
input_text = start_text + text
# 将文本转换为模型输入的token
input_ids = tokenizer.encode(input_text, return_tensors='pt')
# 生成回复
output = model.generate(
input_ids=input_ids,
max_length=50,
repetition_penalty=2.0,
pad_token_id=tokenizer.eos_token_id
)
# 将模型输出的token转换为文本
response_text = tokenizer.decode(output[0], skip_special_tokens=True)
# 输出回复文本
print("AI:", response_text)
# 如果用户输入了“再见”,则退出对话循环
if text == "再见":
break
```
阅读全文