DeepSeek官网提供的api调用方法

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 API Docs

本指南将介绍如何使用 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?"}
]

第二轮请求时:

  1. 要将第一轮中模型的输出添加到 messages 末尾
  2. 将新的提问添加到 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?"}
]

### 如何在DeepSeek调用函数 #### 函数调用概述 为了使开发者能够更便捷地利用DeepSeek的强大功能,在本地部署之后,可以通过API接口来实现对各种预定义或自定义函数的调用。这种方式不仅提高了灵活性,也使得不同应用场景下的集成变得更加容易[^2]。 #### 使用HTTP请求调用函数 通过发送HTTP POST请求至指定端点可以触发特定的功能执行。下面是一个简单的例子,展示了如何构建这样的请求: ```http POST /api/v1/function_call HTTP/1.1 Host: localhost:8000 Content-Type: application/json { "function_name": "example_function", "parameters": { "param1": "value1", "param2": 42 } } ``` 此示例假设服务器运行在同一台机器上的`localhost:8000`地址,并且存在名为`example_function`的服务端处理逻辑。 #### Python SDK方式调用函数 对于偏好Python编程环境的人来说,使用官方提供的SDK可能是更为直观的选择之一。这里给出了一段简短的代码片段作为示范: ```python from deepseek_sdk import DeepSeekClient client = DeepSeekClient(api_key='your_api_key', base_url='http://localhost:8000') response = client.call_function( function_name="example_function", parameters={"param1": "value1", "param2": 42} ) print(response.json()) ``` 这段脚本初始化了一个客户端实例并指定了必要的配置选项;接着它调用了`call_function()`方法传递目标函数名称及其所需参数列表;最终打印出了来自服务端响应的数据结构化表示形式。 #### 参数详解 当准备向上述任一途径提交数据时,了解各个字段的具体含义至关重要。通常情况下,“function_name”用于标识要激活的操作名,而“parameters”则包含了该操作所需的输入项集合。这些细节可能因具体的应用场景和个人需求有所不同,因此建议查阅最新的[DeepSeek官方文档](#)获取最权威的信息来源[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值