请写在同一个程序里
时间: 2023-11-28 20:50:49 浏览: 27
好的,以下是一个既包含我开发的 ChitGPT 又包含 OpenAI 公司开发的 ChatGPT 的对话程序:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
chitgpt_model_path = "chitgpt/"
openai_model_path = "microsoft/DialoGPT-medium"
chitgpt_tokenizer = AutoTokenizer.from_pretrained(chitgpt_model_path)
chitgpt_model = AutoModelForCausalLM.from_pretrained(chitgpt_model_path)
openai_tokenizer = AutoTokenizer.from_pretrained(openai_model_path)
openai_model = AutoModelForCausalLM.from_pretrained(openai_model_path)
def chitgpt_response(input_text):
input_ids = chitgpt_tokenizer.encode(input_text + chitgpt_tokenizer.eos_token, return_tensors="pt")
chat_history_ids = chitgpt_model.generate(input_ids, max_length=1024, pad_token_id=chitgpt_tokenizer.eos_token_id)
response = chitgpt_tokenizer.decode(chat_history_ids[:, input_ids.shape[-1]:][0], skip_special_tokens=True)
return response
def openai_response(input_text):
input_ids = openai_tokenizer.encode(input_text + openai_tokenizer.eos_token, return_tensors="pt")
chat_history_ids = openai_model.generate(input_ids, max_length=1024, pad_token_id=openai_tokenizer.eos_token_id)
response = openai_tokenizer.decode(chat_history_ids[:, input_ids.shape[-1]:][0], skip_special_tokens=True)
return response
print("ChitGPT: Hi, how can I help you today?")
while True:
user_input = input("You: ")
if user_input.lower() in ["bye", "goodbye"]:
print("ChitGPT: Goodbye!")
break
response = chitgpt_response(user_input)
if response.strip() != "":
print("ChitGPT: " + response)
else:
response = openai_response(user_input)
print("OpenAI: " + response)
```
这个程序中,我们使用了两个不同的预训练模型,分别是我开发的 ChitGPT 和 OpenAI 公司开发的 ChatGPT(具体来说,我们使用了 Microsoft 团队开发的 DialoGPT-medium 模型)。对于用户输入的每个文本,我们首先尝试使用 ChitGPT 给出一个回复,如果 ChitGPT 给出的回复为空,则使用 OpenAI 的模型给出回复。注意,这个程序只是一个简单的示例,实际上应该根据具体情况进行优化和调整。