ISEE小语
前 言
在日常工作中,利用 Python 和 DeepSeek API 可以自动化制作报告、培训、学习计划等文档。
通过 Python 调用 DeepSeek API 并自动化生成 Word 文档,能够显著提升工作效率、降低成本,并为复杂场景提供灵活的解决方案。
适用场景:技术文档生成、项目计划、报告生成、合同生成、教育材料等。
准备工作
deepseek api方式,需要提前创建一个api key
获取DeepSeek API KEY
访问 DeepSeek 官方网站,注册账号并登录。
https://www.deepseek.com/
复制
在用户中心或开发者页面中,点击左侧菜单【API Keys】,点击创建API key,并妥善保存。
创建成功后,一定要记录此处的API key。因为deepseek的平台不会再次展示API Keys的值
一定要记录
一定要记录
一定要记录
安装 Python 环境
访问python官方网站下载。
https://www.python.org/
复制
这里不再赘述,小栈使用的版本是python3.9.16
安装 PyCharm
访问PyCharm官方网站下载。
https://www.jetbrains.com.cn/pycharm/download/?section=windows
复制
下载专业版本
pycharm-professional-2024.3.2.exe
复制
这里也不再赘述,小栈使用的版本是PyCharm 2024.3
安装步骤和激活方式,有需要的,可参考
PyCharm 2024.3 完整版:Windows安装与免费激活全攻略(附安装包)
调用deepseek
在上次分享中,已经详细讲述如何调用deepseek api,这里不再赘述,我们直接使用。
如果有想了解的,可以参照:
用Python代码调用DeepSeek API的快速指南(详版)
ISEE小栈,公众号:ISEE小栈轻松搞定:用Python代码调用DeepSeek API的快速指南(详版)
上次有朋友提出疑问 “请求体中messages 中的两个角色 (role) system 和 user 代表什么含义?” 我们这里会补充一下:
1. system:
该角色用于提供系统的背景信息或指令。它可以定义对话的上下文、角色、风格或任何特定的行为期望。通过设置 system 消息,您可以影响模型的行为和回答的质量。
2. user:
该角色表示用户的输入或提问。这是用户希望模型回应的具体内容,通常是对话的实际问题或请求。
安装三方库
安装三方库 openai
pip3 install openai
复制
引用三方库
引用三方库 openai
from openai import OpenAI
复制
实际调用
将注册deepseek创建的api key输入,就可以直接使用了,这里将 角色、指令 和 参数 一同 传入请求体。
比如现在要给一位只有业余时间的同学制定一份python学习计划,
现在定义 系统背景 和 用户提问:
role_system = "你是一名专业的Python程序员,专注python技术的培训学习。"
role_user = "在每日可用2小时(19:00-21:00)、脑力峰值下降30%的晚间时段,设计Python机器学习进阶计划(需兼容Anki记忆曲线),最终输出markdown格式"
复制
这个可根据自己的实际情况定义,其实越清晰越好,本文只以python为例。
具体实际代码如下:
from openai import OpenAI
# 初始化客户端
client = OpenAI(api_key="deepseek创建的api key", base_url="https://api.deepseek.com")
# 系统角色和用户输入
# role_system = "你是一名专业的Python开发工程师,最终输出markdown格式"
role_system = "你是一名专业的Python程序员,专注python技术的培训学习。"
role_user = "在每日可用2小时(19:00-21:00)、脑力峰值下降30%的晚间时段,设计Python机器学习进阶计划(需兼容Anki记忆曲线),最终输出markdown格式"
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": role_system},
{"role": "user", "content": role_user},
],
temperature=1.0,
top_p=0.9,
max_tokens=500,
stream=False
)
# 输出
markdown_text = response.choices[0].message.content
print(markdown_text)
复制
结果:
## Python 机器学习进阶计划 (晚间时段,兼容 Anki 记忆曲线)
**目标:** 在每日 2 小时 (19:00-21:00) 的晚间时段,利用脑力峰值下降 30% 的特点,高效学习 Python 机器学习进阶知识,并结合 Anki 记忆曲线进行知识巩固。
**计划周期:** 8 周
**每周安排:**
* **周一至周五:** 学习新知识 + Anki 复习
* **周六:** 项目实践 + Anki 复习
* **周日:** 休息 + 自由复习
**每日时间安排 (19:00-21:00):**
* **19:00-19:30:** Anki 复习 (复习前一天学习内容)
* **19:30-20:30:** 学习新知识 (视频/书籍/文档)
* **20:30-21:00:** 代码实践 + 笔记整理 + Anki 卡片制作
**学习路线:**
**第一阶段 (1-2 周): 机器学习基础回顾与强化**
* **目标:** 巩固机器学习基础概念,为进阶学习打下坚实基础。
* **学习内容:**
* 机器学习基本概念 (监督学习、无监督学习、强化学习)
* 常用机器学习算法 (线性回归、逻辑回归、决策树、随机森林、SVM 等)
* 模型评估指标 (准确率、召回率、F1 值、ROC 曲线等)
* 特征工程 (特征选择、特征缩放、特征编码等)
* **资源推荐:**
* 书籍: 《机器学习实战》
* 视频: 吴恩达机器学习课程 (Coursera)
* 网站: Scikit-learn 官方文档
* **Anki 卡片制作:**
* 机器学习基本概念
* 常用机器学习算法原理、优缺点、应用场景
* 模型评估指标计算公式、意义
* 特征工程常用方法
**第二阶段 (3-4 周): 深度学习入门**
* **目标:** 掌握深度学习基本概念和常用模型。
* **学习内容:**
* 神经网络基础 (感知机、多层感知机、激活函数、损失函数、优化算法)
* 卷积神经网络 (CNN) 原理及应用
* 循环神经网络 (RNN) 原理及应用
* 深度学习框架
复制
以上结果输出的是markdown格式
生成Word文档
markdown格式的直接写入Word,条理比较清晰,但格式需要做处理。在Python中,我们需要用到以下三方库:
1. markdown: Markdown 解析
2. python-docx:Word操作
3. beautifulsoup4:Html解析
这里可能有朋友会有疑问,说明一下为什么不直接使用Markdown 的解析能力,从而增加了辅助工具BeautifulSoup?
如果单纯使用Markdown 的解析处理会比较复杂,里面有部分Html标签,个人感觉用BeautifulSoup辅助更加方便。
安装三方库
安装三方库markdown python-docx beautifulsoup4:
pip install markdown python-docx beautifulsoup4
复制
引入三方库
将添加的 角色 和 优化的指令传入请求体:
import markdown
from docx import Document
from bs4 import BeautifulSoup
复制
代码实现
这里我们直接封闭一个函数:
import markdown
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_ALIGN_PARAGRAPH
from bs4 import BeautifulSoup
def markdown_to_word(markdown_text, output_file):
# 解析 Markdown 为 HTML
html_content = markdown.markdown(markdown_text)
# 创建 Word 文档
doc = Document()
# 设置默认字体和样式
style = doc.styles['Normal']
font = style.font
font.name = 'Times New Roman'
font.size = Pt(12)
# 将 HTML 转为文本解析(不保留标签)
soup = BeautifulSoup(html_content, "html.parser")
# 遍历解析后的内容
for element in soup:
if element.name == "h1":
# 一级标题,居中显示
paragraph = doc.add_heading(element.text, level=1)
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
doc.add_paragraph()
elif element.name == "h2":
# 二级标题
paragraph = doc.add_heading(element.text, level=2)
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
doc.add_paragraph()
elif element.name == "h3":
# 三级标题
paragraph = doc.add_heading(element.text, level=3)
paragraph.alignment = WD_ALIGN_PARAGRAPH.LEFT
doc.add_paragraph()
elif element.name == "p":
# 普通段落
doc.add_paragraph(element.text)
elif element.name == "ul":
# 无序列表
for li in element.find_all("li", recursive=False):
doc.add_paragraph(li.text, style="List Bullet")
elif element.name == "ol":
# 有序列表
for li in element.find_all("li", recursive=False):
doc.add_paragraph(li.text, style="List Number")
elif element.name == "blockquote":
# 引用
doc.add_paragraph(element.text, style="Intense Quote")
elif element.name == "code":
# 代码块
doc.add_paragraph(element.text, style="Code")
# 保存生成的 Word 文档
doc.save(output_file)
return f"生成 {output_file} 成功!"
复制
复制
生成Word文档
我们把以上两部分结合,调用 deepseek 后直接 调用写入word函数
def main():
output_file = 'XXX_Python业余学习计划.docx'
result = markdown_to_word(markdown_text, output_file)
print(result)
if __name__ == '__main__':
main()
复制
结果:

这样是不是更加方便了呢,再也不用输出结果、复制、粘贴、调整Word格式了!大大节省了时间!
总 结
通过 Python 调用 DeepSeek API 并自动化生成 Word 文档具有以下好处:
1. 提高效率
自动化生成:无需手动编写或复制粘贴内容,节省大量时间和精力。
批量处理:可以快速生成多个文档,适用于需要大量文档的场景(如报告、合同、教程等)。
2. 内容一致性
标准化输出:通过 API 生成的内容格式统一,避免人为错误或格式不一致的问题。
动态更新:如果内容需要更新,只需修改 API 请求或模板,文档会自动同步更新。
3. 灵活性和可定制性
动态内容生成:可以根据不同需求生成定制化内容(如个性化报告、数据分析结果等)。
模板化设计:结合 Word 模板,可以灵活控制文档的样式、布局和结构。
4. 集成性强
与其他工具集成:可以与 Python 生态系统中的其他工具(如 Pandas、Matplotlib 等)结合,生成包含数据、图表和文本的复杂文档。
自动化工作流:可以嵌入到自动化脚本或工作流中,实现端到端的文档生成和分发。
5. 节省成本
减少人工干预:降低对人工编写文档的依赖,减少人力成本。
资源优化:通过 API 调用,可以按需生成文档,避免资源浪费。
6. 可扩展性
模块化设计:代码可以模块化,方便扩展和重用。
支持多种格式:除了 Word 文档,还可以生成 PDF、HTML 等其他格式。
有一点,使用Python 调用 DeepSeek API是消费的,但价格很亲民,这点请知悉!
小栈的分享,对入门使用来说,应该是没有问题了,如果有什么更好的想法,欢迎留言,小栈与你一起成长!
小栈将实现代码整理
后台回复deepseek_word即可获取!
寄语:世间三美,明月,清风,眼前……
看到这儿的朋友帮点个“赞”和“在看”,谢谢支持~!

文章就分享到这儿,喜欢就点个赞吧!
