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

DeepSeek API流式输出与多轮对话示例

一、相关信息

deepseek api包含两个模型版本:deepseek-chat和deepseek-reasoner,分别是不带深度思考和深度思考的,前者更为轻量,输出字数与全面性不如后者,不带深度思考,但价格更为便宜,输出简洁。后者带深度思考,输出字数更多,意味着用户问一个问题需要等待的时间更长,价格更贵,但也更全面详细。

模型(1)deepseek-chatdeepseek-reasoner
上下文长度64K64K
输出长度(2)默认 4K,最大 8K默认 32K,最大 64K
功能Json Output支持支持
Function Calling支持支持
对话前缀续写(Beta)支持支持
FIM 补全(Beta)支持不支持
标准时段价格
(北京时间 08:30-00:30)
百万tokens输入(缓存命中)(3)0.5元1元
百万tokens输入(缓存未命中)2元4元
百万tokens输出 (4)8元16元
优惠时段价格(5)
(北京时间 00:30-08:30)
百万tokens输入(缓存命中)0.25元(5折)0.25元(2.5折)
百万tokens输入(缓存未命中)1元(5折)1元(2.5折)
百万tokens输出4元(5折)4元(2.5折)
  1. deepseek-chat 模型对应 DeepSeek-V3-0324deepseek-reasoner 模型对应 DeepSeek-R1-0528
  2. deepseek-reasoner 的 max_tokens 参数限制了模型单次输出的最大长度(思维链输出)。
  3. 关于上下文缓存的细节,请参考 DeepSeek 硬盘缓存。
  4. deepseek-reasoner的输出 token 数包含了思维链和最终答案的所有 token,其计价相同。
  5. DeepSeek API 现实行错峰优惠定价,每日优惠时段为北京时间 00:30-08:30,其余时间按照标准价格计费。请求的计价时间为该请求完成的时间。

下面我写了两个流式输出版本、支持多轮对话的例子,只需要填写apio key即可运行。

二、非深度思考版

from openai import OpenAI
from colorama import init, Fore, Styleinit(autoreset=True)client = OpenAI(api_key="你的key", base_url="https://api.deepseek.com")
messages = [{"role": "system", "content": "回答用户任何问题"}]while True:print('-------------------------------------')sendMS = input(Fore.YELLOW+'\n\n请输入内容(按q退出对话):')messages.append({"role": "user", "content": f"{sendMS}"}) # 拼接用户对话历史,实现多轮对话if sendMS == 'q':breakstream_response = client.chat.completions.create(model="deepseek-chat",messages=messages,stream=True # 启用流式传输)# 流式响应输出print(Fore.GREEN+"\n\n--- 正式回答开始 ---\n")full_res = ''for chunk in stream_response:if chunk.choices[0].delta.content is not None:text_chunk = chunk.choices[0].delta.contentfull_res += text_chunkprint(text_chunk, end="", flush=True)messages.append({"role": "assistant", "content": full_res})print('-------------------------------------\n')
print('对话已退出......')

三、深度思考版

from openai import OpenAI
from colorama import init, Fore, Styleinit(autoreset=True)  client = OpenAI(api_key="你的key", base_url="https://api.deepseek.com")
messages = [{"role": "system", "content": "回答用户任何问题"}]while True:print('-------------------------------------')flag = FalsesendMS = input(Fore.YELLOW+'\n\n请输入内容(按q退出对话):')messages.append({"role": "user", "content": f"{sendMS}"}) # 拼接用户对话历史,实现多轮对话if sendMS == 'q':break# 如果你需要流式响应(适合长内容)stream_response = client.chat.completions.create(model="deepseek-reasoner",messages=messages,stream=True # 启用流式传输)# 流式响应输出full_res = ''print(Fore.CYAN+"\n\n思考过程开始:\n")for chunk in stream_response:if chunk.choices[0].delta.reasoning_content is not None:text_chunk = chunk.choices[0].delta.reasoning_contentprint(text_chunk, end="", flush=True)if chunk.choices[0].delta.content is not None:if not flag:print(Fore.GREEN+"\n\n--- 正式回答开始 ---\n")flag = Truetext_chunk = chunk.choices[0].delta.contentfull_res += text_chunkprint(text_chunk, end="", flush=True)messages.append({"role": "assistant", "content": full_res})print('-------------------------------------\n\n')
print('对话已退出......')

 

相关文章:

  • DFS入门刷题
  • OD 算法题 B卷【模拟消息队列】
  • Arm处理器调试采用jlink硬件调试器的命令使用大全
  • 人工智能在智能供应链中的创新应用与未来趋势
  • 2024年ESWA SCI1区TOP,自适应学习灰狼算法ALGWO+无线传感器网络覆盖优化,深度解析+性能实测
  • 开源版 PyMOL 如何绘制 Galidesivir 分子结构 ?
  • 项目:贪吃蛇实现
  • 流媒体协议分析:流媒体传输的基石
  • Jinja2 模板继承机制
  • Mybatis ORM SpringORM
  • 【代码坏味道】膨胀类 Bloaters
  • Go语言的context
  • 《高等数学》(同济大学·第7版) 第一节《映射与函数》超详细解析
  • 【算法】递归与分治策略
  • Cesium快速入门到精通系列教程一
  • 【Linux】进程地址空间揭秘(初步认识)
  • 【计算机网络】 ARP协议和DNS协议
  • 计算机网络物理层基础练习
  • 【CC协议】知识共享许可协议(Creative Commons Licenses)体系解析
  • Python 中Vector类的格式化实现,重点拆解其超球面坐标系的设计精髓
  • 建设厅网站进不去/厦门百度关键词优化
  • 手机网站设计报价/关键一招
  • 视频网站seo实战/北京百度网站排名优化
  • 上海金工建设集团有限公司网站/营销策略怎么写模板
  • 网站空间商/商丘seo优化
  • 外贸手表网站模板/东莞做网站哪家公司好