将第一次的代码和第二次的代码合起开
时间: 2024-05-13 21:02:10 浏览: 51
两个代码
好的,可以参考以下代码:
```python
import torch
import torch.nn.functional as F
from transformers import GPT2Tokenizer, GPT2LMHeadModel
# Load pre-trained model and tokenizer
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2LMHeadModel.from_pretrained('gpt2')
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model.to(device)
# Define function to generate text
def generate_text(prompt, length=50, temperature=0.7):
input_ids = tokenizer.encode(prompt, return_tensors='pt').to(device)
output = model.generate(
input_ids=input_ids,
max_length=length+len(input_ids[0]),
temperature=temperature,
do_sample=True,
top_p=0.9,
top_k=0
)
return tokenizer.decode(output[0], skip_special_tokens=True)
# Define function to start conversation
def start_conversation():
print('Hello! I am ChitGPT. How can I assist you today?')
while True:
user_input = input('User: ')
if user_input.lower() in ['bye', 'goodbye', 'exit', 'quit']:
print('ChitGPT: Goodbye!')
break
prompt = 'User: ' + user_input + '\nChitGPT:'
response = generate_text(prompt)
print('ChitGPT:', response)
```
这个代码结合了第一次和第二次的代码,可以启动一个类似于 ChatGPT 的对话 AI。当用户输入问题时,AI 会基于 GPT-2 模型生成一个回答。可以通过更改 `length` 和 `temperature` 参数来控制输出的长度和生成文本的创造性程度。
阅读全文