IT评测·应用市场-qidao123.com

标题: 【Python】OpenAI:调用深度求索(DeepSeek)API [打印本页]

作者: 罪恶克星    时间: 2025-1-9 08:32
标题: 【Python】OpenAI:调用深度求索(DeepSeek)API
本教程将资助你快速入门 DeepSeek API 的文本生成和多轮对话功能。以下是最简便且实用的步调,资助你通过 DeepSeek 实现智能对话。
快速入门

安装 OpenAI SDK

起首需要安装 openai SDK,这是与 DeepSeek API 进行交互的关键库。运行以下命令来安装:
  1. pip3 install openai
复制代码
设置 API 密钥和 Base URL

通过以下代码设置你的 DeepSeek API 密钥和 Base URL(请替换为你的实际 API 密钥)。
  1. from openai import OpenAI
  2. client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
复制代码
简单文本生成

使用以下代码生成简单的文本:
  1. response = client.chat.completions.create(
  2.     model="deepseek-chat",
  3.     messages=[
  4.         {"role": "system", "content": "You are a helpful assistant."},
  5.         {"role": "user", "content": "Hello"},
  6.     ],
  7.     stream=False
  8. )
  9. print(response.choices[0].message.content)
复制代码
这段代码将生成基于用户输入 “Hello” 的模型回应,并输出效果。
多轮对话示例

你可以通过生存汗青对话来实现多轮对话。以下是一个简单的两轮对话示例:
  1. # Round 1
  2. messages = [{"role": "user", "content": "What's the highest mountain in the world?"}]
  3. response = client.chat.completions.create(
  4.     model="deepseek-chat",
  5.     messages=messages
  6. )
  7. messages.append(response.choices[0].message)
  8. print(f"Messages Round 1: {messages}")
  9. # Round 2
  10. messages.append({"role": "user", "content": "What is the second?"})
  11. response = client.chat.completions.create(
  12.     model="deepseek-chat",
  13.     messages=messages
  14. )
  15. messages.append(response.choices[0].message)
  16. print(f"Messages Round 2: {messages}")
复制代码
输出对话内容

在每一轮对话后,模型会根据汗青上下文生成新的响应,并附加到 messages 中。终极,你可以打印出每轮对话的内容。
面向对象封装

下面是使用面向对象思想计划的一个 Chatter 类,包含简单文本生成、支持多轮对话(自动生存和发送汗青对话)以及清空记忆功能。这个类使用 DeepSeek 的 API 完成这些功能:
Chatter 类计划

  1. from openai import OpenAI
  2. class Chatter:
  3.     def __init__(self, api_key, base_url="https://api.deepseek.com"):
  4.         """初始化 Chatter 类,配置 DeepSeek API。"""
  5.         self.client = OpenAI(api_key=api_key, base_url=base_url)
  6.         self.messages = []  # 用于存储多轮对话的历史消息
  7.     def generate_text(self, prompt):
  8.         """进行简单文本生成,根据给定的提示生成文本。"""
  9.         response = self.client.chat.completions.create(
  10.             model="deepseek-chat",
  11.             messages=[{"role": "user", "content": prompt}],
  12.             stream=False
  13.         )
  14.         return response.choices[0].message.content
  15.     def chat(self, user_input):
  16.         """进行多轮对话。将用户输入与历史对话一起发送。"""
  17.         # 添加用户输入到历史对话
  18.         self.messages.append({"role": "user", "content": user_input})
  19.         # 发送整个对话历史给 DeepSeek,获取模型回应
  20.         response = self.client.chat.completions.create(
  21.             model="deepseek-chat",
  22.             messages=self.messages,
  23.             stream=False
  24.         )
  25.         # 获取模型的回应
  26.         assistant_message = response.choices[0].message.content
  27.         # 将模型回应添加到历史对话
  28.         self.messages.append({"role": "assistant", "content": assistant_message})
  29.         return assistant_message
  30.     def clear_memory(self):
  31.         """清空历史对话记忆。"""
  32.         self.messages = []
复制代码
类功能说明

1. generate_text(prompt):

这个方法接收一个提示 prompt,并返回生成的文本。它用于进行简单的文本生成。
2. chat(user_input):

这个方法实现了多轮对话。它会将用户输入的对话与汗青对话一起发送给模型,然后返回模型的回答。汗青对话会生存在类的实例中,因此每次调用 chat 时,模型都能基于之前的对话生成合理的响应。
3. clear_memory():

这个方法会清空生存的汗青对话,使模型在下次对话时不再记得之前的内容。可以用来重置对话的记忆状态。
示例用法

以下是如何使用 Chatter 类进行文本生成和多轮对话的示例:
  1. if __name__ == '__main__':
  2.     # 初始化 Chatter 类
  3.     chatter = Chatter(api_key="<你的 DeepSeek API Key>")
  4.     # 生成简单文本
  5.     response = chatter.generate_text("给我讲一个关于编程的笑话。")
  6.     print("生成的文本:", response)
  7.     # 多轮对话
  8.     response1 = chatter.chat("世界上最高的山是哪座?")
  9.     print("助手:", response1)
  10.     response2 = chatter.chat("它有多高?")
  11.     print("助手:", response2)
  12.     # 清空记忆
  13.     chatter.clear_memory()
  14.     # 新的一轮对话,记忆已清空
  15.     response3 = chatter.chat("美国的第一任总统是谁?")
  16.     print("助手:", response3)
复制代码
功能总结


如许计划的 Chatter 类简便且功能完备,可以轻松管理生成文本和多轮对话,同时也能清除记忆以顺应不同场景的需求。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4