帮我写一个调用GPT3 API的python程序,带注释,可以实现人机对话
时间: 2024-02-21 09:00:39 浏览: 99
GPT对话,Python基础编程示例
好的,以下是一个简单的 Python 程序,可以调用 OpenAI 的 GPT-3 API 进行人机对话。请注意,你需要先在 OpenAI 网站注册并获得 API 密钥才能运行此程序。
```
# 导入必要的库
import openai
import re
# 配置 OpenAI API 密钥
openai.api_key = "YOUR_API_KEY"
# 设置 GPT-3 模型 ID 和模型引擎
model_engine = "text-davinci-002"
model_id = "YOUR_MODEL_ID"
# 定义一个函数来生成对话
def generate_response(prompt):
# 调用 GPT-3 API 生成响应
response = openai.Completion.create(
engine=model_engine,
prompt=prompt,
max_tokens=1024,
n=1,
stop=None,
temperature=0.7,
)
# 解析 API 响应并返回结果
message = response.choices[0].text
message = re.sub('[^0-9a-zA-Z\u4e00-\u9fa5\.?!]', '', message)
return message.strip()
# 在一个 while 循环中运行对话
while True:
# 获取用户输入
user_input = input("You: ")
# 以用户输入为前缀,生成机器人的响应
prompt = f"Me: {user_input}\nYou:"
response = generate_response(prompt)
# 输出机器人的响应
print("Me:", response)
```
以上代码中,我们首先导入了必要的库,然后配置了 OpenAI API 密钥。接下来,我们定义了一个 `generate_response` 函数,该函数接受一个字符串参数 `prompt`,该字符串包含了用户的输入和机器人的输出前缀。我们使用 `openai.Completion.create()` 方法调用 GPT-3 API 生成响应,并使用正则表达式 `re.sub()` 方法将响应中的特殊字符过滤掉。最后,我们使用一个 while 循环来持续运行对话,从用户输入中获取前缀,调用 `generate_response()` 函数生成机器人的响应,并将响应输出到控制台。
请注意,以上代码仅为示例,你可以根据自己的需求进行修改和扩展。同时,也请注意 OpenAI API 的使用限制和费用。
阅读全文