加个case 5退出程序
时间: 2023-11-09 11:00:42 浏览: 71
Android 双击返回键退出程序的方法总结
好的,以下是更新后的代码:
```python
import openai
import re
# 用于检查输入是否包含问号
question_regex = re.compile("(.*\?)|(.*吗)")
# 设置OpenAI API密钥
openai.api_key = "YOUR_API_KEY"
# 定义模型ID(这里使用了GPT-3模型)
model_engine = "text-davinci-002"
# 定义对话起始语
start_chat_log = '''Human: 你好,我想问一些问题。
AI: 你可以问我任何问题,我会尽力回答。
'''
# 定义对话结束语
end_chat_log = "AI: 谢谢,再见!"
# 定义函数来生成AI的回复
def generate_response(prompt, model_engine):
# 将对话起始语与用户输入合并
prompt = start_chat_log + "Human: " + prompt.strip() + "\nAI:"
# 调用OpenAI GPT-3模型生成AI的回复
response = openai.Completion.create(
engine=model_engine,
prompt=prompt,
temperature=0.5,
max_tokens=1024,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
# 从生成的文本中提取AI的回复
message = response.choices[0].text
message = message.replace("AI:", "").strip()
return message
# 定义主函数
def main():
print("欢迎使用AI智能对话系统!")
print("你可以输入任何问题,我会尽力回答。")
print("输入\"退出\"或\"bye\"可退出程序。")
print("输入\"help\"可查看使用帮助。")
print("输入\"q\"可查看历史对话记录。")
print("输入\"clear\"可清空历史对话记录。\n")
# 初始化历史对话列表
chat_log = [start_chat_log]
# 循环获取用户输入并生成AI的回复
while True:
# 获取用户输入
prompt = input("Human: ").strip().lower()
# 检查是否包含问号
if question_regex.match(prompt):
prompt += "?"
# 判断是否退出程序
if prompt == "退出" or prompt == "bye" or prompt == "5":
print(end_chat_log)
break
# 判断是否清空历史对话记录
if prompt == "clear":
chat_log = [start_chat_log]
print("历史对话记录已清空!")
continue
# 判断是否查看历史对话记录
if prompt == "q":
for i, item in enumerate(chat_log):
print(i, item.strip())
continue
# 利用OpenAI GPT-3模型生成AI的回复
message = generate_response(prompt, model_engine)
# 将用户输入与AI的回复添加到历史对话记录中
chat_log.append("Human: " + prompt)
chat_log.append("AI: " + message)
print("AI:", message)
# 运行主函数
if __name__ == '__main__':
main()
```
阅读全文