DeepSeek API 的获取与对话示例
代码文件下载:Code
在线链接:Kaggle | Colab
文章目录
- 注册并获取API
- 环境依赖
- 设置 API
- 单轮对话
- 多轮对话
- 流式输出
- 更换模型
注册并获取API
访问 https://platform.deepseek.com/sign_in 进行注册并登录:
新用户注册后将赠送 10 块钱余额,有效期为一个月:
点击左侧的 API keys
(或者访问 https://platform.deepseek.com/api_keys),然后点击 创建 API key:
命名,然后点击 创建
:
与其他平台不同的是,DeepSeek 的 API 仅在创建时显示,你可能需要记录它,点击 复制
:
环境依赖
命令行执行:
pip install openai
设置 API
import os
os.environ['DEEPSEEK_API_KEY'] = 'your-api-key' # 1
单轮对话
from openai import OpenAI
import os
def get_response():
client = OpenAI(
api_key=os.getenv('DEEPSEEK_API_KEY'), # 1
base_url="https://api.deepseek.com", # 2
)
completion = client.chat.completions.create(
model="deepseek-chat", # 3
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}]
)
print(completion.model_dump_json())
get_response()
多轮对话
from openai import OpenAI
import os
def get_response(messages):
client = OpenAI(
api_key=os.getenv('DEEPSEEK_API_KEY'),
base_url="https://api.deepseek.com",
)
completion = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
return completion
messages = [{'role': 'system', 'content': 'You are a helpful assistant.'}]
# 您可以自定义设置对话轮数,当前为3
for i in range(3):
user_input = input("请输入:")
# 将用户问题信息添加到messages列表中,这部分等价于之前的单轮对话
messages.append({'role': 'user', 'content': user_input})
assistant_output = get_response(messages).choices[0].message.content
# 将大模型的回复信息添加到messages列表中,这里是历史记录,保存上下文
messages.append({'role': 'assistant', 'content': assistant_output})
print(f'用户输入:{user_input}')
print(f'模型输出:{assistant_output}')
print('\n')
流式输出
from openai import OpenAI
import os
def get_response():
client = OpenAI(
api_key=os.getenv("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com",
)
completion = client.chat.completions.create(
model="deepseek-chat",
messages=[{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}],
stream=True,
# 可选,配置以后会在流式输出的最后一行展示token使用信息
stream_options={"include_usage": True}
)
for chunk in completion:
print(chunk.model_dump_json())
if __name__ == '__main__':
get_response()
更换模型
当前使用的是聊天模型(deepseek-chat
),如果你想修改为推理模型(deepseek-reasoner
),对应修改代码中的 model
:
- completion = client.chat.completions.create(
- model="deepseek-chat",
- ...
- )
+ completion = client.chat.completions.create(
+ model="deepseek-reasoner",
+ ...
+ )
推理模型的单轮对话输出示例:
观察 reasoning_content
可以捕捉到思考过程。