上面的代码改成python3
时间: 2024-03-28 18:12:11 浏览: 20
需要对代码进行一些修改才能在 Python 3 中运行。下面是修改后的代码:
```python
import openai
import re
# 将 OpenAI API key 替换成自己的
openai.api_key = "YOUR_API_KEY_HERE"
# 使用 GPT-3 对话模型的模型 ID
model_id = "davinci"
# 对话历史记录
history = []
# 清理输入文本的函数
def clean_text(text):
# 去除多余的空格
text = re.sub('\s+', ' ', text).strip()
# 将所有字母转换为小写
text = text.lower()
return text
# 向 GPT-3 发送请求的函数
def generate_response(prompt, model, temperature):
# 将对话历史记录和输入文本组合成一个完整的文本
history_str = ' '.join(history)
text = f'{history_str} {prompt}'
# 清理文本
text = clean_text(text)
# 调用 OpenAI API 进行生成
response = openai.Completion.create(
engine=model,
prompt=text,
temperature=temperature,
max_tokens=2048,
n=1,
stop=None,
frequency_penalty=0,
presence_penalty=0
)
# 返回生成的文本
return response.choices[0].text.strip()
# 开始对话
print("你好!我是 ChitGPT,一个聊天机器人。你想和我聊些什么呢?")
while True:
# 获取用户输入
prompt = input("你:")
# 如果用户输入了“再见”,则结束对话
if clean_text(prompt) == "再见":
print("ChitGPT: 再见!")
break
# 生成回复
response = generate_response(prompt, model_id, 0.5)
# 打印回复
print("ChitGPT:", response)
# 将用户输入和机器人回复添加到历史记录中
history.append(prompt)
history.append(response)
```
注意,OpenAI API key 需要替换成自己的。另外,在 Python 3 中,`input()` 函数返回的是字符串而不是表达式的值,因此不需要使用 `eval()` 函数来对输入进行求值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)