当前位置: 首页 > article >正文

DeepSeek API 的获取与对话示例

代码文件下载:Code

在线链接:Kaggle | Colab

文章目录

  • 注册并获取API
  • 环境依赖
  • 设置 API
  • 单轮对话
  • 多轮对话
  • 流式输出
  • 更换模型

注册并获取API

访问 https://platform.deepseek.com/sign_in 进行注册并登录:

image-20250127163553505

新用户注册后将赠送 10 块钱余额,有效期为一个月:

image-20250127163652668

点击左侧的 API keys(或者访问 https://platform.deepseek.com/api_keys),然后点击 创建 API key:

image-20250127163951485

命名,然后点击 创建

image-20250127164057495

与其他平台不同的是,DeepSeek 的 API 仅在创建时显示,你可能需要记录它,点击 复制

image-20250127164159136

环境依赖

命令行执行:

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 可以捕捉到思考过程。


http://www.kler.cn/a/525244.html

相关文章:

  • 【已解决】黑马点评项目Redis版本替换过程的数据迁移
  • 基于SpringBoot的假期周边游平台的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • 2025 = 1^3 + 2^3 + 3^3 + 4^3 + 5^3 + 6^3 + 7^3 + 8^3 + 9^3
  • LCR 139.训练计划 I
  • 什么是长短期记忆网络?
  • C#高级:常用的扩展方法大全
  • Ollama 运行从 ModelScope 下载的 GGUF 格式的模型
  • 【最后203篇系列】005 -QTV200 Online
  • 【llm对话系统】大模型源码分析之 LLaMA 模型的 Masked Attention
  • 春节主题c语言代码
  • 关于产品和技术架构的思索
  • LCR 139.训练计划 I
  • 使用Java提取Word文档表格数据
  • 论文阅读(十四):贝叶斯网络在全基因组DNA甲基化研究中的应用
  • java 正则表达式匹配Matcher 类
  • C# Dynamic关键字
  • 东方博宜25年1月-B组(才俊)- 农田作物
  • Kafka的内部通信协议
  • 什么是心跳
  • 怎么样控制API的访问速率,防止API被滥用?
  • 动态规划DP 最长上升子序列模型 最长上升子序列(题目分析+C++完整代码)
  • Android NDK
  • “AI视频智能分析系统:让每一帧视频都充满智慧
  • 寻找旋转数组中的最小元素:C语言实现与分析
  • SSM开发(七) MyBatis解决实体类(model)的字段名和数据库表的列名不一致方法总结(四种方法)
  • Baklib引领企业内容中台建设的新思路与应用案例