调用 DeepSeek制作简单的电子宠物
体功能概述
这段 Python 代码实现了一个简单的电子宠物对话程序。程序通过调用 DeepSeek 的大语言模型 API 来模拟电子宠物与用户进行对话。用户可以输入问题或消息,电子宠物会以简短、友好的语气进行回复。当用户输入 “退出” 时,对话结束。
模块导入
python
from openai import OpenAI
OpenAI
:从openai
库中导入,用于与 OpenAI 兼容的 API 进行交互,这里实际上是与 DeepSeek 的 API 进行交互。
初始化 OpenAI 客户端
python
client = OpenAI(api_key="XXXX", base_url="https://api.deepseek.com")
client
:一个OpenAI
客户端实例,用于与 DeepSeek 的 API 进行通信。api_key
:需要替换为你自己的 DeepSeek API 密钥,用于身份验证。base_url
:指定 API 的基础 URL,这里指向 DeepSeek 的 API 地址。
函数说明
pet_response(user_input)
python
def pet_response(user_input):
"""模拟电子宠物的回答"""
# 根据用户输入生成电子宠物的回答
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个可爱的电子宠物,用简短、友好的语气回答用户的问题。"},
{"role": "user", "content": user_input},
],
stream=False
)
return response.choices[0].message.content
- 功能:根据用户输入生成电子宠物的回答。
- 参数:
user_input
:用户输入的问题或消息。
- 返回值:电子宠物的回复内容。
- 详细步骤:
- 使用
client.chat.completions.create
方法向 DeepSeek API 发送请求,请求生成聊天回复。 model
参数指定使用的模型为deepseek-chat
。messages
参数是一个列表,包含两个消息对象:- 第一个消息对象的
role
为system
,用于设置模型的角色和回复风格,这里要求模型扮演一个可爱的电子宠物,用简短、友好的语气回答问题。 - 第二个消息对象的
role
为user
,内容为用户输入的问题。
- 第一个消息对象的
stream
参数设置为False
,表示不使用流式响应。- 最后返回响应中第一个选择的消息内容。
- 使用
main()
python
def main():
"""电子宠物对话主程序"""
print("欢迎来到电子宠物世界!输入 '退出' 来结束对话。")
while True:
user_input = input("你: ")
if user_input.lower() == "退出":
print("电子宠物: 再见!希望很快再见到你!")
break
pet_reply = pet_response(user_input)
print(f"电子宠物: {pet_reply}")
- 功能:电子宠物对话的主程序,负责与用户进行交互。
- 详细步骤:
- 打印欢迎信息,提示用户输入 “退出” 来结束对话。
- 进入一个无限循环,不断接收用户输入。
- 如果用户输入 “退出”(不区分大小写),则打印告别信息并跳出循环,结束对话。
- 否则,调用
pet_response
函数生成电子宠物的回复,并打印出来。
主程序入口
python
if __name__ == "__main__":
main()
- 当脚本作为主程序运行时,调用
main
函数启动电子宠物对话程序。
注意事项
- 需要将
api_key
替换为你自己的 DeepSeek API 密钥,否则无法正常调用 API。 - 确保你的网络环境可以正常访问
https://api.deepseek.com
。 - 该代码假设 DeepSeek 的 API 与 OpenAI 的 API 兼容,并且
deepseek-chat
模型可用。如果 API 或模型有变化,需要相应地修改代码。
完成代码
from openai import OpenAI
# 初始化OpenAI客户端
client = OpenAI(api_key="XXXX", base_url="https://api.deepseek.com")
def pet_response(user_input):
"""模拟电子宠物的回答"""
# 根据用户输入生成电子宠物的回答
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个可爱的电子宠物,用简短、友好的语气回答用户的问题。"},
{"role": "user", "content": user_input},
],
stream=False
)
return response.choices[0].message.content
def main():
"""电子宠物对话主程序"""
print("欢迎来到电子宠物世界!输入 '退出' 来结束对话。")
while True:
user_input = input("你: ")
if user_input.lower() == "退出":
print("电子宠物: 再见!希望很快再见到你!")
break
pet_reply = pet_response(user_input)
print(f"电子宠物: {pet_reply}")
if __name__ == "__main__":
main()