用 Python 调用 DeepSeek API:从入门到实战
作为 AI 和 Python 爱好者,调用大模型 API 是实现智能应用的关键技能。DeepSeek(深度求索)是国内领先的大模型服务商,其 API 兼容 OpenAI 格式,使用 Python 的 openai
库即可快速接入。本文将手把手教你如何通过代码调用 DeepSeek 模型,并实现流式对话和多轮交互功能。
1. 环境准备与 API 密钥获取
1.1 安装 openai 库
首先确保安装最新版 openai
库:
|
|
1.2 获取 DeepSeek API Key
- 访问 DeepSeek 开放平台,注册账号并登录。
- 在控制台创建 API Key,务必首次生成时保存密钥(后续无法查看)。
1.3 配置密钥(安全推荐)
为避免代码泄露密钥,建议通过环境变量管理:
|
|
或在 Python 代码中加载 .env
文件:
|
|
2. 基础调用:实现单轮对话
2.1 初始化客户端
DeepSeek 的 base_url
需指定为 https://api.deepseek.com
,模型名称使用 deepseek-chat
:
|
|
2.2 发送请求并获取回复
|
|
输出示例:
为什么程序员总分不清万圣节和圣诞节?因为 Oct 31 == Dec 25!(八进制和十进制梗)
编者注:
在进制转换中,“Oct"代表八进制,而"Dec"代表十进制
而八进制下的"31"代表十进制下的"25”
正巧,在英语中,万圣节所在的八月缩写就是"Oct.",而圣诞节所在的十二月缩写则刚好是"Dec."
而万圣节刚好在八月31日(英文:“Oct. 31st”),圣诞节则是十二月25日(英文:“Dec. 25th”)
此处的编者指本文著作权人(Shanziyi)
3. 进阶功能:流式输出与多轮对话
3.1 流式输出(逐字显示)
启用 stream=True
可实现类似 ChatGPT 的实时响应效果:
|
|
3.2 多轮对话实现
通过维护 messages
列表记录历史对话:
|
|
4. 错误处理与调试
4.1 异常捕获
API 调用可能因网络或密钥问题失败,需添加异常处理:
|
|
4.2 常见问题
- 无响应:检查 API Key 是否正确,或尝试
base_url="https://api.deepseek.com/v1"
。 - 模型切换:若需调用推理模型,可替换为
model="deepseek-reasoner"
。
5. 扩展应用:图形界面开发
参考网页2的 Tkinter 示例,可快速搭建带实时流式输出的 GUI 应用。核心逻辑包括:
- 使用
threading
处理异步请求 - 通过
ScrolledText
组件显示彩色对话历史 - 维护消息队列实现流畅交互
结语
通过 openai
库调用 DeepSeek API,仅需数行代码即可实现智能对话功能。无论是命令行工具还是 GUI 应用,均可基于本文代码扩展。更多高级功能(如调整温度参数 temperature
、设置最大生成长度 max_tokens
)可参考 DeepSeek 官方文档。
完整代码示例及环境配置细节,可访问参考链接:CSDN 教程、脚本之家案例。
完
总访问量:作者:Shanziyi
本文属自己撰稿,禁止转载,引用时请标明出处 !
© Shanziyi 2025
本文由Shanziyi撰写,deepseek协助了撰稿
本文中所有“编者注”都由Shanziyi撰写