在当今人工智能快速发展的时代,API(应用程序编程接口)成为连接各种智能服务的重要桥梁。DeepSeek,作为一款由中国的深度求索公司开发的智能助手,其强大的自然语言处理能力和广泛的应用场景,吸引了众多开发者的关注。为了充分利用DeepSeek的潜力,掌握如何使用Python调用其API显得尤为重要。本教程将详细介绍如何使用Python语言,通过一系列步骤,实现从环境准备到API调用的全过程,帮助开发者轻松集成DeepSeek功能到自己的项目中。无论是初学者还是有经验的开发者,都能通过本教程快速上手,开启与DeepSeek的智能交互之旅。
简介
本文将详细介绍如何使用 Python 调用 DeepSeek API,实现流式对话并保存对话记录。相比 Go 版本,Python 实现更加简洁优雅,适合快速开发和原型验证。https://cloud.siliconflow.cn/i/vnCCfVaQ
1. 环境准备
1.1 依赖安装
pipinstallrequests
1.2 项目结构
deepseek-project/├──main.py#主程序└──conversation.txt#对话记录文件
2. 完整代码实现
importosimportjsonimporttimeimportrequestsfromdatetimeimportdatetimedefsave_to_file(file,content,is_question=False):\"\"\"保存对话内容到文件\"\"\"timestamp=datetime.now().strftime(\"%Y-%m-%d%H:%M:%S\")ifis_question:file.write(f\"\\n[{timestamp}]Question:\\n{content}\\n\\n[{timestamp}]Answer:\\n\")else:file.write(content)defmain():#配置url=\"https://api.siliconflow.cn/v1/chat/completions\"headers={\"Content-Type\":\"application/json\",\"Authorization\":\"BearerYOUR_API_KEY\"#替换为你的APIKey}#打开文件用于保存对话withopen(\"conversation.txt\",\"a\",encoding=\"utf-8\")asfile:whileTrue:#获取用户输入question=input(\"\\n请输入您的问题(输入q退出):\").strip()ifquestion.lower()==\'q\':print(\"程序已退出\")break#保存问题save_to_file(file,question,is_question=True)#准备请求数据data={\"model\":\"deepseek-ai/DeepSeek-V3\",\"messages\":[{\"role\":\"user\",\"content\":question}],\"stream\":True,\"max_tokens\":2048,\"temperature\":0.7,\"top_p\":0.7,\"top_k\":50,\"frequency_penalty\":0.5,\"n\":1,\"response_format\":{\"type\":\"text\"}}try:#发送流式请求response=requests.post(url,json=data,headers=headers,stream=True)response.raise_for_status()#检查响应状态#处理流式响应forlineinresponse.iter_lines():ifline:line=line.decode(\'utf-8\')ifline.startswith(\'data:\'):ifline==\'data:[DONE]\':continuetry:content=json.loads(line[6:])#去掉\'data:\'前缀ifcontent[\'choices\'][0][\'delta\'].get(\'content\'):chunk=content[\'choices\'][0][\'delta\'][\'content\']print(chunk,end=\'\',flush=True)file.write(chunk)file.flush()exceptjson.JSONDecodeError:continue#添加分隔符print(\"\\n----------------------------------------\")file.write(\"\\n----------------------------------------\\n\")file.flush()exceptrequests.RequestExceptionase:error_msg=f\"请求错误:{str(e)}\\n\"print(error_msg)file.write(error_msg)file.flush()if__name__==\"__main__\":main()
3. 代码详解
3.1 核心功能
文件记录功能
save_to_file
函数负责:
生成时间戳
格式化保存问题和答案
自动刷新文件缓冲区
API 配置
headers={\"Content-Type\":\"application/json\",\"Authorization\":\"BearerYOUR_API_KEY\"#替换为你的APIKey}
流式请求处理
程序使用requests
库的流式处理功能:
使用
stream=True
启用流式传输逐行处理响应数据
实时显示和保存内容
3.2 配置参数说明
API请求参数:
model
: 使用的模型名称stream
: 启用流式输出max_tokens
: 最大输出长度 (2048)temperature
: 控制随机性 (0.7)top_p
,top_k
: 采样参数frequency_penalty
: 重复惩罚系数
4.错误处理
代码包含完整的错误处理机制:
检查 HTTP 响应状态
捕获网络异常
处理 JSON 解析错误
文件操作错误处理
5. 使用方法
5.1 修改配置
在代码中替换 YOUR_API_KEY 为你的实际 API Key。
5.2 运行程序
pythonmain.py
5.3 交互方式
输入问题进行对话
输入 ‘q’ 退出程序
查看 conversation.txt 获取对话记录
6. 性能优化建议
文件操作
使用适当的缓冲区大小
定期刷新文件缓冲
正确关闭文件句柄
网络请求
设置适当的超时
使用会话(Session)复用连接
处理网络异常
内存管理
及时释放资源
避免大量数据积累
使用生成器处理流式数据
总结
通过本教程的学习,我们详细了解了如何使用Python调用DeepSeek API。从准备API Key、安装必要的Python库,到构建请求数据、发送请求并处理响应,每一个步骤都进行了详细的说明和示例。此外,我们还探讨了如何开启流式传输模式以实时获取答复,以及如何保存对话记录到文件中。通过本教程的实践,开发者可以轻松地将DeepSeek的强大功能集成到自己的项目中,实现更加智能和高效的应用。希望本教程能为你的开发之路提供有力支持,让你在人工智能的浪潮中乘风破浪,勇往直前。