DeepSeek官网提供的api调用方法
DeepSeek使用openai这个库来调用
DeepSeek使用openai这个库来调用,官网文档:首次调用 API | DeepSeek API Docs
新手步骤
获得API key
先要创建账户,到官网:DeepSeek | 深度求索 ,点击右上角的API开放平台,创建用户并登录。
然后进入创建API key的页面:首次调用 API | DeepSeek API Docs ,创建API key
保存好创建的API key,它只显示一次!
在api调用的时候,需要进行API key的验证,在这句话里:'client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")'
安装openai
pip3 install -U openai
API调用有两种方法,非流式和流式,流式API调用是指数据是按照流的形式逐步传输和处理的。具体来说,服务器不会等待将整个文档或数据集全部准备好才发送给客户端,而是一边生成数据,一边就将已经生成好的部分数据发送给客户端。客户端在接收到一部分数据后,就可以立即开始进行相应的处理,而不需要等待整个数据集合传输完毕。
非流式代码
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
# Round 1
messages = [{"role": "user", "content": "9.11 and 9.8, which is greater?"}]
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages
)
reasoning_content = response.choices[0].message.reasoning_content
content = response.choices[0].message.content
# Round 2
messages.append({'role': 'assistant', 'content': content})
messages.append({'role': 'user', 'content': "How many Rs are there in the word 'strawberry'?"})
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages
)
# ...
流式代码
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
# Round 1
messages = [{"role": "user", "content": "9.11 and 9.8, which is greater?"}]
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages,
stream=True
)
reasoning_content = ""
content = ""
for chunk in response:
if chunk.choices[0].delta.reasoning_content:
reasoning_content += chunk.choices[0].delta.reasoning_content
else:
content += chunk.choices[0].delta.content
# Round 2
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "How many Rs are there in the word 'strawberry'?"})
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages,
stream=True
)
# ...
可惜的是,现在能注册上,但是,因为DeepSeek太牛了,所以现在:
当前服务器资源紧张,为避免对您造成业务影响,我们已暂停 API 服务充 值。存量充 值金额可继续调用,敬请谅解!
所以,果然是手快有,手慢无啊!
多轮对话
本指南将介绍如何使用 DeepSeek /chat/completions
API 进行多轮对话。
DeepSeek /chat/completions
API 是一个“无状态” API,即服务端不记录用户请求的上下文,用户在每次请求时,需将之前所有对话历史拼接好后,传递给对话 API。
下面的代码以 Python 语言,展示了如何进行上下文拼接,以实现多轮对话。
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
# Round 1
messages = [{"role": "user", "content": "What's the highest mountain in the world?"}]
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
messages.append(response.choices[0].message)
print(f"Messages Round 1: {messages}")
# Round 2
messages.append({"role": "user", "content": "What is the second?"})
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
messages.append(response.choices[0].message)
print(f"Messages Round 2: {messages}")
在第一轮请求时,传递给 API 的 messages
为:
[
{"role": "user", "content": "What's the highest mountain in the world?"}
]
在第二轮请求时:
- 要将第一轮中模型的输出添加到
messages
末尾 - 将新的提问添加到
messages
末尾
最终传递给 API 的 messages
为:
[
{"role": "user", "content": "What's the highest mountain in the world?"},
{"role": "assistant", "content": "The highest mountain in the world is Mount Everest."},
{"role": "user", "content": "What is the second?"}
]
更多推荐
所有评论(0)